CasperSecurity

Current Path : /usr/lib/python3/dist-packages/ufw/__pycache__/
Upload File :
Current File : //usr/lib/python3/dist-packages/ufw/__pycache__/frontend.cpython-310.pyc

o

�Fa���@szdZddlZddlZddlZddlmZddlZddlmZm	Z	m
Z
ddlmZddl
Zdd�Zdd	�ZGd
d�d�ZdS)z'frontend.py: frontend interface for ufw�N)�UFWError)�error�warn�msg)�UFWBackendIptablesc
Cs�tj��}dD]}|�tj�|��qdD]}|�tj�|��qdD]}|�tj�|��q#dD]}|�tj�|��q1dD]}|�tj�|��q?dD]}|�tj�	|��qMgd�}|D]}|�tj�
|��|�tj�|��q_t|�dkr�d	}||�
�d
kr�d}||�
�dkr�||�
�dkr�||�
�|vr�|�|d
�t|�dks�d
|vr�t|�dkr�td�z|�|d	d��}W|Sty�}ztd|j�WYd}~|Sd}~wty�tddd��w)zEParse command. Returns tuple for action, rule, ip_version and dryrun.)�enable�disable�helpz--help�versionz	--version�reload�reset)�list�info�default�update)�on�off�low�medium�high�full)�allow�deny�reject)N�verbose�numbered)�rawzbefore-rulesz
user-ruleszafter-rulesz
logging-rules�builtins�	listening�added)r�limitrr�insert�delete�prepend���	--dry-runr�route�rule�znot enough argsNz%szInvalid syntaxF)�do_exit)�ufw�parser�	UFWParser�register_command�UFWCommandBasic�
UFWCommandApp�UFWCommandLogging�UFWCommandDefault�UFWCommandStatus�UFWCommandShow�UFWCommandRule�UFWCommandRouteRule�len�lowerr!r�
parse_commandr�value�	Exception)�argv�p�i�
rule_commands�idx�pr�e�rC�./usr/lib/python3/dist-packages/ufw/frontend.pyr9sL
 ����r9cCs�tdidtjj�dd�dd�dd�dd�d	d
�dd�d
d�dd�dd�dd�dd�dd�dd�dd�dd�dd�id d!�d"d#�d$d%�d&d'�d(d(�d)d)�d*d*�d+d,�d-d.�d/d0�d1d2�d3d3�d4d5�d6d7�d8d9�d:d;�d<d=��d>d?i��}|S)@zPrint help messagea+
Usage: %(progname)s %(command)s

%(commands)s:
 %(enable)-31s enables the firewall
 %(disable)-31s disables the firewall
 %(default)-31s set default policy
 %(logging)-31s set logging to %(level)s
 %(allow)-31s add allow %(rule)s
 %(deny)-31s add deny %(rule)s
 %(reject)-31s add reject %(rule)s
 %(limit)-31s add limit %(rule)s
 %(delete)-31s delete %(urule)s
 %(insert)-31s insert %(urule)s at %(number)s
 %(prepend)-31s prepend %(urule)s
 %(route)-31s add route %(urule)s
 %(route-delete)-31s delete route %(urule)s
 %(route-insert)-31s insert route %(urule)s at %(number)s
 %(reload)-31s reload firewall
 %(reset)-31s reset firewall
 %(status)-31s show firewall status
 %(statusnum)-31s show firewall status as numbered list of %(rules)s
 %(statusverbose)-31s show verbose firewall status
 %(show)-31s show firewall report
 %(version)-31s display version information

%(appcommands)s:
 %(applist)-31s list application profiles
 %(appinfo)-31s show information on %(profile)s
 %(appupdate)-31s update %(profile)s
 %(appdefault)-31s set default application policy
