Spamworldpro Mini Shell
Spamworldpro


Server : Apache/2.4.52 (Ubuntu)
System : Linux webserver 6.8.0-49-generic #49~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Nov 6 17:42:15 UTC 2 x86_64
User : www-data ( 33)
PHP Version : 8.1.2-1ubuntu2.21
Disable Function : NONE
Directory :  /lib/python3/dist-packages/ufw/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //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

Spamworldpro Mini