/usr/lib/python3/dist-packages/ufw/__pycache__
Edit: /usr/lib/python3/dist-packages/ufw/__pycache__/frontend.cpython-310.pyc (19840B)
o
Fa @ sz d Z ddlZddlZddlZddlmZ ddlZddlmZm Z m
Z
ddlmZ ddl
Zdd Zdd ZG d
d dZdS )z'frontend.py: frontend interface for ufw N)UFWError)errorwarnmsg)UFWBackendIptablesc
C s t j }dD ]}|t j| qdD ]}|t j| qdD ]}|t j| q#dD ]}|t j| q1dD ]}|t j| q?dD ]}|t j | qMg d}|D ]}|t j
| |t j| q_t| dkrd }| |
d
krd}| |
dkr| |
dkr| |
|v r| |d
t| dk sd
| v rt| dk rtd z|| d d }W |S ty } ztd|j W Y d}~|S d}~w ty tddd w )zEParse command. Returns tuple for action, rule, ip_version and dryrun.)enabledisablehelpz--helpversionz --versionreloadreset)listinfodefaultupdate)onofflowmediumhighfull)allowdenyreject)Nverbosenumbered)rawzbefore-rulesz
user-ruleszafter-rulesz
logging-rulesbuiltins listeningadded)r limitr r insertdeleteprepend --dry-runr routerule znot enough argsNz%szInvalid syntaxF)do_exit)ufwparser UFWParserregister_commandUFWCommandBasic
UFWCommandAppUFWCommandLoggingUFWCommandDefaultUFWCommandStatusUFWCommandShowUFWCommandRuleUFWCommandRouteRulelenlowerr! r
parse_commandr value Exception)argvpi
rule_commandsidxpre rC ./usr/lib/python3/dist-packages/ufw/frontend.pyr9 sL
r9 c C s t di dtjjddddddddd d
ddd
dddddddddddddddddddi d d!d"d#d$d%d&d'd(d(d)d)d*d*d+d,d-d.d/d0d1d2d3d3d4d5d6d7d8d9d: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
prognamecommandCOMMANDcommandsCommandsr r r zdefault ARGloggingz
logging LEVELlevelLEVELr z
allow ARGSr( r z deny ARGSr zreject ARGSr z
limit ARGSr" zdelete RULE|NUMuruleRULEr! zinsert NUM RULEr# zprepend RULEr' z
route RULEzroute-deletezroute delete RULE|NUMzroute-insertzroute insert NUM RULEnumberNUMr r status statusnumzstatus numberedrulesRULES
statusverbosezstatus verboseshowzshow ARGr
appcommandszApplication profile commandsapplistzapp listappinfozapp info PROFILEprofilePROFILE appupdatezapp update PROFILE
appdefaultzapp default ARG)_r+ commonprogramName)help_msgrC rC rD get_command_help[ s
!"Crb c @ s e Zd ZdZ d,ddZdd Zdd Zd
d Zd-d
dZd.ddZ dd Z
dd Zdd Zd/ddZ
d/ddZdd Zdd Zd d! Zd"d# Zd$d% Zd&d' Zd(d) Zd/d*d+ZdS )0UFWFrontendUIiptablesNc C s\ |dkrz
t |||d| _W n ty w td| td| _td| _td| _d S )Nre )rootdirdatadirzUnsupported backend type '%s'nyyes)r backendr; r r^ norj yes_full)selfdryrunbackend_typerf rg rC rC rD __init__ s
zUFWFrontend.__init__c
C s| d}d}|rd}d}|r| j r|s| j rd}|rBz| j | j jd d| W n tyA } zt|j W Y d}~nd}~ww d}|rz| j W n tyd } z|rZ|j}W Y d}~nd}~ww |dkrz| j | j jd dd W n ty } zt|j W Y d}~nd}~ww t| td }|S z| j W n ty } zt|j W Y d}~nd}~ww td
}|S )zlToggles ENABLED state in /ufw/ufw.conf and starts or
stops running firewall.
rl rj FTconfENABLEDNz0Firewall is active and enabled on system startupz/Firewall stopped and disabled on system startup)
rk
is_enabledset_defaultfilesr r r: start_firewallr^
stop_firewall)rn enabledres
config_strchangedrB error_strrC rC rD set_enabled sb zUFWFrontend.set_enabledc
C sn d}z| j ||}| j r| j | j W |S W |S ty6 } zt|j W Y d}~|S d}~ww )zSets default policy of firewallrr N)rk set_default_policyru ry rx r r r: )rn policy directionr{ rB rC rC rD r s
zUFWFrontend.set_default_policyc
C H d}z | j |}W |S ty# } zt|j W Y d}~|S d}~ww )zSets log level of firewallrr N)rk set_loglevelr r r: )rn rK r{ rB rC rC rD r zUFWFrontend.set_loglevelFc
C sF z
| j ||}W |S ty" } zt|j W Y d}~|S d}~ww )zShows status of firewallN)rk
get_statusr r r: )rn r
show_countoutrB rC rC rD r s zUFWFrontend.get_statusr c
C sD z | j |}W |S ty! } zt|j W Y d}~|S d}~ww )zShows raw output of firewallN)rk get_running_rawr r r: )rn
rules_typer rB rC rC rD get_show_raw s zUFWFrontend.get_show_rawc C s d}zt j| j }W n ty td}t|w | j }t |
}| |D ]}| j s:|dv r:q.|d| 7 }t ||
}| |D ]}|| | D ]} | d }
|
ds|
dsd}|d| 7 }|
d ksv|
d
kr|d7 }d| d }
n|d
|
7 }t j
|
}|dtj| d 7 }t jjd|dd ||
ddd}||d |dkr|d| | | j|}
t|
dkr|d7 }|
D ]}|dkr|d t|k r|d|t jj||d f 7 }q|d7 }qVqNq.| j st jd |S )zMShows listening services and incoming rules that might affect
themrr zCould not get listening status)tcp6udp6z%s:
laddrz127.z::1z %s z0.0.0.0z::z* z%s/0z%s z(%s)exer Nr) inF)actionprotocoldportdstr forward6r
r% z [%2d] %s
z)Skipping tcp6 and udp6 (IPv6 is disabled))r+ utilparse_netstat_outputrk use_ipv6r; r^ r get_rulesr
keyssort
startswithget_if_from_ipospathbasenamer_ UFWRuleset_v6endswith
set_interface normalizeget_matchingr7 r, r5 get_commanddebug)rn r{ derr_msgrS protocolsprotoportsportitemaddrifnamer( matchingr> rC rC rD get_show_listening sv
/zUFWFrontend.get_show_listeningc C s | j }td}t|dkr|td S g }| j D ]&}|jr+dtjj| }ntjj |}||v r7q|
| |d| 7 }q|S )z!Shows added rules to the firewallz9Added user rules (see 'ufw status' for running firewall):r z
(None)route %sz
ufw %s)rk r r^ r7 r r+ r, r6 r r5 append)rn rS r r rrstrrC rC rD get_show_added\ s
zUFWFrontend.get_show_addedc C s d}d}d}g }|j dkr|jdkr|| ng }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| jjstd }|dkr|}|W S |dkr|d
}|W S |dkr|d | d
}|W S |D ]}| }|j|_|
|j ||j || qn| j|}|jdkr| W n ty w d}
d}td}| jd}| jd}t|D ]\}}|}
|j|| kr
|t|jd
7 }t |z| j r|dkrT|jdkr4|
dkr,|dkr,dnd}|| n|j|krG|t|jd
7 }t ||d | j|}n{|dkr|jdkrs|
dkrk|dkrkdnd}|| n(|j|kr||j| n|jdkr|j|kr|t|jd
7 }t ||d | j|}n'|dkr|j}|d |dkr|
dkr|dkrdnd}|| n$|js||kr| j|| |
d}|dkr|| n|d | j|}|js|dkr| jd}||d |d |dkr,|
dkr$|dkr$dnd}|| n*|jsV|jdkrV|j|krV| j|jd}|dkrQ|||
n|d |dkr_|d7 }|jsv|j|krv|dkrv||j| || j|7 }nPtd| }t ||jdkr|
dkr|dkrdnd}|| |dks|dkr|d | j|}n|dkrtd}t |td| }t |W n t y } z|j}d}W Y d}~ nd}~ww |jrtd}t | q|s||7 }|S t
|dkrt!| |S d}t"t#|
d }| |D ]9}|
dkrV|| rV|| }d|_z | || W q tyU d}td|$ }t | Y qw q|td7 }|rk|td7 }t ||td7 }t |)zUpdates firewall with rulerr v4Fv6TbothzInvalid IP version '%s'r z"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.)%dappsappr removerk get_app_rules_from_systemr matchr^ r r7 ro dup_rule
set_actionr set_logtypelogtypeget_app_rules_from_templatepositionreverser; get_rules_count enumeratestrr set_positionr set_rulefind_other_positionr: updatedwarningsr r r
rangeformat_rule)rn r(
ip_versionr{ r tmprS tmprules tmprules6xri prev6r count set_errorpos_err_msgnum_v4num_v6r> beginuser_posr= rB warn_msg
undo_errorindexesjbackout_rulerC rC rD r y sj
zUFWFrontend.set_rulec
C sP zt |}W n ty td| }t|w | j }|dks'|t|kr1td| }t|| j|}|sCtd| }t|d|_d}|j rMd}d}|s|j
r^dtjj
| } ntjj|} td| | j| jd }
t|
tjd
d tj }|dkr|| j kr|| j krd
}d
}|r| ||}|S td}|S )zDelete rulezCould not find rule '%s'r zCould not find rule '%d'Tr r r z=Deleting:
%(rule)s
Proceed with operation (%(yes)s|%(no)s)? )r( rj rl Foutputnewlineri rr Aborted)intr; r^ r rk r r7 get_rule_by_numberr r r r+ r, r6 r r5 rj rl r sysstdoutstdinreadliner8 striprm r )
rn rO forcerh r rS r( r proceedr promptansr{ rC rC rD delete_ruleE sT
zUFWFrontend.delete_rulec
C sH d}| dr"|d}t|dkr| |d }|S | d}|S |dkr-| d}|S | drQtd }|d
}t|dkrEt|| |d |d }|S |d
kr\| |}|S |dkrf| }|S |dkrq| d}|S | dr|d
d }|dkr| }|S |dkr|
}|S | |}|S |dkr| dd}|S |dkr| d}|S |dkr| d}|S |dkr| j
r| d | d td}|S td}|S | dr| |d
d |}|S |dks|dks|dks|dkr|jdkrGz| j
|j}||jkr||_||d W n, tyF } z|js,t|j tj|js