�progname�command�COMMAND�commands�Commandsrrrzdefault ARG�loggingz
logging LEVEL�level�LEVELrz
allow ARGSr(rz	deny ARGSrzreject ARGSr z
limit ARGSr"zdelete RULE|NUM�urule�RULEr!zinsert NUM RULEr#zprepend RULEr'z
route RULEzroute-deletezroute delete RULE|NUMzroute-insertzroute insert NUM RULE�number�NUMrr�status�	statusnumzstatus numbered�rules�RULES�
statusverbosezstatus verbose�showzshow ARGr
�appcommandszApplication profile commands�applistzapp list�appinfozapp info PROFILE�profile�PROFILE�	appupdatezapp update PROFILE�
appdefaultzapp default ARG)�_r+�common�programName)�help_msgrCrCrD�get_command_help[s���������	�
���
������������������� �!�"��Crbc@s�eZdZdZ		d,dd�Zdd�Zdd	�Zd
d�Zd-d
d�Zd.dd�Z	dd�Z
dd�Zdd�Zd/dd�Z
d/dd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd/d*d+�ZdS)0�UFWFrontend�UI�iptablesNcCs\|dkrz
t|||d�|_Wnty�wtd|��td�|_td�|_td�|_dS)Nre)�rootdir�datadirzUnsupported backend type '%s'�n�y�yes)r�backendr;rr^�norj�yes_full)�self�dryrun�backend_typerfrgrCrCrD�__init__�s��

zUFWFrontend.__init__c
Cs|d}d}|rd}d}|r|j��r|s|j��rd}|rBz|j�|jjdd|�WntyA}zt|j�WYd}~nd}~wwd}|r�z|j��Wntyd}z|rZ|j}WYd}~nd}~ww|dkr�z|j�|jjddd�Wnty�}zt|j�WYd}~nd}~wwt|�td	�}|Sz|j�	�Wnty�}zt|j�WYd}~nd}~wwtd
�}|S)zlToggles ENABLED state in <config_dir>/ufw/ufw.conf and starts or
           stops running firewall.
        �rlrjFT�conf�ENABLEDNz0Firewall is active and enabled on system startupz/Firewall stopped and disabled on system startup)
rk�
is_enabled�set_default�filesrrr:�start_firewallr^�
stop_firewall)rn�enabled�res�
config_str�changedrB�	error_strrCrCrD�set_enabled�sb����������	���zUFWFrontend.set_enabledc
Csnd}z|j�||�}|j��r|j��|j��W|SW|Sty6}zt|j�WYd}~|Sd}~ww)zSets default policy of firewallrrN)rk�set_default_policyruryrxrrr:)rn�policy�	directionr{rBrCrCrDr��s

����zUFWFrontend.set_default_policyc
C�Hd}z	|j�|�}W|Sty#}zt|j�WYd}~|Sd}~ww)zSets log level of firewallrrN)rk�set_loglevelrrr:)rnrKr{rBrCrCrDr������zUFWFrontend.set_loglevelFc
CsFz
|j�||�}W|Sty"}zt|j�WYd}~|Sd}~ww)zShows status of firewallN)rk�
get_statusrrr:)rnr�
show_count�outrBrCrCrDr�s���zUFWFrontend.get_statusrc
CsDz	|j�|�}W|Sty!}zt|j�WYd}~|Sd}~ww)zShows raw output of firewallN)rk�get_running_rawrrr:)rn�
rules_typer�rBrCrCrD�get_show_raws���zUFWFrontend.get_show_rawcCsd}ztj�|j���}Wntytd�}t|��w|j��}t	|�
��}|��|D]�}|j��s:|dvr:q.|d|7}t	||�
��}|��|D]�}|||D]�}	|	d}
|
�d�s�|
�d�s�d}|d|7}|
d	ksv|
d
kr�|d7}d|	d}
n|d
|
7}tj�
|
�}|dtj�|	d�7}tjjd|dd�||
ddd�}|�|�d��|dkr�|�d|�|��|j�|�}
t|
�dkr�|d7}|
D]}|dkr�|dt|�kr�|d|tjj�||d�f7}q�|d7}qVqNq.|j���stj�d�|S)zMShows listening services and incoming rules that might affect
           themrrzCould not get listening status)�tcp6�udp6z%s:
