MINI MINI MANI MO

Path : /usr/lib/python2.7/site-packages/firewall/core/
File Upload :
Current File : //usr/lib/python2.7/site-packages/firewall/core/ipXtables.pyo

ó
dߨ[c@scddlZddlmZddlmZddlmZmZm	Z	ddl
mZddlZidd6dd	6Z
id
ddgd
6ddgd6ddd
ddgd6dddgd6d
ddgd6Zidd6dd	6Zidd6dd	6ZiZiZiZged
<eƒed
<xWed
D]KZed
jdeƒed
jdeefƒed
jdeƒq-Wged<eƒed<xëedD]ßZedjdeƒedjdeefƒedjdeƒedkr}edjdeƒedjdeƒedjdeefƒedjdeefƒedjeded egƒƒnqžWged<eƒed<xëedD]ßZedjdeƒedjdeefƒedjdeƒedkr‚edjdeƒedjdeƒedjdeefƒedjdeefƒedjeded egƒƒnq£Wged<eƒed<xñedD]åZedjdeƒedjdeefƒedjdeƒeddgkredjdeƒedjdeƒedjdeefƒedjdeefƒedjeded egƒƒnq¨Wd!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:ged<d;d<d=d>ged<ed?d@dAdBdCdDdEdFdGg	ƒed<dHefdI„ƒYZdJefdK„ƒYZdL„ZdS(MiÿÿÿÿN(trunProg(tlog(ttempFiletreadfilet	splitArgs(tconfigs/proc/net/ip_tables_namestipv4s/proc/net/ip6_tables_namestipv6tINPUTtOUTPUTtFORWARDtsecurityt
PREROUTINGtrawtPOSTROUTINGtmangletnattfiltersicmp-host-prohibitedsicmp6-adm-prohibitedticmps	ipv6-icmps-N %s_directs-I %s 1 -j %s_directs	%s_directs-N %s_ZONES_SOURCEs-N %s_ZONESs-I %s 2 -j %s_ZONES_SOURCEs-I %s 3 -j %s_ZONESs%s_ZONES_SOURCEs%s_ZONESs-N INPUT_directs-N INPUT_ZONES_SOURCEs-N INPUT_ZONESs?-I INPUT 1 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPTs-I INPUT 2 -i lo -j ACCEPTs-I INPUT 3 -j INPUT_directs -I INPUT 4 -j INPUT_ZONES_SOURCEs-I INPUT 5 -j INPUT_ZONESs1-I INPUT 6 -m conntrack --ctstate INVALID -j DROPs-I INPUT 7 -j %%REJECT%%s-N FORWARD_directs-N FORWARD_IN_ZONES_SOURCEs-N FORWARD_IN_ZONESs-N FORWARD_OUT_ZONES_SOURCEs-N FORWARD_OUT_ZONESsA-I FORWARD 1 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPTs-I FORWARD 2 -i lo -j ACCEPTs-I FORWARD 3 -j FORWARD_directs'-I FORWARD 4 -j FORWARD_IN_ZONES_SOURCEs -I FORWARD 5 -j FORWARD_IN_ZONESs(-I FORWARD 6 -j FORWARD_OUT_ZONES_SOURCEs!-I FORWARD 7 -j FORWARD_OUT_ZONESs3-I FORWARD 8 -m conntrack --ctstate INVALID -j DROPs-I FORWARD 9 -j %%REJECT%%s-N OUTPUT_directs-I OUTPUT 1 -j OUTPUT_directs`-I INPUT 6 -m conntrack --ctstate INVALID %%LOGTYPE%% -j LOG --log-prefix 'STATE_INVALID_DROP: 's;-I INPUT 8 %%LOGTYPE%% -j LOG --log-prefix 'FINAL_REJECT: 'sb-I FORWARD 8 -m conntrack --ctstate INVALID %%LOGTYPE%% -j LOG --log-prefix 'STATE_INVALID_DROP: 's>-I FORWARD 10 %%LOGTYPE%% -j LOG --log-prefix 'FINAL_REJECT: 'tINPUT_directtINPUT_ZONES_SOURCEtINPUT_ZONEStFORWARD_directtFORWARD_IN_ZONES_SOURCEtFORWARD_IN_ZONEStFORWARD_OUT_ZONES_SOURCEtFORWARD_OUT_ZONESt
OUTPUT_directt	ip4tablescBsÂeZdZd„Zd„Zd„Zdd„Zd„Ze	dd„Z
dd„Zd	„Zd
„Z
dd„Zd„Zd
„Zd„Zdd„Zddd„Zd„Zdd„ZRS(RcCsVtj|j|_tjd|j|_|jƒ|_|jƒ|_|j	ƒdS(Ns
%s-restore(
RtCOMMANDStipvt_commandt_restore_commandt_detect_wait_optiontwait_optiont_detect_restore_wait_optiontrestore_wait_optiontfill_exists(tself((s;/usr/lib/python2.7/site-packages/firewall/core/ipXtables.pyt__init__œs
cCs4tjj|jƒ|_tjj|jƒ|_dS(N(tostpathtexistsRtcommand_existsR trestore_command_exists(R&((s;/usr/lib/python2.7/site-packages/firewall/core/ipXtables.pyR%£scCsÔ|jrB|j|krB|jgg|D]}d|^q(}ng|D]}d|^qI}tjd|j|jdj|ƒƒt|j|ƒ\}}|dkrÐtd|jdj|ƒ|fƒ‚n|S(Ns%ss	%s: %s %st is'%s %s' failed: %s(R"Rtdebug2t	__class__RtjoinRt
ValueError(R&targstitemt_argststatustret((s;/usr/lib/python2.7/site-packages/firewall/core/ipXtables.pyt__run§s*%cCsø|dkr|Sg}xÛ|D]Ó}t}x®|D]¦}y|j|ƒ}Wntk
r\q0Xt|ƒ|kr0d||dkr0t}||djdƒ}x3|D](}	|}
|	|
|d<|j|
ƒq§Wq0q0W|s|j|ƒqqW|S(s5Split values combined with commas for options in optst,iN(tNonetFalsetindexR1tlentTruetsplittappend(R&trulestoptst	out_rulestrulet	processedtopttititemsR3t_rule((s;/usr/lib/python2.7/site-packages/firewall/core/ipXtables.pytsplit_value´s(


&
cCsAy|j|ƒ}Wntk
r'tSX||||d+tSdS(Ni(R;R1R:R=(R&RCtpatterntreplacementRF((s;/usr/lib/python2.7/site-packages/firewall/core/ipXtables.pyt
_rule_replaceÒs
toffcCstƒ}i}xÖ|D]Î}|}|j|dddt|jgƒ|j|dt|jgƒy|jdƒ}Wntk
r‰nLX|dkrœqn|d&krÈd
dd|g|||d
+n
|j|ƒd}	xpddgD]b}
y|j|
ƒ}Wntk
rqèXt|ƒ|d
krè|j|ƒ|j|ƒ}	qèqèWxzt	t|ƒƒD]f}x]t
jD]R}|||krq||jdƒoª||j
dƒrqd||||<qqqqWqaW|j|	gƒj|ƒqWx‘|D]‰}	||	}|j|ddgƒ}|j|ddgƒ}|jd|	ƒx(|D] }|jdj|ƒdƒqGW|jdƒqïW|jƒtj|jƒ}tjd|j|jd|j|jfƒg}
|jræ|
j|jƒn|sü|
jdƒnt|j|
d|jƒ\}}tjƒdkr¹t|jƒ}|dk	r¹d
}xc|D]X}tj!d ||fd!d
d"d#ƒ|j
dƒs¥tj!d$d!d
ƒn|d
7}qWWq¹ntj"|jƒ|d#krýtd%|jdj|
ƒ|fƒ‚n|S('Ns
%%REJECT%%tREJECTs
--reject-withs%%ICMP%%s%%LOGTYPE%%RMtunicastt	broadcastt	multicasts-mtpkttypes
--pkt-typeiRs-ts--tablet"s"%s"s-ss--sources-ds
--destinations*%s
R-s
sCOMMIT
s	%s: %s %ss%s: %ds-ntstdinis%8d: %stnofmttnlits'%s %s' failed: %s(RORPRQ(#RRLtDEFAULT_REJECT_TYPERtICMPR;R1tpopR<trangetstringt
whitespacet
startswithtendswitht
setdefaultR?RItwriteR0tcloseR(tstattnameRR.R/R tst_sizeR$RtgetDebugLogLevelRR9tdebug3tunlink(R&R@tflusht
log_deniedt	temp_filettable_rulesRHRCRFttableREtcRcR2R5R6tlinestline((s;/usr/lib/python2.7/site-packages/firewall/core/ipXtables.pyt	set_rulesÛs€	

 


#



	
#cCsÀ|j|dddt|jgƒ|j|dt|jgƒy|jdƒ}Wntk
rfnMX|dkrwdS|dkr¦ddd
|jg|||d+n
|j|ƒ|j|ƒS(Ns
%%REJECT%%RNs
--reject-withs%%ICMP%%s%%LOGTYPE%%RMRWRORPRQs-mRRs
--pkt-typei(sunicasts	broadcasts	multicast(	RLRXRRYR;R1t_log_deniedRZt_ip4tables__run(R&RCRjRF((s;/usr/lib/python2.7/site-packages/firewall/core/ipXtables.pytset_rule6s
	
cCs|jdg|ƒdS(Ns-A(Rs(R&RC((s;/usr/lib/python2.7/site-packages/firewall/core/ipXtables.pytappend_ruleNscCs|jdg|ƒdS(Ns-D(Rs(R&RC((s;/usr/lib/python2.7/site-packages/firewall/core/ipXtables.pytdelete_ruleQscCsŽg}|r|gn	tjƒ}xf|D]^}y*|jd|ddgƒ|j|ƒWq(tk
r…tjd|j|fƒq(Xq(W|S(Ns-ts-Ls-nsA%s table '%s' does not exist (or not enough permission to check).(tBUILT_IN_CHAINStkeysRsR?R1Rtdebug1R(R&RmR6ttables((s;/usr/lib/python2.7/site-packages/firewall/core/ipXtables.pytavailable_tablesTs

"cCsxg}t|j}tjj|ƒrtt|dƒ;}x1|jƒD]#}|sTPn|j|jƒƒqDWWdQXn|S(Ntr(	tPROC_IPxTABLE_NAMESRR(R)R*topent	readlinesR?tstrip(R&RztfilenametfRp((s;/usr/lib/python2.7/site-packages/firewall/core/ipXtables.pytused_tables`s
 cCsŽd}t|jdddgƒ}|ddkrŠd}t|jdddgƒ}|ddkrkd}ntjd|j|j|ƒn|S(NRWs-ws-Ls-nis-w2s%s: %s will be using %s option.(RRRR.R/(R&R"R6((s;/usr/lib/python2.7/site-packages/firewall/core/ipXtables.pyR!ms	cCsÅtƒ}|jdƒ|jƒd}xlddgD]^}t|j|gd|jƒ}|ddkr3d|dkr3d	|dkr3|}Pq3q3Wtjd
|j|j|ƒt	j
|jƒ|S(Ns#fooRWs-ws--wait=2RTisinvalid optionisunrecognized options%s: %s will be using %s option.(RRaRbRR RdRR.R/R(Rh(R&RkR"ttest_optionR6((s;/usr/lib/python2.7/site-packages/firewall/core/ipXtables.pyR#ys	

 cCs||jƒ}xi|D]a}xXdddgD]G}|dk	rZ|j|jd||gƒq)|jd||gƒq)WqWdS(Ns-Fs-Xs-Zs-t(RƒR9tadd_ruleRRs(R&ttransactionRzRmtflag((s;/usr/lib/python2.7/site-packages/firewall/core/ipXtables.pyRiŒs
tusedc	Cs¶|dkr|jƒ}nttjƒƒ}x‚|D]z}|dkrLq4nx_t|D]S}|dk	rŽ|j|jd|d||gƒqW|jd|d||gƒqWWq4WdS(NRˆRs-ts-P(RƒtlistRwRxR9R…RRs(R&tpolicytwhichR†RzRmtchain((s;/usr/lib/python2.7/site-packages/firewall/core/ipXtables.pyt
set_policy˜s
c
Cs{g}d}y1|jd|jdkr-dnddgƒ}WnGtk
r†}|jdkrrtjd|ƒq‡tjd|ƒnX|jƒ}t}xÛ|D]Ó}|r.|jƒjƒ}|j	ƒ}xa|D]V}|j
d	ƒr|jd
ƒr|dd!}	n|}	|	|krÑ|j|	ƒqÑqÑWn|jdkrL|j
d
ƒsj|jdkr |j
dƒr t
}q q W|S(sQReturn ICMP types that are supported by the iptables/ip6tables command and kernelRWs-pRRs	ipv6-icmps--helpsiptables error: %ssip6tables error: %st(t)iiÿÿÿÿsValid ICMP Types:RsValid ICMPv6 Types:(RsRR1RRyt
splitlinesR:R€tlowerR>R^R_R?R=(
R&R6toutputtexRotin_typesRptsplitsR>tx((s;/usr/lib/python2.7/site-packages/firewall/core/ipXtables.pytsupported_icmp_types¨s4	


cCsÃx¼tD]´}||jƒkr%qnt|}|dkr\|tkr\|jt|ƒnd|g}xP|D]H}t|ƒtkr”||}n|t|ƒ}|j|j|ƒqoWqWdS(NRMs-t(	t
DEFAULT_RULESR{t	LOG_RULEStextendttypeR‰RR…R(R&R†RjRmt
default_rulestprefixRCRH((s;/usr/lib/python2.7/site-packages/firewall/core/ipXtables.pytapply_default_rulesÉs


N(t__name__t
__module__RR'R%RsR9RIRLR:RqRtRuRvR{RƒR!R#RiRR—Rž(((s;/usr/lib/python2.7/site-packages/firewall/core/ipXtables.pyR™s$			
		[			
			!t	ip6tablescBseZdZed„ZRS(RcCs¬|j|jddddddddd	d
g
ƒ|j|jddddddd
dd	dg
ƒ|dkr¨|j|jddddddd
dd	dddgƒndS(Ns-IRt1s-tR
s-ps	ipv6-icmps"--icmpv6-type=router-advertisements-jtACCEPTt2s-mtrpfilters--inverttDROPRMtLOGs--log-prefixsrpfilter_DROP: (R…R(R&R†Rj((s;/usr/lib/python2.7/site-packages/firewall/core/ipXtables.pytapply_rpfilter_rulesÛs
	(RŸR RR:R¨(((s;/usr/lib/python2.7/site-packages/firewall/core/ipXtables.pyR¡ØscCsÎidd6dd6dd6dd6dd6d	d
6}|}x|D]ˆ}y|j|ƒ}Wntk
rmq>nX|dkr¸yt||dƒWntk
r£q¸X|j|dƒn||||<q>W|S(
s Inverse valid rule s-Ds-As--deletes--appends-Is--inserts-Xs-Ns--delete-chains--new-chaini(s-Is--insert(R;t	ExceptiontintRZ(R&R2treplace_argstret_argstargtidx((s;/usr/lib/python2.7/site-packages/firewall/core/ipXtables.pytreverse_ruleís*



(tos.pathR(tfirewall.core.progRtfirewall.core.loggerRtfirewall.functionsRRRtfirewallRR\R}RwRXRYR˜R™t
OUR_CHAINStsetRŒR?taddtupdatetobjectRR¡R¯(((s;/usr/lib/python2.7/site-packages/firewall/core/ipXtables.pyt<module>sÎ







,

,

,

ÿ@

OHA YOOOO