Viewing File: /usr/lib/python2.7/site-packages/firewall/server/config.pyc


c`c@sddlmZddlZeejd<ddlZddlZddlZddlZddl	Zddl
mZddlm
Z
ddlmZddlmZddlmZmZmZdd	lmZdd
lmZddlmZddlmZdd
lmZddl m!Z!ddl"m#Z#ddl$m%Z%ddl&m'Z'ddl(m)Z)ddl*m+Z+ddl,m-Z-ddl.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5ddl
m6Z6ddl7m8Z8dejj9j:fdYZ;dS(i(tGObjectNtgobject(tconfig(tDEFAULT_ZONE_TARGET(tWatcher(tlog(thandle_exceptionstdbus_handle_exceptionstdbus_service_method(tFirewallDConfigIcmpType(tFirewallDConfigService(tFirewallDConfigZone(tFirewallDConfigIPSet(tFirewallDConfigHelper(tZone(tService(tIcmpType(tIPSet(tHelper(tLockdownWhitelist(tDirect(tdbus_to_pythontcommand_of_sendertcontext_of_sendert
uid_of_sendertuser_of_uidt%dbus_introspection_prepare_propertiest!dbus_introspection_add_properties(terrors(t
FirewallErrortFirewallDConfigcBs
eZdZeZejjZe	dZ
e	dZe	dZe	dZ
e	dZe	dZe	dZe	dZe	d	Ze	d
Ze	dZe	dZe	d
Ze	dZe	dZe	dZe	dZe	dZe	dZe	dZedZedZ edZ!e"ej#ddddedvdZ%e"ej#ddddedvdZ&e'jj(j)ejje"ej#dd edvd!Z*ej+j,ej#d"d#d$Z-e'jj(j)ejj.e"ej/ddedvd%Z0e"ejj1de2j3edvd&Z4e"ejj1de2j3edvd'Z5ej+j,ejj1ed(Z6e"ejj1ddedvd)Z7e"ejj1ddedvd*Z8e"ejj1dddd+edvd,Z9e"ejj1dd-edvd.Z:e"ejj1ddedvd/Z;e"ejj1ddedvd0Z<e"ejj1dddd+edvd1Z=e"ejj1dd-edvd2Z>e"ejj1ddedvd3Z?e"ejj1ddedvd4Z@e"ejj1dddd+edvd5ZAe"ejj1dd-edvd6ZBe"ejj1dd7edvd8ZCe"ejj1dd7edvd9ZDe"ejj1dd7dd+edvd:ZEe"ejj1dd;edvd<ZFe"ejjGdd=edvd>ZHe"ejjGdd-edvd?ZIe"ejjGdddd@edvdAZJe"ejjGddeKj3dd@edvdBZLej+j,ejjGd"dedCZMe"ejjGdd=edvdDZNe"ejjGdd-edvdEZOe"ejjGdddd@edvdFZPe"ejjGddeQj3dd@edvdGZRej+j,ejjGd"dedHZSe"ejjGdd=edvdIZTe"ejjGdd-edvdJZUe"ejjGdddd@edvdKZVe"ejjGddeWj3dd@edvdLZXej+j,ejjGd"dedMZYe"ejjGdd=edvdNZZe"ejjGdd-edvdOZ[e"ejjGdddd@edvdPZ\e"ejjGddddedvdQZ]e"ejjGddddedvdRZ^e"ejjGdde_j3dd@edvdSZ`ej+j,ejjGd"dedTZae"ejjGdd=edvdUZbe"ejjGdd-edvdVZce"ejjGdddd@edvdWZde"ejjGddeej3dd@edvdXZfej+j,ejjGd"dedYZge"ejjhdeij3edvdZZje"ejjhdeij3edvd[Zkej+j,ejjhed\Zle"ejjhdd]edvd^Zme"ejjhdd]edvd_Zne"ejjhdd]dd+edvd`Zoe"ejjhdddd-edvdaZpe"ejjhddbddcedvddZqe"ejjhddeedvdfZre"ejjhddeedvdgZse"ejjhddedd+edvdhZte"ejjhdd]edvdiZue"ejjhdd]ddjedvdkZve"ejjhddbddledvdmZwe"ejjhddnedvdoZxe"ejjhddnedvdpZye"ejjhddndd+edvdqZze"ejjhddddredvdsZ{e"ejjhddtedvduZ|RS(wsFirewallD main classcOstt|j||||_|d|_|d|_|jt|jd|_	|j	j
tj|j	j
tj|j	j
tj
|j	j
tj|j	j
tj|j	j
tj|j	j
tj|j	j
tj|j	j
tj|j	j
tjtjjtjrx[ttjtjD]>}dtj|f}tjj|rG|j	j
|qGqGWn|j	jtj|j	jtj|j	jtjt|tjj idd6dd6dd6dd	6dd
6dd6dd6dd
6dS(Niiis%s/%st	readwritet
CleanupOnExitt
IPv6_rpfiltertLockdowntMinimalMarktIndividualCallst	LogDeniedtAutomaticHelperstAllowZoneDrifting(!tsuperRt__init__Rtbusnametpatht
_init_varsRt
watch_updatertwatchert
add_watch_dirtFIREWALLD_IPSETStETC_FIREWALLD_IPSETStFIREWALLD_ICMPTYPEStETC_FIREWALLD_ICMPTYPEStFIREWALLD_HELPERStETC_FIREWALLD_HELPERStFIREWALLD_SERVICEStETC_FIREWALLD_SERVICEStFIREWALLD_ZONEStETC_FIREWALLD_ZONEStostexiststsortedtlistdirtisdirtadd_watch_filetLOCKDOWN_WHITELISTtFIREWALLD_DIRECTtFIREWALLD_CONFRtdbustDBUS_INTERFACE_CONFIG(tselftconftargstkwargstfilenameR+((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyR)GsD	


	
cCs]g|_d|_g|_d|_g|_d|_g|_d|_g|_d|_	x0|j
jD]}|j|j
j
|qjWx0|j
jD]}|j|j
j|qWx0|j
jD]}|j|j
j|qWx0|j
jD]}|j|j
j|qWx0|j
jD]}|j|j
j|q6WdS(Ni(tipsetst	ipset_idxt	icmptypesticmptype_idxtservicestservice_idxtzonestzone_idxthelperst
helper_idxRt
get_ipsetst	_addIPSett	get_ipsett
get_icmptypest_addIcmpTypetget_icmptypetget_servicest_addServicetget_servicet	get_zonest_addZonetget_zonetget_helperst
_addHelpert
get_helper(REtipsetticmptypetservicetzonethelper((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyR,os(										cCsdS(N((RE((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyt__del__scCs&x5t|jdkr7|jj}|j~qWx5t|jdkro|jj}|j~q;Wx5t|jdkr|jj}|j~qsWx5t|jdkr|jj}|j~qWx5t|jdkr|jj}|j~qW|jdS(Ni(	tlenRJtpopt
unregisterRLRNRPRRR,(REtitem((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytreloads*




c	Cs|tjkr
|jtjj}tjdtjy|jjWn+tk
ru}tj	d||fdSX|jtjjj
}xDt|jD]0}||kr||||kr||=qqWt
|dkr|jtjj|gndS|jtjs.|jtjr|jdry|jj|\}}Wn+tk
r}tj	d||fdSX|dkr|j|q|dkr|j|q|dkr|j|qn|jtjs|jtjr|jdry|jj|\}}Wn+tk
rZ}tj	d	||fdSX|dkrw|j|q|dkr|j|q|dkr|j|qn|jtjs|jtjr=|jdry|jj|\}}Wn+tk
r.}tj	d
||fdSX|dkrK|j |q:|dkrg|j!|q:|dkr:|j"|q:q|jtjr|j#tjdj$d}t
|d
ksd|krdSt%j&j'|r|j(j)|s7|j(j*|q7q:|j(j)|r:|j(j+|q:qn^|jtj,sa|jtj-r|jdry|jj.|\}}Wn+tk
r}tj	d||fdSX|dkr|j/|q|dkr|j0|q|dkr|j1|qn|jtj2s5|jtj3r|jdry|jj4|\}}Wn+tk
r}tj	d||fdSX|dkr|j5|q|dkr|j6|q|dkr|j7|qn|tj8kr@y|jj9Wn+tk
r2}tj	d||fdSX|j:n[|tj;kry|jj<Wn+tk
r}tj	d||fdSX|j=ndS(Ns,config: Reloading firewalld config file '%s's+Failed to load firewalld.conf file '%s': %sis.xmls%Failed to load icmptype file '%s': %stnewtremovetupdates$Failed to load service file '%s': %ss!Failed to load zone file '%s': %stt/is"Failed to load ipset file '%s': %ss#Failed to load helper file '%s': %ss/Failed to load lockdown whitelist file '%s': %ss)Failed to load direct rules file '%s': %s(>RRBtGetAllRCRDRtdebug1tupdate_firewalld_conft	ExceptionterrortcopytlisttkeysRitPropertiesChangedt
startswithR2R3tendswithtupdate_icmptype_from_pathRXtremoveIcmpTypet_updateIcmpTypeR6R7tupdate_service_from_pathR[t
removeServicet_updateServiceR8R9tupdate_zone_from_pathR^t
removeZonet_updateZonetreplacetstripR:R+R>R.t	has_watchR/tremove_watchR0R1tupdate_ipset_from_pathRUtremoveIPSett_updateIPSetR4R5tupdate_helper_from_pathRatremoveHelpert
_updateHelperR@tupdate_lockdown_whitelisttLockdownWhitelistUpdatedRAt
update_directtUpdated(	REtnamet	old_propstmsgtpropstkeytwhattobjt_name((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyR-s	
	 
	
c	Csjt||j||j|jdtjj|jf}|jj||jd7_|j|j	|S(Ns%s/%di(
R	RRMR*RCtDBUS_PATH_CONFIG_ICMPTYPERLtappendt
IcmpTypeAddedR(RERtconfig_icmptype((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyRX&scCssxl|jD]a}|jj|jkr
|jj|jkr
|jj|jkr
||_|j|jq
q
WdS(N(RLRRR+RIR(RERRd((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyR2s	cCsd}xu|jD]j}|j}|j||kr||j|j|jj|j||_|j|jjqqWxP|jD]E}|j|kr|j	|j|j
|jj|~qqWdS(Ni(RPtgetSettingsRRoRtset_zone_configRRRLtRemovedRk(RERtindexRftsettingsRd((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyR;s
c	Csjt||j||j|jdtjj|jf}|jj||jd7_|j|j	|S(Ns%s/%di(
R
RROR*RCtDBUS_PATH_CONFIG_SERVICERNRtServiceAddedR(RERtconfig_service((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyR[MscCssxl|jD]a}|jj|jkr
|jj|jkr
|jj|jkr
||_|j|jq
q
WdS(N(RNRRR+RIR(RERRe((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyRXs	cCsd}xu|jD]j}|j}|j||kr||j|j|jj|j||_|j|jjqqWxP|jD]E}|j|kr|j	|j|j
|jj|~qqWdS(Ni(RPRRRoRRRRRNRRk(RERRRfRRe((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyRas
c	Csjt||j||j|jdtjj|jf}|jj||jd7_|j|j	|S(Ns%s/%di(
RRRQR*RCtDBUS_PATH_CONFIG_ZONERPRt	ZoneAddedR(RERtconfig_zone((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyR^sscCssxl|jD]a}|jj|jkr
|jj|jkr
|jj|jkr
||_|j|jq
q
WdS(N(RPRRR+RIR(RERRf((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyR~s
*	cCsWxP|jD]E}|j|kr
|j|j|j|jj|~q
q
WdS(N(RPRRRRkRo(RERRf((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyRs
c	Csjt||j||j|jdtjj|jf}|jj||jd7_|j|j	|S(Ns%s/%di(
RRRKR*RCtDBUS_PATH_CONFIG_IPSETRJRt
IPSetAddedR(RERtconfig_ipset((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyRUscCssxl|jD]a}|jj|jkr
|jj|jkr
|jj|jkr
||_|j|jq
q
WdS(N(RJRRR+RIR(RERRc((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyRs
*	cCsWxP|jD]E}|j|kr
|j|j|j|jj|~q
q
WdS(N(RJRRRRkRo(RERRc((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyRs
c	Csjt||j||j|jdtjj|jf}|jj||jd7_|j|j	|S(Ns%s/%di(
R
RRSR*RCtDBUS_PATH_CONFIG_HELPERRRRtHelperAddedR(RERt
config_helper((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyRascCssxl|jD]a}|jj|jkr
|jj|jkr
|jj|jkr
||_|j|jq
q
WdS(N(RRRRR+RIR(RERRg((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyRs
*	cCsWxP|jD]E}|j|kr
|j|j|j|jj|~q
q
WdS(N(RRRRRRkRo(RERRg((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyRs
cCs|jjr|dkr,tjddStj}t||}|jjd|r`dSt	||}|jjd|rdSt
|}|jjd|rdSt||}|jjd|rdStt
jdndS(Ns&Lockdown not possible, sender not set.tcontexttuidtusertcommandslockdown is enabled(Rtlockdown_enabledtNoneRRwRCt	SystemBusRtaccess_checkRRRRRt
ACCESS_DENIED(REtsendertbusRRRR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytaccessChecks$
c
CsB|d
kr%tjjd
|n|jjj|}|dkrn|dkratj}ntj|S|dkr|dkrtj	}nt
|}tj|S|dkr|dkrtjrdnd}ntj|S|dkr%|dkrtj
rdnd}ntj|S|dkrb|dkrUtjrLdnd}ntj|S|dkr|dkrtjrdnd}ntj|S|dkr|dkrtj}ntj|S|dkr|dkrtj}ntj|S|d	kr>|dkr1tjr(dnd}ntj|SdS(NtDefaultZoneR#R R"R!R$R%R&R'sDorg.freedesktop.DBus.Error.InvalidArgs: Property '%s' does not existtyestno(	RsMinimalMarks
CleanupOnExitsLockdowns
IPv6_rpfiltersIndividualCallss	LogDeniedsAutomaticHelperssAllowZoneDrifting(RCt
exceptionst
DBusExceptionRtget_firewalld_conftgetRt
FALLBACK_ZONEtStringtFALLBACK_MINIMAL_MARKtinttInt32tFALLBACK_CLEANUP_ON_EXITtFALLBACK_LOCKDOWNtFALLBACK_IPV6_RPFILTERtFALLBACK_INDIVIDUAL_CALLStFALLBACK_LOG_DENIEDtFALLBACK_AUTOMATIC_HELPERStFALLBACK_ALLOW_ZONE_DRIFTING(REtproptvalue((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyt
_get_propertysX		








cCsL|dkr"tj|j|S|dkrDtj|j|S|dkrftj|j|S|dkrtj|j|S|dkrtj|j|S|dkrtj|j|S|dkrtj|j|S|dkrtj|j|S|d	kr2tj|j|Stjjd
|dS(NRR#R R"R!R$R%R&R'sDorg.freedesktop.DBus.Error.InvalidArgs: Property '%s' does not exist(RCRRRRR(RER((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyt_get_dbus_propertys*	tin_signaturetsst
out_signaturetvcCst|t}t|t}tjd|||tjjkrP|j|S|tjjtjj	gkrtj
jd|ntj
jd||j|S(Nsconfig.Get('%s', '%s')sDorg.freedesktop.DBus.Error.InvalidArgs: Property '%s' does not existsJorg.freedesktop.DBus.Error.UnknownInterface: Interface '%s' does not exist(RtstrRRtRRCRDRtDBUS_INTERFACE_CONFIG_DIRECTtDBUS_INTERFACE_CONFIG_POLICIESRR(REtinterface_namet
property_nameR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytGet/s
	
	
tssa{sv}c	Cst|t}tjd|i}|tjjkryxvdddddddd	d
g	D]}|j|||<qYWn7|tjjtjj	gkrntj
jd|tj|dd
S(Nsconfig.GetAll('%s')RR#R R"R!R$R%R&R'sJorg.freedesktop.DBus.Error.UnknownInterface: Interface '%s' does not existt	signaturetsv(
RRRRtRRCRDRRRRRt
Dictionary(RERRtrettx((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyRsFs		
tssvc	Cst|t}t|t}t|}tjd||||j||tjjkr@|dkr'|dkryt|Wqt	k
rt
tj|qXnyt|}Wn#t
tj
d
||fnX|dkr$|jdkr$t
tj
d
||fq$n|dkra|tjkrat
tj
d
||fqan|dkr|tjkrt
tj
d
||fqn|d	kr|jdkrt
tj
d
||fqn|jjj|||jjj|j|i||6gqtjjd|nM|tjjtjjgkrwtjjd|ntjjd|dS(Nsconfig.Set('%s', '%s', '%s')R#R R"R!R$R%R&R's'%s' for %sRRttruetfalsesDorg.freedesktop.DBus.Error.InvalidArgs: Property '%s' does not existsJorg.freedesktop.DBus.Error.UnknownInterface: Interface '%s' does not exist(sMinimalMarks
CleanupOnExitsLockdowns
IPv6_rpfiltersIndividualCallss	LogDeniedsAutomaticHelperssAllowZoneDrifting(s
CleanupOnExitsLockdowns
IPv6_rpfiltersIndividualCalls(syessnoRR(syesRsnoR(RRRRtRRRCRDRt
ValueErrorRRtINVALID_MARKt
INVALID_VALUEtlowertLOG_DENIED_VALUEStAUTOMATIC_HELPERS_VALUESRtsettwriteR{RRRR(RERRt	new_valueR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytSet]sv

	
										
	
	Rssa{sv}ascCsAt|t}t|}t|}tjd|||dS(Ns*config.PropertiesChanged('%s', '%s', '%s')(RRRRt(RERtchanged_propertiestinvalidated_properties((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyR{s
	cCsJtjdtt|j|j|jj}t||t	j
jS(Nsconfig.Introspect()(Rtdebug2R(Rt
IntrospectR+R*tget_busRRRCRD(RERtdata((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyRs

cCs#tjd|jjjjS(Ns&config.policies.getLockdownWhitelist()(RRtRtget_policiestlockdown_whitelistt
export_config(RER((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytgetLockdownWhitelists
cCsVtjdt|}|jjjj||jjjj|jdS(Ns)config.policies.setLockdownWhitelist(...)(	RRtRRRRt
import_configRR(RERR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytsetLockdownWhitelists

cCstjddS(Ns*config.policies.LockdownWhitelistUpdated()(RRt(RE((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyRscCst|}tjd||j|t|j}||dkr`ttj|n|dj	||j
|dS(Ns1config.policies.addLockdownWhitelistCommand('%s')i(RRRtRRyRRRtALREADY_ENABLEDRR(RERRR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytaddLockdownWhitelistCommands
cCst|}tjd||j|t|j}||dkr`ttj|n|dj	||j
|dS(Ns4config.policies.removeLockdownWhitelistCommand('%s')i(RRRtRRyRRRtNOT_ENABLEDRoR(RERRR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytremoveLockdownWhitelistCommands	
tbcCs0t|}tjd|||jdkS(Ns3config.policies.queryLockdownWhitelistCommand('%s')i(RRRtR(RERR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytqueryLockdownWhitelistCommands	tascCstjd|jdS(Ns.config.policies.getLockdownWhitelistCommands()i(RRtR(RER((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytgetLockdownWhitelistCommandss
cCst|}tjd||j|t|j}||dkr`ttj|n|dj	||j
|dS(Ns1config.policies.addLockdownWhitelistContext('%s')i(RRRtRRyRRRRRR(RERRR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytaddLockdownWhitelistContexts
cCst|}tjd||j|t|j}||dkr`ttj|n|dj	||j
|dS(Ns4config.policies.removeLockdownWhitelistContext('%s')i(RRRtRRyRRRRRoR(RERRR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytremoveLockdownWhitelistContexts	
cCs0t|}tjd|||jdkS(Ns3config.policies.queryLockdownWhitelistContext('%s')i(RRRtR(RERR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytqueryLockdownWhitelistContexts	cCstjd|jdS(Ns.config.policies.getLockdownWhitelistContexts()i(RRtR(RER((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytgetLockdownWhitelistContexts"s
cCst|}tjd||j|t|j}||dkr`ttj|n|dj	||j
|dS(Ns.config.policies.addLockdownWhitelistUser('%s')i(RRRtRRyRRRRRR(RERRR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytaddLockdownWhitelistUser+s
cCst|}tjd||j|t|j}||dkr`ttj|n|dj	||j
|dS(Ns1config.policies.removeLockdownWhitelistUser('%s')i(RRRtRRyRRRRRoR(RERRR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytremoveLockdownWhitelistUser8s
cCs0t|}tjd|||jdkS(Ns0config.policies.queryLockdownWhitelistUser('%s')i(RRRtR(RERR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytqueryLockdownWhitelistUserEscCstjd|jdS(Ns+config.policies.getLockdownWhitelistUsers()i(RRtR(RER((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytgetLockdownWhitelistUsersMs
ticCst|}tjd||j|t|j}||dkr`ttj|n|dj	||j
|dS(Ns+config.policies.addLockdownWhitelistUid(%d)i(RRRtRRyRRRRRR(RERRR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytaddLockdownWhitelistUidVs
cCst|}tjd||j|t|j}||dkr`ttj|n|dj	||j
|dS(Ns.config.policies.removeLockdownWhitelistUid(%d)i(RRRtRRyRRRRRoR(RERRR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytremoveLockdownWhitelistUidcs
cCs0t|}tjd|||jdkS(Ns-config.policies.queryLockdownWhitelistUid(%d)i(RRRtR(RERR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytqueryLockdownWhitelistUidpstaicCstjd|jdS(Ns*config.policies.getLockdownWhitelistUids()i(RRtR(RER((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytgetLockdownWhitelistUidsxs
taocCstjd|jS(s"list ipsets objects paths
        sconfig.listIPSets()(RRtRJ(RER((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyt
listIPSetss
cCsDtjdg}x$|jD]}|j|jjqWt|S(sget ipset names
        sconfig.getIPSetNames()(RRtRJRRRR<(RERRJR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyt
getIPSetNamess

tocCs_t|t}tjd|x'|jD]}|jj|kr)|Sq)Wttj	|dS(s-object path of ipset with given name
        sconfig.getIPSetByName('%s')N(
RRRRtRJRRRRt
INVALID_IPSET(RERcRR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytgetIPSetByNamescCs`t|t}t|}tjd||j||jj||}|j|}|S(s/add ipset with given name and settings
        sconfig.addIPSet('%s')(RRRRtRRt	new_ipsetRU(RERcRRRR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytaddIPSets
cCs$t|t}tjd|dS(Nsconfig.IPSetAdded('%s')(RRRRt(RERc((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyRscCstjd|jS(s%list icmptypes objects paths
        sconfig.listIcmpTypes()(RRtRL(RER((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyt
listIcmpTypess
cCsDtjdg}x$|jD]}|j|jjqWt|S(sget icmptype names
        sconfig.getIcmpTypeNames()(RRtRLRRRR<(RERRLR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytgetIcmpTypeNamess

cCs_t|t}tjd|x'|jD]}|jj|kr)|Sq)Wttj	|dS(s0object path of icmptype with given name
        sconfig.getIcmpTypeByName('%s')N(
RRRRtRLRRRRtINVALID_ICMPTYPE(RERdRR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytgetIcmpTypeByNamescCs`t|t}t|}tjd||j||jj||}|j|}|S(s2add icmptype with given name and settings
        sconfig.addIcmpType('%s')(RRRRtRRtnew_icmptypeRX(RERdRRRR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytaddIcmpTypes
cCstjd|dS(Nsconfig.IcmpTypeAdded('%s')(RRt(RERd((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyRscCstjd|jS(s$list services objects paths
        sconfig.listServices()(RRtRN(RER((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytlistServicess
cCsDtjdg}x$|jD]}|j|jjqWt|S(sget service names
        sconfig.getServiceNames()(RRtRNRRRR<(RERRNR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytgetServiceNamess

cCs_t|t}tjd|x'|jD]}|jj|kr)|Sq)Wttj	|dS(s/object path of service with given name
        sconfig.getServiceByName('%s')N(
RRRRtRNRRRRtINVALID_SERVICE(REReRR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytgetServiceByNamescCs`t|t}t|}tjd||j||jj||}|j|}|S(s1add service with given name and settings
        sconfig.addService('%s')(RRRRtRRtnew_serviceR[(REReRRRR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyt
addServices
cCstjd|dS(Nsconfig.ServiceAdded('%s')(RRt(RERe((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyRscCstjd|jS(s!list zones objects paths
        sconfig.listZones()(RRtRP(RER((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyt	listZones&s
cCsDtjdg}x$|jD]}|j|jjqWt|S(sget zone names
        sconfig.getZoneNames()(RRtRPRRRR<(RERRPR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytgetZoneNames.s

cCs_t|t}tjd|x'|jD]}|jj|kr)|Sq)Wttj	|dS(s,object path of zone with given name
        sconfig.getZoneByName('%s')N(
RRRRtRPRRRRtINVALID_ZONE(RERfRR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyt
getZoneByName9scCst|t}tjd|g}x9|jD].}||jjkr/|j|jjq/q/Wt	|dkrdj
|d|t	|fS|r|dSdS(s4name of zone the given interface belongs to
        sconfig.getZoneOfInterface('%s')it sE  (ERROR: interface '%s' is in %s zone XML files, can be only in one)iRq(RRRRtRPRt
interfacesRRRitjoin(REtifaceRRR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytgetZoneOfInterfaceFscCst|t}tjd|g}x9|jD].}||jjkr/|j|jjq/q/Wt	|dkrdj
|d|t	|fS|r|dSdS(s1name of zone the given source belongs to
        sconfig.getZoneOfSource('%s')iR,sB  (ERROR: source '%s' is in %s zone XML files, can be only in one)iRq(RRRRtRPRtsourcesRRRiR.(REtsourceRRR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytgetZoneOfSourceZscCst|t}t|}tjd||j||ddkrmt|}t|d<t|}n|jj	||}|j
|}|S(s.add zone with given name and settings
        sconfig.addZone('%s')itdefault(RRRRtRRyRttupleRtnew_zoneR^(RERfRRt	_settingsRR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytaddZonens

cCstjd|dS(Nsconfig.ZoneAdded('%s')(RRt(RERf((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyRscCstjd|jS(s#list helpers objects paths
        sconfig.listHelpers()(RRtRR(RER((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytlistHelperss
cCsDtjdg}x$|jD]}|j|jjqWt|S(sget helper names
        sconfig.getHelperNames()(RRtRRRRRR<(RERRRR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytgetHelperNamess

cCs_t|t}tjd|x'|jD]}|jj|kr)|Sq)Wttj	|dS(s.object path of helper with given name
        sconfig.getHelperByName('%s')N(
RRRRtRRRRRRtINVALID_HELPER(RERgRR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytgetHelperByNamescCs`t|t}t|}tjd||j||jj||}|j|}|S(s0add helper with given name and settings
        sconfig.addHelper('%s')(RRRRtRRt
new_helperRa(RERgRRRR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyt	addHelpers
cCs$t|t}tjd|dS(Nsconfig.HelperAdded('%s')(RRRRt(RERg((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyRscCs tjd|jjjS(Nsconfig.direct.getSettings()(RRtRt
get_directR(RER((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyRs
cCsPtjdt|}|jjj||jjj|jdS(Nsconfig.direct.update()(RRtRRR?RRR(RERR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyRps

cCstjddS(Nsconfig.direct.Updated()(RRt(RE((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyRstssscCst|}t|}t|}tjd|||f|j|t|||f}t|j}||dkrttj	d|||fn|dj
||j|dS(Ns(config.direct.addChain('%s', '%s', '%s')is chain '%s' already is in '%s:%s'(RRRtRR5RyRRRRRRp(REtipvttabletchainRtidxR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytaddChains	
	cCst|}t|}t|}tjd|||f|j|t|||f}t|j}||dkrttj	d|||fn|dj
||j|dS(Ns+config.direct.removeChain('%s', '%s', '%s')ischain '%s' is not in '%s:%s'(RRRtRR5RyRRRRRoRp(RERARBRCRRDR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytremoveChains	
		cCsgt|}t|}t|}tjd|||ft|||f}||jdkS(Ns*config.direct.queryChain('%s', '%s', '%s')i(RRRtR5R(RERARBRCRRD((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyt
queryChains	cCst|}t|}tjd||fg}xL|jdD]:}|d|krF|d|krF|j|dqFqFW|S(Ns#config.direct.getChains('%s', '%s')iii(RRRtRR(RERARBRRRD((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyt	getChainss Rqsa(sss)cCstjd|jdS(Nsconfig.direct.getAllChains()i(RRtR(RER((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytgetAllChainss
tsssiasc	Cst|}t|}t|}t|}t|}tjd||||dj|f|j||||||f}t|j}||dkrttj	d||||fn|dj
||jt|dS(Ns1config.direct.addRule('%s', '%s', '%s', %d, '%s')s','is"rule '%s' already is in '%s:%s:%s'(
RRRtR.RRyRRRRRRpR5(	RERARBRCtpriorityRGRRDR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytaddRule%s 	 
	c	Cst|}t|}t|}t|}t|}tjd||||dj|f|j||||||f}t|j}||dkrttj	d||||fn|dj
||jt|dS(Ns4config.direct.removeRule('%s', '%s', '%s', %d, '%s')s','isrule '%s' is not in '%s:%s:%s'(
RRRtR.RRyRRRRRoRpR5(	RERARBRCRKRGRRDR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyt
removeRule:s 	 
	cCst|}t|}t|}t|}t|}tjd||||dj|f|||||f}||jdkS(Ns3config.direct.queryRule('%s', '%s', '%s', %d, '%s')s','i(RRRtR.R(RERARBRCRKRGRRD((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyt	queryRuleOs	 cCst|}t|}t|}tjd|||f|j|t|j}xQ|dD]D}|||f|d|d|dfkri|dj|qiqiW|jt|dS(Ns+config.direct.removeRules('%s', '%s', '%s')iii(	RRRtRRyRRoRpR5(RERARBRCRRtrule((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytremoveRules]s	
*sa(ias)cCst|}t|}t|}tjd|||fg}xf|jdD]T}|d|krU|d|krU|d|krU|j|d|dfqUqUW|S(Ns(config.direct.getRules('%s', '%s', '%s')iiiii(RRRtRR(RERARBRCRRRD((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytgetRulesms	0"s	a(sssias)cCstjd|jdS(Nsconfig.direct.getAllRules()i(RRtR(RER((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytgetAllRules|s
tsascCst|}t|}tjd|dj|f|j|||f}t|j}||dkrttj	d||fn|dj
||j|dS(Ns(config.direct.addPassthrough('%s', '%s')s','ispassthrough '%s', '%s'(RRRtR.RRyRRRRRRp(RERARGRRDR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytaddPassthroughs	
	cCst|}t|}tjd|dj|f|j|||f}t|j}||dkrttj	d||fn|dj
||j|dS(Ns+config.direct.removePassthrough('%s', '%s')s','ispassthrough '%s', '%s'(RRRtR.RRyRRRRRoRp(RERARGRRDR((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytremovePassthroughs	
	cCsXt|}t|}tjd|dj|f||f}||jdkS(Ns*config.direct.queryPassthrough('%s', '%s')s','i(RRRtR.R(RERARGRRD((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytqueryPassthroughs	taascCsft|}tjd|g}x<|jdD]*}|d|kr4|j|dq4q4W|S(Ns#config.direct.getPassthroughs('%s')iii(RRRtRR(RERARRRD((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytgetPassthroughsssa(sas)cCstjd|jdS(Ns"config.direct.getAllPassthroughs()i(RRtR(RER((s:/usr/lib/python2.7/site-packages/firewall/server/config.pytgetAllPassthroughss
N(}t__name__t
__module__t__doc__tTruet
persistentRRCtPK_ACTION_CONFIGtdefault_polkit_auth_requiredRR)R,RhRmR-RXRRR[RRR^RRRURRRaRRRRRRRtPROPERTIES_IFACERRRstsliptpolkittrequire_authRRetsignalR{tPK_ACTION_INFOtINTROSPECTABLE_IFACERRRtDBUS_SIGNATURERRRRRRRRRRR	R
RRR
RRRRRDRRRRRRRRRRR!RR"R#R%RR'RR(R)R+R0R3RR8RR9R:R<RR>RRRRRpRRERFRGRHRIRLRMRNRPRQRRRTRURVRXRY(((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyR?s8(			2A$			





	

	

	

	

	

			

	(<t
gi.repositoryRtsystmodulesR:RCtdbus.servicet	slip.dbusRbtslip.dbus.servicetfirewallRtfirewall.core.baseRtfirewall.core.watcherRtfirewall.core.loggerRtfirewall.server.decoratorsRRRtfirewall.server.config_icmptypeR	tfirewall.server.config_serviceR
tfirewall.server.config_zoneRtfirewall.server.config_ipsetRtfirewall.server.config_helperR
tfirewall.core.io.zoneRtfirewall.core.io.serviceRtfirewall.core.io.icmptypeRtfirewall.core.io.ipsetRtfirewall.core.io.helperRt#firewall.core.io.lockdown_whitelistRtfirewall.core.io.directRtfirewall.dbus_utilsRRRRRRRRtfirewall.errorsRRetObjectR(((s:/usr/lib/python2.7/site-packages/firewall/server/config.pyt<module>s8
4
Back to Directory File Manager