�laddrz127.z::1z  %s z0.0.0.0z::z* z%s/0z%s z(%s)�exerNr)�inF)�action�protocol�dport�dstr��forward�6r�
r%z   [%2d] %s
z)Skipping tcp6 and udp6 (IPv6 is disabled))r+�util�parse_netstat_outputrk�use_ipv6r;r^r�	get_rulesr
�keys�sort�
startswith�get_if_from_ip�os�path�basenamer_�UFWRule�set_v6�endswith�
set_interface�	normalize�get_matchingr7r,r5�get_command�debug)rnr{�d�err_msgrS�	protocols�proto�ports�port�item�addr�ifnamer(�matchingr>rCrCrD�get_show_listeningsv�

�
�
������/zUFWFrontend.get_show_listeningcCs�|j��}td�}t|�dkr|td�Sg}|j��D]&}|jr+dtjj�|�}ntjj	�|�}||vr7q|�
|�|d|7}q|S)z!Shows added rules to the firewallz9Added user rules (see 'ufw status' for running firewall):rz
(None)�route %sz
ufw %s)rkr�r^r7r�r+r,r6r�r5�append)rnrSr�r�r�rstrrCrCrD�get_show_added\s 
�
zUFWFrontend.get_show_addedcCs�d}d}d}g}|jdkr|jdkr|�|�n�g}z�|jr�|dkr*|j�|d�}nF|dkr6|j�|d�}n:|dkrf|j�|d�}|j�|d�}|D]}	|D]}
|
j}d|
_|	�|
�sc||
_|�|
�qNqJn
td�|}t	|��t
|�dkr�|jjs�td	�}|dkr�|}|WS|dkr�|d
}|WS|dkr�|d|d
}|WS|D]}|��}|j|_|�
|j�|�|j�|�|�q�n|j�|�}|jdkr�|��Wnty��wd}
d}td�}|j�d�}|j�d�}t|�D�]\}}|}
|j||k�r
|t|j�d
7}t	|���z�|j���r�|dk�rT|jdk�r4|
dk�r,|dk�r,dnd}|�|�n|j|k�rG|t|j�d
7}t	|��|�d�|j�|�}�n{|dk�r�|jdk�rs|
dk�rk|dk�rkdnd}|�|�n(|j|k�r�|�|j|�n|jdk�r�|j|k�r�|t|j�d
7}t	|��|�d�|j�|�}�n'|dk�r|j}|�d�|dk�r�|
dk�r�|dk�r�dnd}|�|�n$|j�s�||k�r�|j�|||
d�}|dk�r�|�|�n|�d�|j�|�}|j�s|dk�r|j�d�}|�|d�|�d�|dk�r,|
dk�r$|dk�r$dnd}|�|�n*|j�sV|jdk�rV|j|k�rV|j�|jd�}|dk�rQ|�||
�n|�d�|dk�r_|d7}|j�sv|j|k�rv|dk�rv|�|j|�||j�|�7}nPtd�|}t	|��|jdk�r�|
dk�r�|dk�r�dnd}|�|�|dk�s�|dk�r�|�d�|j�|�}n|dk�r�td�}t	|��td�|}t	|��Wnt	�y�}z|j}d}WYd}~nd}~ww|j�r�td�}t� |�q�|�s||7}|St
|�dk�rt!|�|Sd}t"t#|
d��}|��|D]9}|
dk�rV||�rV||��}d|_z	|�||�W�qt�yUd}td�|�$�}t |�Y�qw�q|td�7}|�rk|td�7}t	|��|td�7}t	|��)zUpdates firewall with rulerr�v4F�v6T�bothzInvalid IP version '%s'rz"Could not delete non-existent rulez (v6)r�zInvalid position '�'���r%zIPv6 support not enabledNz Rule changed after normalizationzCould not back out rule '%s'z"
Error applying application rules.z# Some rules could not be unapplied.z( Attempted rules successfully unapplied.)%�dapp�sappr��removerk�get_app_rules_from_systemr��matchr^rr7ro�dup_rule�
set_actionr��set_logtype�logtype�get_app_rules_from_template�position�reverser;�get_rules_count�	enumerate�strr��set_positionr��set_rule�find_other_positionr:�updated�warningsrrr
�range�format_rule)rnr(�
ip_versionr{r��tmprS�tmprules�	tmprules6�xri�prev6r��count�	set_error�pos_err_msg�num_v4�num_v6r>�begin�user_posr=rB�warn_msg�
undo_error�indexes�j�backout_rulerCrCrDr�ysj����

������
��






�




�






���
�������zUFWFrontend.set_rulec
CsPzt|�}Wntytd�|}t|��w|j��}|dks'|t|�kr1td�|}t|��|j�|�}|sCtd�|}t|��d|_d}|j	rMd}d}|s�|j
r^dtjj
�|�}	ntjj�|�}	td�|	|j|jd	�}
t|
tjd
d�tj������}|dkr�||j��kr�||j��kr�d
}d
}|r�|�||�}|Std�}|S)zDelete rulezCould not find rule '%s'rzCould not find rule '%d'Tr�r�r�z=Deleting:
 %(rule)s
