%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /proc/3/root/usr/lib/python2.7/site-packages/ufw/
Upload File :
Create Path :
Current File : //proc/3/root/usr/lib/python2.7/site-packages/ufw/backend_iptables.pyo

�
��Xc@s�dZddlZddlZddlZddlZddlZddlZddlmZm	Z	ddl
mZmZm
Z
mZmZmZddlZdejjfd��YZdS(s-backend_iptables.py: iptables backend for ufwi����N(tUFWErrortUFWRule(twarntdebugtmsgtcmdtcmd_pipet	_findpathtUFWBackendIptablescBs�eZdZddd�Zd�Zd�Zd�Zeed�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zd�Zed
�Zed�Zd�Zed�Zd�Zd�Zd�ZRS(sInstance class for UFWBackendc	Csqdtjjd|_||_||_i}ttjj|�}ttjj|�}t	j
j|d�|d<t	j
j|d�|d<t	j
j|d�|d<t	j
j|d	�|d
<t	j
j|d�|d<t	j
j|d
�|d<t	j
jttjj|�d�|d<tj
jj|d||d|d|�igd6gd6gd6gd6|_x�ddgD]�}d}|dkr�|j�r�||7}q�|dkr�qqq�nxXdddgD]G}	x>dddgD]-}
d||	|
f}|j|	j|�q�Wq�W|jdj|d�|jdj|d �qqWd!d"d#d$d%d&d'g|_d(|_d)S(*s!UFWBackendIptables initializations# s
_comment #s
user.rulestrulessufw/before.rulestbefore_rulessufw/after.rulestafter_rulessuser6.rulestrules6sufw/before6.rulest
before6_rulessufw/after6.rulestafter6_rulessufw-inittinittiptablestrootdirtdatadirtbeforetusertaftertmisct4t6tufwtinputtoutputtforwards%s-%s-logging-%ss
-logging-denys-logging-allows-mtlimits--limits3/minutes-jtLOGs--log-prefixs[UFW LIMIT BLOCK]N(RtcommontprogramNametcomment_strRRRt
config_dirt	state_dirtostpathtjointlibexec_dirtbackendt
UFWBackendt__init__tchainstuse_ipv6tappendtufw_user_limit_logtufw_user_limit_log_text(tselftdryrunRRtfilesR"R#tvertchain_prefixtlocttargettchain((s8/usr/lib/python2.7/site-packages/ufw/backend_iptables.pyR* sB		(
%
	cCsztd�}|jddkr,|d7}nJ|jddkrL|d7}n*|jddkrl|d7}n
|d	7}|S(
sGet current policys
New profiles:tdefault_application_policytaccepts allowtdrops denytrejects rejects skip(t_tdefaults(R0trstr((s8/usr/lib/python2.7/site-packages/ufw/backend_iptables.pytget_default_application_policyLs



c
Cs�|js�|dkrL|dkrL|dkrLtd�|}t|��n|dkr�|dkr�|dkr�td�|}t|��nd	}|dkr�d
}n|dkr�d}nd}d}|dkry"|j|jd
d|d�Wntk
r�nXd}d}n�|dkrsy"|j|jd
d|d�Wntk
rc�nXd}d}nEy"|j|jd
d|d�Wntk
r��nXd}d}tjd|�}x�|jd|jdgD]�}ytj	j
|�}	Wntk
r�nX|	d}
xV|	dD]J}|j|�retj	j|
|j
||��q.tj	j|
|�q.Wytj	j|	�Wq�tk
r��q�Xq�Wntd�i|d6|d6}|td�7}|S(sSets default policy of firewalltallowtdenyR;sUnsupported policy '%s'tincomingtoutgoingtrouteds%Unsupported policy for direction '%s'tINPUTtOUTPUTtFORWARDtR=sDEFAULT_%s_POLICYs"ACCEPT"s	UFW BLOCKs	UFW ALLOWs"REJECT"s"DROP"RRttmptorigs5Default %(direction)s policy changed to '%(policy)s'
t	directiontpolicys*(be sure to update your rules accordingly)(R1R<Rtset_defaultR2t	ExceptiontretcompileRtutilt
open_filestsearcht
write_to_filetsubtclose_files(
R0RLRKterr_msgR7told_log_strtnew_log_strtpattftfnstfdtlineR>((s8/usr/lib/python2.7/site-packages/ufw/backend_iptables.pytset_default_policyZsz	$			
	
	
!

"
	cCsT|jr1dtd�}|dtd�7}|S|j�ddddg}g}g}|dkr�|jd	�d