Proceed with operation (%(yes)s|%(no)s)? )r(rjrlF��output�newlinerirr�Aborted)�intr;r^rrkr�r7�get_rule_by_numberr�r�r�r+r,r6r�r5rjrlr�sys�stdout�stdin�readliner8�striprmr�)
rnrO�forcerhr�rSr(r��proceedr��prompt�ansr{rCrCrD�delete_ruleEsT�
����zUFWFrontend.delete_rulec	
CsHd}|�d�r"|�d�}t|�dkr|�|d�}|S|�d�}|S|dkr-|�d�}|S|�d�rQtd	�}|�d
�}t|�dkrEt|��|�|d|d�}|S|d
kr\|�|�}|S|dkrf|��}|S|dkrq|�d�}|S|�d�r�|�d
�d}|dkr�|�	�}|S|dkr�|�
�}|S|�|�}|S|dkr�|�dd�}|S|dkr�|�d�}|S|dkr�|�d�}|S|dkr�|j
��r�|�d�|�d�td�}|Std�}|S|�d�r�|�|�d
�d|�}|S|dks�|dks�|dks�|dk�r�|jdk�rGz|j
�|j�}||jk�r||_|�|d �Wn,t�yF}z|j�s,t|j�tj�|j��s<td!�}t|��WYd"}~nd"}~ww|jdk�r�z|j
�|j�}||jk�rd||_|�|d �Wn,t�y�}z|j�swt|j�tj�|j��s�td!�}t|��WYd"}~nd"}~ww|�||�}|Std#�|}t|��)$z�Perform action on rule. action, rule and ip_version are usually
           based on return values from parse_command().
        rrz
logging-onr^r%rzlogging-offrzdefault-zUnsupported default policy�-r)r$rrQzstatus-verboseTrVrrzstatus-numberedFrrr�Firewall reloadedz&Firewall not enabled (skipping reload)zdelete-rrrr r��Invalid profile nameN�Unsupported action '%s')r��splitr7r�r^rr�rr�r�r�r�rrkrur�r��find_application_name�set_portr�rr:r+�applications�valid_profile_namer�r�)	rnr�r(r�r�r{r�r�rBrCrCrD�	do_actionvs�

L
�J�
H
�
B�
@�>�
<
�8�6
�4�2�
0�
.�


)�'
�%�
�
����
����zUFWFrontend.do_actionc
Cr�)z+Sets default application policy of firewallrrN)rk�set_default_application_policyrrr:)rnr�r{rBrCrCrDr�r�z*UFWFrontend.set_default_application_policycCs:t|jj���}|��td�}|D]}|d|7}q|S)z*Display list of known application profileszAvailable applications:�
  %s)r
rk�profilesr�r�r^)rn�namesr�rhrCrCrD�get_application_list�sz UFWFrontend.get_application_listcCs�g}|dkrt|jj���}|��ntj�|�s!td�}t	|��|�
|�d}|D]�}||jjvs8|jj|sBtd�|}t	|��tj�||jj|�sUtd�}t	|��|td�|7}|td�tj�|jj|�7}|td�tj�
|jj|�7}tj�|jj|�}t|�d	ks�d
|dvr�|td�7}n|td
�7}|D]}|d|7}q�||t|�d	kr�|d7}q*tj�|�S)zDisplay information on profile�allr�rrzCould not find profile '%s'zInvalid profilezProfile: %s
z
Title: %s
zDescription: %s