dddg}d
ddg}n�|d
kr�x9dddgD](}|jd|�|jd|�q�Wx?dddddgD](}|jd|�|jd|�q�Wx6ddgD](}|jd|�|jd|�q-Wx+dddgD]}|jd|�qiWn|dkr�x�dddgD](}|jd|�|jd|�q�Wn�|dkryx9dddgD](}|jd|�|jd|�q�W|jd d!rH|jd"�|jd#�n|jd d$r�|jd%�|jd&�q�n|d'kr�x�dddgD](}|jd(|�|jd)|�q�Wn�|d*kr�x}dddgD]l}|jd+|�|jd,|�|jd-|�|jd.|�|jd/|�|jd0|�q�W|jd1�|jd2�|jd3�|jd4�nd5|}x�|D]�}d6|kr�|jd6�\}	}|d7|	7}t|jg||d	|	g�\}
}n#t|jg||g�\}
}||7}|dkr?|d87}n|
d9kr�t|��q�q�W|dksv|j	�rP|d:7}x�|D]�}d6|kr�|jd6�\}	}|d7|	7}t|jg||d	|	g�\}
}n#t|j
g||g�\}
}||7}|dkr.|d87}n|
d9kr�t|��q�q�Wn|S(;s'Show current running status of firewalls> sChecking raw iptables
sChecking raw ip6tables
s-ns-vs-xs-Ltraws-ttfiltertnattmangletbuiltinsRERGRFs	filter:%st
PREROUTINGtPOSTROUTINGs	mangle:%ssraw:%ssnat:%sRRRRs
ufw-before-%ssufw6-before-%sRsufw-user-%ssufw6-user-%sRRsufw-user-limit-acceptsufw-user-limitRsufw6-user-limit-acceptsufw6-user-limitRsufw-after-%ss
ufw6-after-%stloggingsufw-before-logging-%ssufw6-before-logging-%ssufw-user-logging-%ssufw6-user-logging-%ssufw-after-logging-%ssufw6-after-logging-%ssufw-logging-allowsufw-logging-denysufw6-logging-allowsufw6-logging-denysIPV4 (%s):
t:s(%s) s
is

IPV6:
(R1R<tinitcapsR-tcapstsplitRRRR,t	ip6tables(R0t
rules_typetouttargstitemstitems6tctbtitttrcRI((s8/usr/lib/python2.7/site-packages/ufw/backend_iptables.pytget_running_raw�s�	









,#



,#

c$Cs+
d}|jrFdtd�}|j�rB|dtd�7}n|Std�}x�dddgD]�}t|jd	d
|dg�\}}|dkr�td
�S|dkr�t|d|��n|j�rbt|jd	d|dg�\}}|dkrt|d��qqbqbWd}d}	d}
|j|j}d}i}
x�|D]�}d}i}d}t	}|r�|j
dks�|jdkr�t}|j
�}||
kr�td|�qRq�t	|
|<nxmddgD]_}d||<d}d}|dkrb|j}|rV|j
dkrV|j
}|jr_|dkr_|d7}q_q�|j}nV|j}|r�|jdkr�|j}|jr�|dkr�|d7}q�n	|j}|dkr�|dkr�|||<n|dkr/||dkr|||<n||cd|7<|rI|jdkrI||cd|j7<n|r/|dkr�|j
dkr�||cd|j
7<|jr�|dkr�||cd7<n||cd7<n|dkr,|jdkr,||cd|j7<|jr|dkr||cd7<n||cd7<q,q/n|dkr|dksS|dkr�d||<|r�|jdkr�|j|jkr�|j|jkr�||cd|j7<n|dkr||cd7<qq`|r`|jdkr`|j|jkr`||cd|j7<q`nJ|jr`|jdkr`|jdkr`d||kr`||cd7<n|jr�|dkr�|jdkr�||cd|j7<n|dkr@|jdkr@||cd|j7<q@q�|dkr|jdkr||cd|j7<n|dkr�|jdkr�||cd|j7<q�q�Wg}d}|jsn|jj�dkr�|jr�|j|jj��n|r�|jdkr�|j|j�nt|�dkr�d d!j|�}q�n|r�|d"|7}n|jj�}|jrd#}n|jd$krK|jrK|rK|rKd}nd}|jdkrsd%|j �}n|d&|ddj|j!j�|g�|d||f7}|r�||7}n<|jr�|
|7}
n&|jdkr�|	|7}	n
||7}|d7}qRW|dks1|	dks1|
dkr�	d'}|rJ|d(7}ntd)�}td*�}td+�}d,}||||f}|r�|d(7}n||d-t|�d-t|�d-t|�f7}||7}|dkr�||7}n|dkr	|	dkr	|td.�7}n|	dkr6	||	7}n|dkra	|
dkra	|td.�7}n|
dkrz	||
7}n|}n|r
|j"�\} }!td/d0d1�i|j#�d$6|j#d�d6|j#dt	�d26}"|j$�}#td3�i|!d46|"d56|#d66|d76Std8�|Sd9S(:sShow ufw managed rulesRHs> sChecking iptables
sChecking ip6tables
sproblem runningRRRs-Lsufw-user-%ss-nisStatus: inactiveis iptables: %s
sufw6-user-%ss
 ip6tablessSkipping found tuple '%s'tdsttsrcs::/0s (v6)s	0.0.0.0/0tanyt t/s (%st)tAnywheres on %sRns (%s)s, s[%2d] tFWDtins # %ss%-26s %-12s%-26s%s%s
s

s     tTotFromtActions%-26s %-12s%s
t-s
sDefault: %(in)s (incoming), s%(out)s (outgoing), s%(routed)s (routed)RDs0Status: active
%(log)s
%(pol)s
%(app)s%(status)stlogtpoltapptstatussStatus: active%sN(%R1R<R,RRRRlR	RtTruetdapptsapptFalset
get_app_tupleRRxtv6tdportRytsporttprotocolRtinterface_int
interface_outtlogtypeRKtlowerR-tlenR&tuppertcommenttget_commenttactiontget_loglevelt_get_default_policyR?($R0tverboset
show_countRnRWRKRvtout6tststr_outtstr_rteR	tcountt	app_rulestrttmp_strtlocationttuplt
show_protoR5tportRItattribst
attrib_strtdir_strR!tfull_strtstr_totstr_fromt
str_actiontrules_header_fmttrules_headertleveltlogging_strt
policy_strtapp_policy_str((s8/usr/lib/python2.7/site-packages/ufw/backend_iptables.pyt
get_statussT	

%

					


$'					
	

	


$







			cCs�|jr tdtd��n�g}|j|jd�|jd	k	r�|jd	k	r�|jd�|j|j�|jd�|j|j�n|jd�t|�\}}|dkr�td|�}t	|��nd	S(
sStop the firewalls> srunning ufw-initRs	--rootdirs	--datadirs
force-stopisproblem running ufw-init
%sN(
R1RR<R-R2RtNoneRRR(R0RoRvRnRW((s8/usr/lib/python2.7/site-packages/ufw/backend_iptables.pyt
stop_firewall�s	


cCs�|jr tdtd��ntg}|j|jd�|jd
k	r�|jd
k	r�|jd�|j|j�|jd�|j|j�n|jd�t|�\}}|dkr�td|�}t	|��nd	|j
ks|j
d	t|jj
��krPy|jd
�Wq�tk
rLtd�}t	|��q�XnDy|j|j
d	�Wn)tk
r�td�}t	|��nXd
S(sStart the firewalls> srunning ufw-initRs	--rootdirs	--datadirtstartisproblem running ufw-init
%stlogleveltlowsCould not set LOGLEVELsCould not load logging rulesN(R1RR<R-R2RR�RRRR=tlistt	loglevelstkeystset_loglevelRNtupdate_logging(R0RoRvRnRW((s8/usr/lib/python2.7/site-packages/ufw/backend_iptables.pytstart_firewall�s4	


"

c
Cs�|jr
tS|j�d}|j}|r>d}|j}nx�dddddgD]�}|dksr|dkr�|r�|jddr�qTq�|r�|jdd	r�qTq�nt|d
d|d|g�\}}|d
krTtd�tSqTWtS(sCheck if all chains existRtufw6RRRRslimit-acceptRRs-ns-Ls-user-is_need_reload: forcing reload(	R1R�RiRRlRjRRR�(R0R�tprefixtexeR7RvRn((s8/usr/lib/python2.7/site-packages/ufw/backend_iptables.pyt_need_reloads&	
		&
cCsYtd�}|jr;td�|j�rUtd�qUn|j�rUyHxA|jdD]2}|j|d|g�|j|d|g�qXWWntk
r�t|��nXt	d|j
dg|jd	g�\}}|d
kr�t|d��n|j�rUt	d|j
dg|jd	g�\}}|d
krRt|d
��qRqUndS(sReload firewall rules filesproblem runnings> | iptables-restores> | ip6tables-restoreRs-Fs-ZtcatR	s-nis	 iptablesRs
 ip6tablesN(
R<R1RR,t
is_enabledR+t
_chain_cmdRNRRR2tiptables_restoretip6tables_restore(R0RWRrRvRn((s8/usr/lib/python2.7/site-packages/ufw/backend_iptables.pyt_reload_user_rules6s*	

cCs,g}tjd�}tjd�}tjd�}|j|�r�|j|�r�|j|�r�|j|jd|jd|���n|j|jd|��|j|jd|��q�|j|jd|��n
|j|�tjd�}tjd	�}	tjd
�}
d}xVt|�D]H\}}
|j|
�r&|jd|
�j�}|j�d
krtd}n!|j�dkr�d}nd}d||f}|	j|
�s�d|}n|jd|
�||<|j||jd|d||
��|j||
jd|d||jd|
���|j||
jd|d||jd||
���q&q&Wtjd�}x�t|�D]�\}}
|j|
�r�|jd|
�}|jddd|d|
�}|jd|d |
�}|||<|j||�|j||�q�q�W|S(!s5Return list of iptables rules appropriate for sendings-p all sport s-j (REJECT(_log(-all)?)?)s-p tcp s-j \1 --reject-with tcp-resets-p udp RHs(.*)-j ([A-Z]+)_log(-all)?(.*)s-j [A-Z]+_log-alls(-A|-D) ([a-zA-Z0-9\-]+)s'-m limit --limit 3/min --limit-burst 10s\2R9tALLOWRtLIMITtBLOCKs"%s -j LOG --log-prefix "[UFW %s] "s-m conntrack --ctstate NEW s	\1-j \2\4s\1-j s-user-logging-s\1 s\1-j RETURNs\1s	 -j LIMITs+ -m conntrack --ctstate NEW -m recent --sets% -m conntrack --ctstate NEW -m recents# --update --seconds 30 --hitcount 6s -j s-user-limits-user-limit-accept(	RORPRSR-RUt	enumeratetstripR�tinsert(R0tfruleR�tsuffixtsnippetst	pat_prototpat_portt
pat_rejecttpat_logt
pat_logallt	pat_chaint
limit_argsRtR�RLtlstrt	pat_limitttmp1ttmp2ttmp3((s8/usr/lib/python2.7/site-packages/ufw/backend_iptables.pyt_get_rules_from_formattedRsh	
		

	
!		
c	Cs�g}|j|||�}tjd�}x�t|�D]�\}}|j|jd|�j��|j|�r7||jd�||j|jd|�jdd��||c|jd|�j�7<q7q7W|S(s_Return list of iptables rules appropriate for sending as arguments
           to cmd()
        s(.*) --log-prefix (".* ")(.*)s\1s--log-prefixs\2t"RHs\3(	R�RORPR�R-RURktmatchtreplace(	R0R�R�R�R�tstr_snippetsRZRtR�((s8/usr/lib/python2.7/site-packages/ufw/backend_iptables.pyt_get_lists_from_formatted�s))cCs�|jdg}|j�r3|j|jd�nx�|D]�}ytjj|�}Wn-tk
r�td�|}t|��nXt	j
d�}t	j
d�}t	j
d�}x|D]}|}	d}
d|kr�|jd�\}	}|j�}
n|j
|	�r�|jd|	�}t	jd	|j��}
t|
�d
ksYt|
�dkrytd�|}t|�q�q�d
}d}d}t|
�dks�t|
�dkr�td�|}|
djd�d}d|
dkr�d|
dkrg|j|
d�rg|j|
d�rg|
djd�djd�d}|
djd�djd�d}q�|
djd�r�|
djd�d}q�|
djd�r�|
djd�d}q�t|�q�q�nyf|
d}t}d|krt}|jd�d}nt|
�dkr\t||
d|
d|
d|
d|
d|||
�	}n�t||
d|
d|
d|
d|
d|||
�	}t	j
d�}|
d
dkr�|jd|
d
�|_n|
ddkr�|jd|
d�|_n|dkr|jd
|�n|dkr9|jd |�nWn.tk
rjtd!�|}t|�q�nX||jdkr�|jt�|jj|�q�|jt�|jj|�q�q�W|j�q:Wd"S(#s$Read in rules that were added by ufwR	RsCouldn't open '%s' for readings^### tuple ###\s*sin_\w+sout_\w+RHs	 comment=s\s+ii	s)Skipping malformed tuple (bad length): %sR�is$Skipping malformed tuple (iface): %si����R<it!iitin_tout_Rhiiiis%20R�R{RnsSkipping malformed tuple: %sN(R2R,R-RRQtopen_file_readRNR<RRORPRkR�R�RUR�RRSt	partitiont
startswithR�R�RR�R�t
set_interfacetset_v6RR	tclose(R0trfnsR[RJRWt	pat_tupletpat_iface_int
pat_iface_outt	orig_lineR^R�thexR�RItwmsgtdtypeR�R�R�Rtrulet	pat_spacetwarn_msg((s8/usr/lib/python2.7/site-packages/ufw/backend_iptables.pyt_read_rules�s�


$	
$	$'
	
	
	


cCs|jd}|r#|jd}ntj|tj�sWtd|�}t|��nytjj|�}Wnt	k
r��nX|j
�d}|j}|r�d}|j}n|j
r�tjj�}n
|d}tjj|d�tjj|d|d	�tjj|d|d
�tjj|d|d�tjj|d|d�tjj|d|d
�tjj|d|d�tjj|d|d�tjj|d|d�tjj|d|d�tjj|d|d�tjj|d|d�tjj|d|d�tjj|d|d�tjj|d|d�|dkr�|jdds�|dkr�|jddr�tjj|d|d�tjj|d|d�ntjj|d�x�|D]�}|j}	|jrd|j}	n|jdkr?|	d|j7}	nd}
|jdkro|jdkro|j}
n}|jdkr�|jdkr�d |j|jf}
nF|jdkr�|
d!|j|jf7}
n|
d!|j|jf7}
|jdkru|jdkrud"|	|j|j|j|j|j|
f}|j dkr[|d#|j 7}ntjj||d$�n�t!j"d%�}d&}
|jr�|j#d'|j�}
nd&}|jr�|j#d'|j�}nd(|	|j|j|j|j|j|
||
f	}|j dkr)|d#|j 7}ntjj||d$�d)}|jrXd*}n|jd+krpd,}nd-||f}d.||j$�f}x0|j%|||�D]}tjj||�q�Wq�Wtjj|d/�tjj|d0�y|j&|j'd1�}Wnt	k
r#�nXx�|D]�\}}}t(|�d2krb|d2d3krbq+n|j)|d&�r+tjj|d%j*|�j+d4d5�j+d6d7�d$�q+q+Wtjj|d8�|dkr�|jdds|dkr�|jddr�tjj|d9�|j'd1d:krdtjj|d;|d<d%j*|j,�d=|j-d>�ntjj|d;|d?�tjj|d;|d@�tjj|dA�ntjj|dB�y3|j
r�tjj.|t/�ntjj.|�Wnt	k
r�nXdCS(Ds.Write out new rules to file to user chain fileR	Rs'%s' is not writableRR�RIs*filter
Rhs-user-input - [0:0]
s-user-output - [0:0]
s-user-forward - [0:0]
s-before-logging-input - [0:0]
s-before-logging-output - [0:0]
s -before-logging-forward - [0:0]
s-user-logging-input - [0:0]
s-user-logging-output - [0:0]
s-user-logging-forward - [0:0]
s-after-logging-input - [0:0]
s-after-logging-output - [0:0]
s-after-logging-forward - [0:0]
s-logging-deny - [0:0]
s-logging-allow - [0:0]
RRRs-user-limit - [0:0]
s-user-limit-accept - [0:0]
s### RULES ###
sroute:RHR<sin_%s!out_%ss%s_%ss#
### tuple ### %s %s %s %s %s %s %ss comment=%ss
R{R�s%20s)
### tuple ### %s %s %s %s %s %s %s %s %sRRRnRs
%s-user-%ss	-A %s %s
s
### END RULES ###
s
### LOGGING ###
R�is-Dt[s"[s] s] "s### END LOGGING ###
s
### RATE LIMITING ###
toffs-A s-user-limit s "s "
s-user-limit -j REJECT
s-user-limit-accept -j ACCEPT
s### END RATE LIMITING ###
sCOMMIT
N(0R2R$taccesstW_OKR<RRRQRRRNRiR	RR1tsyststdouttfilenoRTRjR�RR�R�R�RKR�R�R�R�RxR�RyR�RORPRUtformat_ruleR�t_get_logging_rulesR=R�R�R&R�R.R/RVR�(R0R�t
rules_fileRWR\R4R	R]R�R�tifacesttstrR�R�R�tchain_suffixR7trule_strR�tlrules_tRrtq((s8/usr/lib/python2.7/site-packages/ufw/backend_iptables.pyt_write_rules
s


		

		!
		!			

"$1	
cCsm|j�d}|jru|j�s@td�}t|��n|jdkr�|jddr�td�|jSn2|jdkr�|jddr�td�|jS|jr�|jdkr�|jd	kr�td
�}t|��ng}t	}t	}|j
}|j}	|jrY|jdkrM|j
dksC|jdkrMtd�S|j}n|	d
ksw|	t|�kr�td�|	}t|��n|	d
kr�|jr�td�}t|��n|	t|�kr�td�|	}t|��ny|j�Wntk
r�nXd}
t	}d
}d4}
x�|D]�}y|j�Wntk
re�nX|j|j|j
|jf}|
|	kr|
ddkr�|
ddkr�|
dks�|ddkr�|ddks�|
|kr
t}|j|j��d5}
q|	d7}	n|}
|
d7}
tj||�}|dkrR|d7}n|d
kr�|r�|r�t}|js
|j|j��q
q;|dkr�|jr�|jdkr�t}q;|d
kr|jr|rt}t}|j|j��q;|j|�q;W|rL|d
kr�td�}|jrE|d7}n|Sn�|rs|jrs|j|j��n|r�|jr�|jr�td�}|jr�|d7}n|S|r�|jr�|r�td�}|jr�|d7}n|S|jr||_n	||_
y|j|j�Wn:tk
r8�n'tk
r^td�}t|�nXtd�}|jr�td�}n|j�ri|jrid}|s�|j|j�s�|rCd}|r�|td�7}n|td�7}|jr|d7}n|r0y|j �Wq@tk
r,�q@Xq�|td�7}nQ|rg|jrgd}td �}n-|r�|r�|jr�d!}td"�}n|dkri|j!}d#}|jr�|j"}d$}|d7}nd%}|j#r�d&}n|j$d'krd(}nd)||f}td*�}t%|d+|d,g�\}}|d
krYt|��nd-|||j&�f}t'j(d.�}x�|j)|||�D]�}t%|g|�\}}|d
kr�t*|t+j,�t|�n|d!kr�|j-d/j.|��r�|j/d0d/j.|��}t%|d|d1d2g�\}}|d
kr_t0d3|�q_q�q�Wqin|S(6sXUpdates firewall with rule by:
        * appending the rule to the chain if new rule and firewall enabled
        * deleting the rule from the chain if found and firewall enabled
        * inserting the rule if possible and firewall enabled
        * updating user rules file
        * reloading the user rules file if rule is modified
        RHs)Adding IPv6 rule failed: IPv6 not enabledRRs#Skipping unsupported IPv6 '%s' ruleRs#Skipping unsupported IPv4 '%s' ruletudpttcps/Must specify 'tcp' or 'udp' with multiple portss1.4s:Skipping IPv6 application rule. Need at least iptables 1.4isInvalid position '%d's Cannot specify insert and deletes#Cannot insert rule at position '%d'iiii����s Skipping inserting existing rules (v6)s"Could not delete non-existent rulesSkipping adding existing rulesCouldn't update rules files
Rules updatedsRules updated (v6)s
Rule insertedsRule updateds (skipped reloading firewall)s-DsRule deleteds-As
Rule addedRR�RRRnRs
%s-user-%ss!Could not update running firewalls-Ls-ns%s %s %ss(-A +)(ufw6?-user-[a-z\-]+)(.*)R{s\2s-jtRETURNsFAILOK: -D %s -j RETURN(RHRHRHRH(RHRHRHRH(1RiR�R,R<RR�RjtmultiR�R�R	tpositiontiptables_versionR�R�RR�tremovet	normalizeRNRxRyR�R-tdup_ruleRR�R�R1RR�R�R�RRlRRKRRRORPR�RRtstderrRSR&RUR(R0R�tallow_reloadR>RWtnewrulestfoundtmodifiedR	RR�tinsertedtmatchestlastR�tcurrenttrettflagR�R4R
R7RvRnRR�R�Rr((s8/usr/lib/python2.7/site-packages/ufw/backend_iptables.pytset_rule�s4

	!!'			



, 	


	$		
	
	
		

		


			
			

$!c
Cs�g}g}|r|j}n	|j}|j�}|j|�|j�|j�}xL|D]D}|j�}|j�|j�}	|	|kr]|j|�q]q]W|S(s@Return a list of UFWRules from the system based on template rule(RR	RR�RR�R-(
R0ttemplateR�R	R�tnormR�R�RIt	tmp_tuple((s8/usr/lib/python2.7/site-packages/ufw/backend_iptables.pytget_app_rules_from_system�s 	



cCs�|j}|jd�r$|j}nt|g|�\}}|dkrtd|�}|rptd|�qt|��ndS(sPerform command on chainR�isCould not perform '%s'sFAILOK: N(RR�RlRR<RR(R0R7Rotfail_okR�RvRnRW((s8/usr/lib/python2.7/site-packages/ufw/backend_iptables.pyR��s	c		CsL|jr
dS|j�g}y|j|�}Wntk
rF�nXy$|jdt�|jdt�Wn:tk
r��n'tk
r�td�}t|�nX|j	�s�dStd�}xs|j
d|j
d|j
d|j
dD]C}y|j|d	|d
g�Wq�tk
r5t|��q�Xq�Wy^xW|j
d|j
d|j
dD]2}|j|d|g�|j|d|g�qaWWntk
r�t|��nXx�|D]�\}}}t}t|�d
kr�|d
dkr�t}nyY|dkrDt|�dkrD|j|dg|ddt�n|j|||�Wq�tk
rwt|��q�Xq�Wx�ddgD]�}|j
ddr�|dks�|j
ddr�|dkr�|j|d|g|j|jdgdt�|jddkrD|j|d|g|j|jdgdt�qDq�q�WdS(s#Update loglevel of running firewallNR�s&Couldn't update rules file for loggings!Could not update running firewallRRRRs-Ls-ns-Fs-Zis-Dtdelete_firstiR(sufw-user-limitsufw6-user-limitRRRR{R�R�s-I(R1RiRRNRR�R�RR<R�R+R�R�RjR.R/R=(	R0R�trules_tRWRrR�R
R(R7((s8/usr/lib/python2.7/site-packages/ufw/backend_iptables.pyR��sl	



2

"	$
		c	
Cs�g}|t|jj��kr@td�|}t|��n|dkr�x7|jdD](}|j|d|ddgdg�qZW|Sx7|jdD](}|j|d|ddgd	g�q�Wd
ddd
ddg}|j||jdkr8g}|j||jdkr|}nx�|jdD]�}x�dddgD]�}|j|�rC|j|�dks�|j|�dkr�d}|j|d|ddd|g|d	g�q	|j||jdkr	d}|j|d|ddd|g|d	g�q	qCqCWq-Wg}|j||jdkr:|}nx�|jdD]�}|jd�rfd}n�|jd�rd}|j||jdkr�|j|d|d
d d!d"ddg|d	g�q|j|d|d
d d!d"dddd#g
|d	g�n|j|d|ddd|g|d	g�qHWn|j||jdkr�g}|j||jd$kr{|}n|j||jdkr�d
d d!d%g|}nd&}xD|jd'D]2}|j|d|ddd|g|d	g�q�Wn|S((s%Get rules for specified logging levelsInvalid log level '%s'R�Rs-Is-jRR)s-DRHs-mRs--limits3/mins
--limit-burstt10R�thighRRRRR;RAs[UFW BLOCK] s-ARs--log-prefixtmediums[UFW ALLOW] RR@t	conntracks	--ctstatetINVALIDs[UFW AUDIT INVALID] tfulltNEWs[UFW AUDIT] R(	R�R�R�R<RR+R-tendswithR�(	R0R�R*RWRrR�tlargsRuR�((s8/usr/lib/python2.7/site-packages/ufw/backend_iptables.pyR�sx&&						cCs�d}ttjj|j�}g}x�|jD]�}|j|jd�sPq.n|j|j|�tj	j
|dtj	j|j|��}tj	j|�s.t
d�|}t|��q.q.Wtjd�}xO|D]G}d||f}tj	j|�r�t
d�|}t|��q�q�Wx\|D]T}d||f}|t
d�itj	j|�d	6|d
67}tj||�q,Wx|D]�}d||f}tjtj	j
|dtj	j|��tj	j|��tj||�y tj|�}	|	tj}
Wn.tk
r;t
d�|}t|�q�nX|
tj@r`|t
d�|7}q�|
tj@r�|t
d
�|7}q�q�W|S(sReset the firewallRHs.rulesRsCould not find '%s'. Abortings
%Y%m%d_%H%M%Ss%s.%ss'%s' already exists. Abortings"Backing up '%(old)s' to '%(new)s'
toldtnewsCouldn't stat '%s'sWARN: '%s' is world writablesWARN: '%s' is world readable(RRRt	share_dirRR2R2R-R$R%R&tbasenametisfileR<RttimetstrftimetexiststrenametshutiltcopytdirnametcopymodetstattST_MODERNRtS_IWOTHtS_IROTH(R0tresR6tallfilesRttfnRWtextR4tstatinfotmodeR�((s8/usr/lib/python2.7/site-packages/ufw/backend_iptables.pytresetYsR

"




N(t__name__t
__module__t__doc__R�R*R?R_RwR�R�R�R�R�R�R�R�R�RR�R#R'R�R�RRK(((s8/usr/lib/python2.7/site-packages/ufw/backend_iptables.pyRs(,		K	]�		!			D		e��	
	J	Z(RNR$ROR=RARR9t
ufw.commonRRtufw.utilRRRRRRtufw.backendRR(R)R(((s8/usr/lib/python2.7/site-packages/ufw/backend_iptables.pyt<module>s.

Zerion Mini Shell 1.0