r%�,rzPorts:zPort:rz

--

)r
rkrr�r�r+r�rr^rr��verify_profile�	get_title�get_description�	get_portsr7r��	wrap_text)rn�pnamerr�r��namer�r=rCrCrD�get_application_info�sN


�
�
�
���z UFWFrontend.get_application_infoc	Csd}d}d}z
|jjrtj��rd}Wntyd}Ynw|dkrMt|jj���}|�	�|D]}|j�
|�\}}|rK|dkrE|d7}||7}|}q1n|j�
|�\}}|dkr]|d7}|r�|j��r�|r~z|j��Wntyu�w|t
d�7}|S|t
d�7}|S)�Refresh application profilerrTFrr�r�zSkipped reloading firewall)rk�	do_checksr+r��	under_sshr;r
rr�r��update_app_ruleru�_reload_user_rulesr^)	rnrZr��allow_reload�trigger_reloadrr=r��foundrCrCrD�application_update
sH������zUFWFrontend.application_updatecCs
d}d}|dkrtd�}t|��|jjd}|dkr&tj�d||f�|S|dkr-d}n|d	kr4d
}n|dkr;d}n
td�|}t|��d
g}|jjrQ|�d�|||g7}zt	|�}Wnt
ye�wd|jvr{|�|j
|jd|jd�}|S|�|j
dd�}|S)rrrrz%Cannot specify 'all' with '--add-new'�default_application_policy�skipz'Policy is '%s', not adding profile '%s'�acceptr�droprrzUnknown policy '%s'r+r&r(�iptype)r^rrk�defaultsr+r�r�ror�r9r;�datarr�)rnrZr�r�r�r�argsrArCrCrD�application_add8sF�
�
��zUFWFrontend.application_addcCs�d}|dkr
|�d�}|S|dkr|�d�}|S|dkr#|�d�}|S|dkr.|�d	�}|S|d
kr8|��}|S|dkrC|�|�}|S|dksK|d
krm|�|�}d}|d
kr[|�|�}|dkrg|dkrg|d7}||}|Std�|}t|��)zzPerform action on profile. action and profile are usually based on
           return values from parse_command().
        rrz
default-allowrzdefault-denyrzdefault-rejectrzdefault-skiprr
rrzupdate-with-newr�r�)rrrrr"r^r)rnr�rZr{�str1�str2r�rCrCrD�do_application_actionbs<
�
�
�
��
�

�z!UFWFrontend.do_application_actioncCsrd}|jjr7tj��r7td�|j|jd�}t|t	j
dd�t	j���
���}|dkr7||jkr7||jkr7d}|S)z6If running under ssh, prompt the user for confirmationTzWCommand may disrupt existing ssh connections. Proceed with operation (%(yes)s|%(no)s)? �rjrlFr�ri)rkrr+r�rr^rjrlrr�r�r�r�r8r�rm)rnr�r�r�rCrCrD�continue_under_ssh�s�zUFWFrontend.continue_under_sshcCs�d}td�|j|jd�}|jjr!tj��r!td�|j|jd�}|jjrP|sPttj�	|�t
jdd�t
j�
�����}|dkrP||jkrP||jkrPtd�}|S|j��r\||�d�7}|j��}|S)	zReset the firewallrrzTResetting all rules to installed defaults. Proceed with operation (%(yes)s|%(no)s)? r&zResetting all rules to installed defaults. This may disrupt existing ssh connections. Proceed with operation (%(yes)s|%(no)s)? Fr�rir�)r^rjrlrkrr+r�rrr
r�r�r�r�r8r�rmrurr)rnr�r{r�r�rCrCrDr�s$��

zUFWFrontend.reset)reNN)FF)r)F)�__name__�
__module__�__qualname__�__doc__rqrr�r�r�r�r�r�r�r�rrrrrr"r%r'rrCrCrCrDrc�s0
�6


		H
M
1V
	.+* rc)r+r�r�r��
ufw.commonr�ufw.utilr+rrr�ufw.backend_iptablesr�
ufw.parserr9rbrcrCrCrCrD�<module>s>H
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY