????

Your IP : 3.137.169.218


Current Path : /usr/lib/python3.9/site-packages/firewall/server/__pycache__/
Upload File :
Current File : //usr/lib/python3.9/site-packages/firewall/server/__pycache__/firewalld.cpython-39.opt-1.pyc

a

���gG��@sBdgZddlmZddlZddlZddlZddlmZddlm	Z	ddl
mZddlm
Z
ddlmZdd	lmZmZdd
lmZmZmZmZmZmZddlmZddlmZmZmZm Z m!Z!m"Z"m#Z#m$Z$dd
l%m&Z&ddl'm(Z(ddl)m*Z*ddl+m,Z,ddl-m.Z.m/Z/ddl0m1Z1ddlm2Z2ddl3m4Z4Gdd�de�Z5dS)�	FirewallD�)�GLibN)�config)�Firewall)�	Rich_Rule)�log)�FirewallClientZoneSettings)�FirewallDBusException�DbusServiceObject)�dbus_handle_exceptions�dbus_service_method�handle_exceptions�dbus_service_method_deprecated�dbus_service_signal_deprecated�dbus_polkit_require_auth)�FirewallDConfig)�dbus_to_python�command_of_sender�context_of_sender�
uid_of_sender�user_of_uid�%dbus_introspection_prepare_properties�!dbus_introspection_add_properties�!dbus_introspection_add_deprecated)�check_on_disk_config)�IPSet)�IcmpType)�Helper)�nm_get_connection_of_interface�nm_set_zone_of_connection)�ifcfg_set_zone_of_interface)�errors)�
FirewallErrorcs!eZdZdZdZejjZe	�fdd��Z
dd�Ze	dd��Ze	d	d
��Z
edd��Zed
d��Zedd��Zedd��Zedd��Zeejddd�e�d�dd���Zeejddd�e�d�dd���Zeejj�eejdd �e�d�d!d"����Zejjejd#d$�d%d&��Zeejj�eejdd'�e�d��fd(d)�	���Zeejj�eejj d*d*d�e�d�d+d,����Z!eejj�eejj d*d*d�e�d�d-d.����Z"ej�ejj �ed/d0���Z#eejj�eejj d*d*d��d�d1d2���Z$eejj�eejj d*d*d�e�d�d3d4����Z%eejj�eejj d*d*d�e�d�d5d6����Z&eejj'�eejj(d*d*d�e�d�d7d8����Z)eejj'�eejj(d*d*d�e�d�d9d:����Z*eejj+�eejj(d*d;d�e�d�d<d=����Z,ejjejj(d*d$�ed>d?���Z-ejjejj(d*d$�ed@dA���Z.eejj'�eejj(dd*d�e�d�dBdC����Z/eejj'�eejj(dd*d�e�d�dDdE����Z0eejj+�eejj(dd;d�e�d�dFdG����Z1eejj+�eejj(d*dHd�e�d�dIdJ����Z2ejjejj(dd$�edKdL���Z3ejjejj(dd$�edMdN���Z4eejj'�eejj(dOd*d�e�d�dPdQ����Z5eejj'�eejj(dOd*d�e�d�dRdS����Z6eejj+�eejj(dOd;d�e�d�dTdU����Z7eejj+�eejj(d*dVd�e�d�dWdX����Z8ejjejj(dOd$�edYdZ���Z9ejjejj(dOd$�ed[d\���Z:eejj'�eejj(dd*d�e�d�d]d^����Z;eejj'�eejj(dd*d�e�d�d_d`����Z<eejj+�eejj(dd;d�e�d�dadb����Z=eejj+�eejj(d*dHd�e�d�dcdd����Z>ejjejj(dd$�ededf���Z?ejjejj(dd$�edgdh���Z@eejj'�eejj(dd*d�e�d�didj����ZAeejj'�eejj(dd*d�e�d�dkdl����ZBeejj+�eejj(dd;d�e�d�dmdn����ZCeejj+�eejj(d*dHd�e�d�dodp����ZDejjejj(dd$�edqdr���ZEejjejj(dd$�edsdt���ZFeejj�eejj d*d*d�e�d�dudv����ZGeejj�eejj d*d*d�e�d�dwdx����ZHeejj�eejj d*d;d�e�d�dydz����ZIejjejj d*d$�ed{d|���ZJejjejj d*d$�ed}d~���ZKeejjL�eejj ddd�e�d�d�d�����ZMeejjL�eejjNddd�e�d�d�d�����ZOeejjL�eejjNd�d �e�d�d�d�����ZPejjejjNd�d$�ed�d����ZQeejjL�eejjRddd�e�d�d�d�����ZSeejjL�eejjRd�d �e�d�d�d�����ZTejjejjRd�d$�ed�d����ZUeejj�eejj d*dHd�e�d�d�d�����ZVeejjL�eejj dd�d�e�d�d�d�����ZWeejjL�eejj ddd�e�d�d�d�����ZXeejj�eejj d*dHd�e�d�d�d�����ZYeejjL�eejj deZj[d�e�d�d�d�����Z\eejjL�eejj d*dd�e�d�d�d�����Z]eejj�eejj dd*d�e�d�d�d�����Z^ejjejj dd$�ed�d����Z_eejjL�eejj d*dd�e�d�d�d�����Z`eejj�eejj dd*d�e�d�d�d�����Zaejjejj dd$�ed�d����Zbeejj�eejj d*dd�e�d�d�d�����Zceejj�eejj dd*d�e�d�d�d�����Zdejjejj dd$�ed�d����Zeeejj�eejjRd*dHd�e�d�d�d�����Zfeejj�eejjRd*d�d�e�d�d�d�����Zgeejj�eejjNd*dHd�e�d�d�d�����Zheejj�eejjNd*d�d�e�d�d�d�����Zieejj�eejjNddd�e�d�d�d�����Zjeejj�eejjNddd�e�d�d�d�����ZkeejjL�eejjNdd;d�e�d�d�d�����Zleejj�eejjNddd�e�d�d�d�����Zmeejj�eejjNddd�e�d�d�d�����Zneejj�eejjNddd�e�d�d�d�����Zoeejj�eejjNddd�e�d�d�d„���ZpeejjL�eejjNdd;d�e�d�d�dĄ���ZqeejjL�eejjNddHd�e�d�d�dƄ���ZrejjejjNdd$�ed�dȄ��ZsejjejjNdd$�ed�dʄ��ZtejjejjNdd$�ed�d̄��ZuejjejjNdd$�ed�d΄��Zveejj�eejjNddd�e�d�d�dЄ���Zweejj�eejjNddd�e�d�d�d҄���Zxeejj�eejjNddd�e�d�d�dԄ���ZyeejjL�eejjNdd;d�e�d�d�dք���ZzeejjL�eejjNddHd�e�d�d�d؄���Z{ejjejjNdd$�ed�dڄ��Z|ejjejjNdd$�ed�d܄��Z}ejjejjNdd$�ed�dބ��Z~ed�d��Zeejj�eejjNd�dd�e�d�d�d����Z�eejj�eejjNddd�e�d�d�d����Z�eejjL�eejjNdd;d�e�d�d�d����Z�eejjL�eejjNddHd�e�d�d�d����Z�ejjejjNd�d$�ed�d���Z�ejjejjNdd$�ed�d���Z�ed�d��Z�eejj�eejjNd�dd�e�d�d�d����Z�eejj�eejjNddd�e�d�d�d����Z�eejjL�eejjNdd;d�e�d�d�d�����Z�eejjL�eejjNddHd�e�d�d�d�����Z�ejjejjNd�d$�ed�d����Z�ejjejjNdd$�ed�d����Z�ed�d���Z�eejj�eejjNd�dd�e�d�d��d����Z�eejj�eejjN�ddd�e�d��d�d����Z�eejjL�eejjN�dd;d�e�d��d�d����Z�eejjL�eejjNd�dd�e�d��d�d����Z�ejjejjNd�d$�e�d��d
�d���Z�ejjejjN�dd$�e�d�d
���Z�e�d�d��Z�eejj�eejjNd�dd�e�d��d�d����Z�eejj�eejjNddd�e�d��d�d����Z�eejjL�eejjNdd;d�e�d��d�d����Z�eejjL�eejjNddHd�e�d�d�d����Z�ejjejjNd�d$�e�d�d�d���Z�ejjejjNdd$�e�d�d���Z�e�d�d��Z�eejj�eejjNd�dd�e�d�d�d����Z�eejj�eejjN�ddd�e�d�d �d!����Z�eejjL�eejjN�dd;d�e�d�d"�d#����Z�eejjL�eejjNd�dd�e�d�d$�d%����Z�ejjejjNd�d$�e�d�d&�d'���Z�ejjejjN�dd$�e�d(�d)���Z�e�d*�d+��Z�eejj�eejjN�d,dd�e�d�d-�d.����Z�eejj�eejjNddd�e�d�d/�d0����Z�eejjL�eejjNdd;d�e�d	�d1�d2����Z�ejjejjN�d,d$�e�d
�d3�d4���Z�ejjejjNdd$�e�d5�d6���Z�e�d7�d8��Z�eejj�eejjN�d9dd�e�d�d:�d;����Z�eejj�eejjN�d<dd�e�d�d=�d>����Z�eejjL�eejjN�d<d;d�e�d
�d?�d@����Z�eejjL�eejjNd�dd�e�d�dA�dB����Z�ejjejjN�d9d$�e�d�dC�dD���Z�ejjejjN�d<d$�e�dE�dF���Z�e�dG�dH��Z�eejj�eejjNd�dd�e�d�dI�dJ����Z�eejj�eejjNddd�e�d�dK�dL����Z�eejjL�eejjNdd;d�e�d�dM�dN����Z�eejjL�eejjNddHd�e�d�dO�dP����Z�ejjejjNd�d$�e�d�dQ�dR���Z�ejjejjNdd$�e�dS�dT���Z�eejj�eejjNddd�e�d�dU�dV����Z�eejj�eejjNddd�e�d�dW�dX����Z�eejjL�eejjNdd;d�e�d�dY�dZ����Z�ejjejjNdd$�e�d[�d\���Z�ejjejjNdd$�e�d]�d^���Z�eejj��e�ejj��eejj��dd*d�e�d�d_�d`�����Z�eejj��e�ejj��eejj��dd*d�e�d�da�db�����Z�eejj��e�ejj��eejj��dd;d�e�d�dc�dd�����Z�eejj��e�ejj��eejj�ddHd�e�d�de�df�����Z�eejj��e�ejj��eejj�d*�dgd�e�d�dh�di�����Z�e�ejj��ejjejj��dd$�e�dj�dk����Z�e�ejj��ejjejj��dd$�e�dl�dm����Z�eejj��e�ejj��eejj��dnd*d�e�d�do�dp�����Z�eejj��e�ejj��eejj��dnd*d�e�d�dq�dr�����Z�eejj��e�ejj��eejj��dd*d�e�d�ds�dt�����Z�eejj��e�ejj��eejj��dnd;d�e�d �du�dv�����Z�eejj��e�ejj��eejj��d�dwd�e�d!�dx�dy�����Z�eejj��e�ejj��eejj�d*�dzd�e�d"�d{�d|�����Z�e�ejj��ejjejj��dnd$�e�d}�d~����Z�e�ejj��ejjejj��dnd$�e�d�d�����Z�eejj��e�ejj��eejj��d�dd�e�d#�d��d������Z�eejj��e�ejj��eejj��d�d*d�e�d$�d��d������Z�eejj��e�ejj��eejj��d�d*d�e�d%�d��d������Z�eejj��e�ejj��eejj��d�d;d�e�d&�d��d������Z�eejj��e�ejj��eejj�d*�d�d�e�d'�d��d������Z�eejj��e�ejj��eejj�d*d*d�e�d(�d��d������Z�eejj��e�ejj��eejj�d�dd�e�d)�d��d������Z�e�ejj��ejjejj��d�d$�e�d��d�����Z�e�ejj��ejjejj��d�d$�e�d��d�����Z�eejj؃eejj d*d*d�e�d*�d��d�����Z�eejj�eejj�dd;d�e�d+�d��d�����Z�eejj�eejj�d*dHd�e�d,�d��d�����Z�eejjL�eejj�de�j[d�e�d-�d��d�����Z�eejj�eejj�dd*d�e�d.�d��d�����Z�eejj�eejj�dd*d�e�d/�d��d�����Z�eejj�eejj�dd;d�e�d0�d��d�����Z�eejj�eejj�ddHd�e�d1�d��d�����Z�eejj�eejjڐd�d �e�d2�d��d�����Z�ejjejj�dd$�e�d��d����Z�ejjejj�dd$�e�d��d����Z�eejj�eejj d*dHd�e�d3�d��d�����Z�eejjL�eejj de�j[d�e�d4�d��d�����Z�Z�S(5rzFirewallD main classTcsdtt|�j|i|��t�|_|d|_|d|_|��t|t	j
j�t|jj	|jt	j
j
�|_	dS)Nr�)�superr�__init__r�fw�busname�path�startrr�dbus�DBUS_INTERFACErZDBUS_PATH_CONFIG)�self�args�kwargs��	__class__��=/usr/lib/python3.9/site-packages/firewall/server/firewalld.pyr%Gs

�zFirewallD.__init__cCs|��dS�N)�stop�r,r1r1r2�__del__RszFirewallD.__del__cCst�d�i|_|j��S)Nzstart())r�debug1�	_timeoutsr&r)r5r1r1r2r)Us
zFirewallD.startcCst�d�|j��S)Nzstop())rr7r&r4r5r1r1r2r4]s
zFirewallD.stopcCs�|jj��r�|dur"t�d�dSt��}t||�}|jj�d|�rHdSt	||�}|jj�d|�rfdSt
|�}|jj�d|�r�dSt||�}|jj�d|�r�dStt
jd��dS)Nz&Lockdown not possible, sender not set.�context�uid�user�commandzlockdown is enabled)r&�policies�query_lockdownr�errorr*Z	SystemBusrZaccess_checkrrrr"r!Z
ACCESS_DENIED)r,�senderZbusr9r:r;r<r1r1r2�accessCheckfs$



zFirewallD.accessCheckcCs&||jvri|j|<||j||<dSr3)r8)r,�zone�x�tagr1r1r2�
addTimeout}s

zFirewallD.addTimeoutcCs<||jvr8||j|vr8t�|j||�|j||=dSr3)r8r�
source_remove�r,rBrCr1r1r2�
removeTimeout�szFirewallD.removeTimeoutcCsL|jD]6}|j|D]}t�|j||�q|j|��q|j��dSr3)r8rrF�clearrGr1r1r2�cleanup_timeouts�s

zFirewallD.cleanup_timeoutscCsr|dkrt�tj�S|dkr6t�dtjjtjjf�S|dkrNt�|j���S|dkrht�|j�	d��S|dkr�t�
|jjd�S|d	kr�t�|j�	d
��S|dkr�t�|jjdkr�d
nd�S|dkr�t�
|jj
d�S|dk�r�t�|jj�S|dk�rt�|jj�S|dk�rt�
|jjd�S|dk�r2t�d
�S|dk�rHt�id�S|dk�r^t�id�Stj�d|��dS)N�version�interface_versionz%d.%d�state�IPv4�ipv4�
IPv4ICMPTypes�s�IPv6�ipv6�
IPv6_rpfilter�noFT�
IPv6ICMPTypes�BRIDGEr�
IPSetTypes�nf_conntrack_helper_setting�nf_conntrack_helpers�sas�nf_nat_helpers�Dorg.freedesktop.DBus.Error.InvalidArgs: Property '%s' does not exist)r*�StringrZVERSIONZDBUS_INTERFACE_VERSIONZDBUS_INTERFACE_REVISIONr&Z	get_stateZBooleanZis_ipv_enabledZArrayZipv4_supported_icmp_typesZ_ipv6_rpfilterZipv6_supported_icmp_typesZebtables_enabledZ
ipset_enabledZipset_supported_types�
Dictionary�
exceptions�
DBusException)r,Zpropr1r1r2�
_get_property�sF�






��zFirewallD._get_property�ss�v)�in_signature�
out_signatureNcCs~t|t�}t|t�}t�d||�|tjjkr8|�|�S|tjjtjj	tjj
tjjfvrjtj�
d|��ntj�
d|��dS)NzGet('%s', '%s')r]�Jorg.freedesktop.DBus.Error.UnknownInterface: Interface '%s' does not exist)r�strrr7rr*r+rb�DBUS_INTERFACE_ZONE�DBUS_INTERFACE_DIRECT�DBUS_INTERFACE_POLICIES�DBUS_INTERFACE_IPSETr`ra)r,�interface_name�
property_namer@r1r1r2�Get�s(


�����z
FirewallD.GetrQza{sv}cCs�t|t�}t�d|�i}|tjjkr@dD]}|�|�||<q*n2|tjjtjj	tjj
tjjfvrbntj�
d|��tj|dd�S)NzGetAll('%s')�rKrLrMrNrRrTrWrrXrYrZr\rPrVrg�sv�Z	signature)rrhrr7rr*r+rbrirjrkrlr`rar_)r,rmr@�retrCr1r1r2�GetAll�s$
���zFirewallD.GetAllZssv)recCs�t|t�}t|t�}t|�}t�d|||�|�|�|tjjkrn|dvr\tj�	d|��q�tj�	d|��nB|tjj
tjjtjjtjj
fvr�tj�	d|��ntj�	d|��dS)NzSet('%s', '%s', '%s')rpzGorg.freedesktop.DBus.Error.PropertyReadOnly: Property '%s' is read-onlyr]rg)rrhrr7rArr*r+r`rarirjrkrl)r,rmrnZ	new_valuer@r1r1r2�Set�sD


�
���������z
FirewallD.Setzsa{sv}asrrcCs.t|t�}t|�}t|�}t�d|||�dS)Nz#PropertiesChanged('%s', '%s', '%s'))rrhrr7)r,rmZchanged_propertiesZinvalidated_propertiesr1r1r2�PropertiesChangeds
�zFirewallD.PropertiesChanged)rfcs`t�d�tt|��|j|j���}t||t	j
j�}t	j
jfD]}t
|||t�jt�j�}q>|S)NzIntrospect())rZdebug2r$r�
Introspectr(r'Zget_busrrr*r+rjrrZ
deprecatedr)r,r@�data�	interfacer/r1r2rw$s
���zFirewallD.Introspect�cCs*t�d�|j��|j��|��dS)z#Reload the firewall rules.
        zreload()N�rr7r&�reloadr�Reloaded�r,r@r1r1r2r|:s


zFirewallD.reloadcCs,t�d�|j�d�|j��|��dS)z�Completely reload the firewall.

        Completely reload the firewall: Stops firewall, unloads modules and
        starts the firewall again.
        zcompleteReload()TNr{r~r1r1r2�completeReloadIs


zFirewallD.completeReloadcCst�d�dS)Nz
Reloaded()�rr7r5r1r1r2r}YszFirewallD.ReloadedcCs"t�d�|jj��|��dS)zbreset to firewall's builtin defaults.
        Reloads firewalld to apply changes properly
        zfirewalld.reset_to_defaults()N)rr7r&rZreset_defaultsr|r~r1r1r2�resetToDefaults^s
zFirewallD.resetToDefaultscCst�d�t|j�dS)z&Check permanent configuration
        zcheckPermanentConfig()N)rr7rr&r~r1r1r2�checkPermanentConfigis
zFirewallD.checkPermanentConfigcCs�t�d�|jjdkr"ttjd��d}|j��}|jj	�
�D]�}|�|�}zj||vr�|j�|�}|�
�|kr�t�d|�|�|�q�t�d|�nt�d|�|j�||�Wq<ty�}z"t�d||f�d	}WYd
}~q<d
}~00q<|j��}|jj��D]�}|�|�}zn||v�rf|j�|�}|�
�|k�rVt�d|�|�|�nt�d|�nt�d
|�|j�||�Wn<t�y�}z"t�d||f�d	}WYd
}~n
d
}~00�q|j��}|jj��D]�}zx|�|�}||v�r:|j�|�}|�
�|k�r*t�d|�|�|�nt�d|�nt�d|�|j�||�Wn<t�y�}z"t�d||f�d	}WYd
}~n
d
}~00�q�|j��}|jj� �D�]h}|�!|�}t"t#�$|��}d}	|�%�D]4}
|
|jj&v�r�t�d||
f�|�'|
�d	}	�q�|�%�D]H}
z,t(|
�}|�rFt)||��rF|�'|
�d	}	Wnt�y\Yn0�q|	�rp|�*�}|�%�D]}
t+||
��qxzP||v�r�|j�,|�}t�d|�|�-|�nt�d|�|j�.||�Wn<t�y}z"t�d||f�d	}WYd
}~n
d
}~00�q�|j�/�}|jj0�1�D]�}|�2|�}zB||v�rd|j�3|�}|�|�nt�d|�|j�4||�Wn<t�y�}z"t�d||f�d	}WYd
}~n
d
}~00�q2|j�5�}|jj6�7�D]�}|�8|�}zn||v�r8|j�9|�}|�
�|k�r(t�d|�|�|�nt�d|�nt�d|�|j�:||�Wn<t�y�}z"t�d||f�d	}WYd
}~n
d
}~00�q�|jj;�<�|jj;�=�|jj;�>�f}z6|j�
�|k�r�t�d�|j�|�n
t�d�Wn8t�y(}zt�d|�d	}WYd
}~n
d
}~00|jj?j@�A�}z6|j�
�|k�rbt�d �|j�B|�n
t�d!�Wn8t�y�}zt�d"|�d	}WYd
}~n
d
}~00|�r�ttjC��d
S)#z-Make runtime configuration permanent
        zcopyRuntimeToPermanent()ZFAILEDz�Saving runtime to permanent is not allowed while firewalld is in FAILED state. The permanent configuration must be fixed and then firewalld restarted. Try `firewall-offline-cmd --check-config`.FzCopying service '%s' settingsz$Service '%s' is identical, ignoring.zCreating service '%s'z/Runtime To Permanent failed on service '%s': %sTNzCopying icmptype '%s' settingsz%IcmpType '%s' is identical, ignoring.zCreating icmptype '%s'z0Runtime To Permanent failed on icmptype '%s': %szCopying ipset '%s' settingsz"IPSet '%s' is identical, ignoring.zCreating ipset '%s'z-Runtime To Permanent failed on ipset '%s': %szEZone '%s': interface binding for '%s' has been added by NM, ignoring.zCopying zone '%s' settingszCreating zone '%s'z,Runtime To Permanent failed on zone '%s': %szCreating policy '%s'z.Runtime To Permanent failed on policy '%s': %szCopying helper '%s' settingsz#Helper '%s' is identical, ignoring.zCreating helper '%s'z.Runtime To Permanent failed on helper '%s': %szCopying direct configurationz,Direct configuration is identical, ignoring.z7Runtime To Permanent failed on direct configuration: %szCopying policies configurationz.Policies configuration is identical, ignoring.z9Runtime To Permanent failed on policies configuration: %s)Drr7r&�_stater"r!ZRUNNING_BUT_FAILEDrZgetServiceNames�service�get_services�getServiceSettingsZgetServiceByNameZgetSettings�update�
addService�	Exception�warningZgetIcmpTypeNames�icmptype�
get_icmptypes�getIcmpTypeSettingsZgetIcmpTypeByNameZaddIcmpTypeZ
getIPSetNames�ipset�
get_ipsets�getIPSetSettingsZgetIPSetByNameZaddIPSetZgetZoneNamesrB�	get_zones�getZoneSettings2r�copy�deepcopy�
getInterfacesZ_nm_assigned_interfaces�removeInterfacerrZgetSettingsDictr Z
getZoneByNameZupdate2ZaddZone2ZgetPolicyNames�policy�"get_policies_not_derived_from_zone�getPolicySettingsZgetPolicyByNameZ	addPolicyZgetHelperNames�helper�get_helpers�getHelperSettingsZgetHelperByNameZ	addHelper�direct�get_all_chains�
get_all_rules�get_all_passthroughsr=�lockdown_whitelist�
export_configZsetLockdownWhitelistZRT_TO_PERM_FAILED)r,r@r?Zconfig_names�nameZconfZconf_obj�e�settingsZchangedryZ
connectionr1r1r2�runtimeToPermanentusF
�

��


��


��





��


��


��


�
�
��zFirewallD.runtimeToPermanentcCs,t�d�|�|�|jj��|��dS)z!Enable lockdown policies
        zpolicies.enableLockdown()N)rr7rAr&r=Zenable_lockdown�LockdownEnabledr~r1r1r2�enableLockdownGs

zFirewallD.enableLockdowncCs,t�d�|�|�|jj��|��dS)z"Disable lockdown policies
        zpolicies.disableLockdown()N)rr7rAr&r=Zdisable_lockdown�LockdownDisabledr~r1r1r2�disableLockdownSs

zFirewallD.disableLockdown�bcCst�d�|jj��S)z,Returns True if lockdown is enabled
        zpolicies.queryLockdown())rr7r&r=r>r~r1r1r2�
queryLockdown_s
zFirewallD.queryLockdowncCst�d�dS)NzLockdownEnabled()r�r5r1r1r2r�jszFirewallD.LockdownEnabledcCst�d�dS)NzLockdownDisabled()r�r5r1r1r2r�oszFirewallD.LockdownDisabledcCs@t|t�}t�d|�|�|�|jjj�|�|�	|�dS)�Add lockdown command
        z*policies.addLockdownWhitelistCommand('%s')N)
rrhrr7rAr&r=r�Zadd_command�LockdownWhitelistCommandAdded�r,r<r@r1r1r2�addLockdownWhitelistCommandxs


z%FirewallD.addLockdownWhitelistCommandcCs@t|t�}t�d|�|�|�|jjj�|�|�	|�dS)z Remove lockdown command
        z-policies.removeLockdownWhitelistCommand('%s')N)
rrhrr7rAr&r=r�Zremove_command�LockdownWhitelistCommandRemovedr�r1r1r2�removeLockdownWhitelistCommand�s


z(FirewallD.removeLockdownWhitelistCommandcCs(t|t�}t�d|�|jjj�|�S)zQuery lockdown command
        z,policies.queryLockdownWhitelistCommand('%s'))rrhrr7r&r=r�Zhas_commandr�r1r1r2�queryLockdownWhitelistCommand�s
z'FirewallD.queryLockdownWhitelistCommand�ascCst�d�|jjj��S)r�z'policies.getLockdownWhitelistCommands())rr7r&r=r�Zget_commandsr~r1r1r2�getLockdownWhitelistCommands�s
z&FirewallD.getLockdownWhitelistCommandscCst�d|�dS)Nz#LockdownWhitelistCommandAdded('%s')r��r,r<r1r1r2r��sz'FirewallD.LockdownWhitelistCommandAddedcCst�d|�dS)Nz%LockdownWhitelistCommandRemoved('%s')r�r�r1r1r2r��sz)FirewallD.LockdownWhitelistCommandRemoved�icCs@t|t�}t�d|�|�|�|jjj�|�|�	|�dS)�Add lockdown uid
        z&policies.addLockdownWhitelistUid('%s')N)
r�intrr7rAr&r=r�Zadd_uid�LockdownWhitelistUidAdded�r,r:r@r1r1r2�addLockdownWhitelistUid�s


z!FirewallD.addLockdownWhitelistUidcCs@t|t�}t�d|�|�|�|jjj�|�|�	|�dS)zRemove lockdown uid
        z)policies.removeLockdownWhitelistUid('%s')N)
rr�rr7rAr&r=r�Z
remove_uid�LockdownWhitelistUidRemovedr�r1r1r2�removeLockdownWhitelistUid�s


z$FirewallD.removeLockdownWhitelistUidcCs(t|t�}t�d|�|jjj�|�S)zQuery lockdown uid
        z(policies.queryLockdownWhitelistUid('%s'))rr�rr7r&r=r�Zhas_uidr�r1r1r2�queryLockdownWhitelistUid�s
z#FirewallD.queryLockdownWhitelistUidZaicCst�d�|jjj��S)r�z#policies.getLockdownWhitelistUids())rr7r&r=r�Zget_uidsr~r1r1r2�getLockdownWhitelistUids�s
z"FirewallD.getLockdownWhitelistUidscCst�d|�dS)NzLockdownWhitelistUidAdded(%d)r��r,r:r1r1r2r��sz#FirewallD.LockdownWhitelistUidAddedcCst�d|�dS)NzLockdownWhitelistUidRemoved(%d)r�r�r1r1r2r��sz%FirewallD.LockdownWhitelistUidRemovedcCs@t|t�}t�d|�|�|�|jjj�|�|�	|�dS)�Add lockdown user
        z'policies.addLockdownWhitelistUser('%s')N)
rrhrr7rAr&r=r�Zadd_user�LockdownWhitelistUserAdded�r,r;r@r1r1r2�addLockdownWhitelistUser�s


z"FirewallD.addLockdownWhitelistUsercCs@t|t�}t�d|�|�|�|jjj�|�|�	|�dS)zRemove lockdown user
        z*policies.removeLockdownWhitelistUser('%s')N)
rrhrr7rAr&r=r�Zremove_user�LockdownWhitelistUserRemovedr�r1r1r2�removeLockdownWhitelistUser�s


z%FirewallD.removeLockdownWhitelistUsercCs(t|t�}t�d|�|jjj�|�S)zQuery lockdown user
        z)policies.queryLockdownWhitelistUser('%s'))rrhrr7r&r=r�Zhas_userr�r1r1r2�queryLockdownWhitelistUsers
z$FirewallD.queryLockdownWhitelistUsercCst�d�|jjj��S)r�z$policies.getLockdownWhitelistUsers())rr7r&r=r�Z	get_usersr~r1r1r2�getLockdownWhitelistUserss
z#FirewallD.getLockdownWhitelistUserscCst�d|�dS)Nz LockdownWhitelistUserAdded('%s')r��r,r;r1r1r2r�#sz$FirewallD.LockdownWhitelistUserAddedcCst�d|�dS)Nz"LockdownWhitelistUserRemoved('%s')r�r�r1r1r2r�(sz&FirewallD.LockdownWhitelistUserRemovedcCs@t|t�}t�d|�|�|�|jjj�|�|�	|�dS)�Add lockdown context
        z*policies.addLockdownWhitelistContext('%s')N)
rrhrr7rAr&r=r�Zadd_context�LockdownWhitelistContextAdded�r,r9r@r1r1r2�addLockdownWhitelistContext/s


z%FirewallD.addLockdownWhitelistContextcCs@t|t�}t�d|�|�|�|jjj�|�|�	|�dS)z Remove lockdown context
        z-policies.removeLockdownWhitelistContext('%s')N)
rrhrr7rAr&r=r�Zremove_context�LockdownWhitelistContextRemovedr�r1r1r2�removeLockdownWhitelistContext<s


z(FirewallD.removeLockdownWhitelistContextcCs(t|t�}t�d|�|jjj�|�S)zQuery lockdown context
        z,policies.queryLockdownWhitelistContext('%s'))rrhrr7r&r=r�Zhas_contextr�r1r1r2�queryLockdownWhitelistContextIs
z'FirewallD.queryLockdownWhitelistContextcCst�d�|jjj��S)r�z'policies.getLockdownWhitelistContexts())rr7r&r=r�Zget_contextsr~r1r1r2�getLockdownWhitelistContextsUs
z&FirewallD.getLockdownWhitelistContextscCst�d|�dS)Nz#LockdownWhitelistContextAdded('%s')r��r,r9r1r1r2r�`sz'FirewallD.LockdownWhitelistContextAddedcCst�d|�dS)Nz%LockdownWhitelistContextRemoved('%s')r�r�r1r1r2r�esz)FirewallD.LockdownWhitelistContextRemovedcCs*t�d�|�|�|j��|��dS)zfEnable panic mode.

        All ingoing and outgoing connections and packets will be blocked.
        zenablePanicMode()N)rr7rAr&Zenable_panic_mode�PanicModeEnabledr~r1r1r2�enablePanicModens	


zFirewallD.enablePanicModecCs*t�d�|�|�|j��|��dS)z�Disable panic mode.

        Enables normal mode: Allowed ingoing and outgoing connections
        will not be blocked anymore
        zdisablePanicMode()N)rr7rAr&Zdisable_panic_mode�PanicModeDisabledr~r1r1r2�disablePanicMode|s



zFirewallD.disablePanicModecCst�d�|j��S)NzqueryPanicMode())rr7r&Zquery_panic_moder~r1r1r2�queryPanicMode�s
zFirewallD.queryPanicModecCst�d�dS)NzPanicModeEnabled()r�r5r1r1r2r��szFirewallD.PanicModeEnabledcCst�d�dS)NzPanicModeDisabled()r�r5r1r1r2r��szFirewallD.PanicModeDisabledz&(sssbsasa(ss)asba(ssss)asasasasa(ss)b)cCs$t|t�}t�d|�|jj�|�S)NzgetZoneSettings(%s))rrhrr7r&rBZget_config_with_settings�r,rBr@r1r1r2�getZoneSettings�s
zFirewallD.getZoneSettingscCs$t|t�}t�d|�|jj�|�S)NzgetZoneSettings2(%s))rrhrr7r&rB�get_config_with_settings_dictr�r1r1r2r��s
zFirewallD.getZoneSettings2zsa{sv}cCsFt|t�}t�d|�|�|�|jj�|t|�|�|�||�dS)NzsetZoneSettings2(%s))	rrhrr7rAr&rB�set_config_with_settings_dict�ZoneUpdated)r,rBr�r@r1r1r2�setZoneSettings2�s


zFirewallD.setZoneSettings2cCst�d||f�dS)Nzzone.ZoneUpdated('%s', '%s')r�)r,rBr�r1r1r2r��szFirewallD.ZoneUpdatedcCs$t|t�}t�d|�|jj�|�S)Nzpolicy.getPolicySettings(%s))rrhrr7r&r�r�)r,r�r@r1r1r2r��s
zFirewallD.getPolicySettingscCsFt|t�}t�d|�|�|�|jj�|t|�|�|�||�dS)Nzpolicy.setPolicySettings(%s))	rrhrr7rAr&r�r��
PolicyUpdated)r,r�r�r@r1r1r2�setPolicySettings�s


zFirewallD.setPolicySettingscCst�d||f�dS)Nz policy.PolicyUpdated('%s', '%s')r�)r,r�r�r1r1r2r��szFirewallD.PolicyUpdatedcCst�d�|jj��S)NzlistServices())rr7r&r�r�r~r1r1r2�listServices�s
zFirewallD.listServicesz(sssa(ss)asa{ss}asa(ss))c	Cs�t|t�}t�d|�|jj�|�}|��}g}td�D]P}|j	|d|vrp|�
t�t
||j	|d���q8|�
||j	|d�q8t|�S)NzgetServiceSettings(%s)�r)rrhrr7r&r��get_service�export_config_dict�rangeZIMPORT_EXPORT_STRUCTURE�appendr�r��getattr�tuple)r,r�r@�objZ	conf_dictZ	conf_listr�r1r1r2r��s
"zFirewallD.getServiceSettingscCs,t|t�}t�d|�|jj�|�}|��S)NzgetServiceSettings2(%s))rrhrr7r&r�r�r�)r,r�r@r�r1r1r2�getServiceSettings2�s
zFirewallD.getServiceSettings2cCst�d�|jj��S)NzlistIcmpTypes())rr7r&r�r�r~r1r1r2�
listIcmpTypess
zFirewallD.listIcmpTypescCs(t|t�}t�d|�|jj�|���S)NzgetIcmpTypeSettings(%s))rrhrr7r&r�Zget_icmptyper�)r,r�r@r1r1r2r�s
zFirewallD.getIcmpTypeSettingscCst�d�|j��S)NzgetLogDenied())rr7r&Zget_log_deniedr~r1r1r2�getLogDenieds
zFirewallD.getLogDeniedcCsXt|t�}t�d|�|�|�|j�|�|�|�|j��|j	��|�
�dS)NzsetLogDenied('%s'))rrhrr7rAr&Zset_log_denied�LogDeniedChangedr|rr}�r,�valuer@r1r1r2�setLogDenied's




zFirewallD.setLogDeniedcCst�d|�dS)NzLogDeniedChanged('%s')r��r,r�r1r1r2r�7szFirewallD.LogDeniedChangedcCst�d�dS)NzgetAutomaticHelpers()rUr�r~r1r1r2�getAutomaticHelpers@s
zFirewallD.getAutomaticHelperscCs&t|t�}t�d|�|�|�dS)NzsetAutomaticHelpers('%s'))rrhrr7rAr�r1r1r2�setAutomaticHelpersKs
zFirewallD.setAutomaticHelperscCst�d|�dS)NzAutomaticHelpersChanged('%s')r�r�r1r1r2�AutomaticHelpersChangedWsz!FirewallD.AutomaticHelpersChangedcCst�d�|j��S)NzgetDefaultZone())rr7r&Zget_default_zoner~r1r1r2�getDefaultZone`s
zFirewallD.getDefaultZonecCs<t|t�}t�d|�|�|�|j�|�|�|�dS)NzsetDefaultZone('%s'))rrhrr7rAr&Zset_default_zone�DefaultZoneChangedr�r1r1r2�setDefaultZoneis


zFirewallD.setDefaultZonecCst�d|�dS)NzDefaultZoneChanged('%s')r��r,rBr1r1r2r�uszFirewallD.DefaultZoneChangedcCst�d�|jj��S)Nzpolicy.getPolicies())rr7r&r�r�r~r1r1r2�getPolicies�s
zFirewallD.getPoliciesz
a{sa{sas}}cCsXt�d�i}|jj��D]8}i||<|jj�|�||d<|jj�|�||d<q|S)Nzpolicy.getActivePolicies()Z
ingress_zonesZegress_zones)rr7r&r�Z)get_active_policies_not_derived_from_zoneZlist_ingress_zonesZlist_egress_zones)r,r@r=r�r1r1r2�getActivePolicies�s
zFirewallD.getActivePoliciescCst�d�|jj��S)Nzzone.getZones())rr7r&rBr�r~r1r1r2�getZones�s
zFirewallD.getZonescCs�t�d�i}|jj��D]l}|jj�|�}|jj�|�}t|�t|�dkri||<t|�dkrn|||d<t|�dkr|||d<q|S)Nzzone.getActiveZones()r�
interfaces�sources)rr7r&rBr��list_interfaces�list_sources�len)r,r@ZzonesrBr�r�r1r1r2�getActiveZones�s
zFirewallD.getActiveZonescCs2t|t�}t�d|�|jj�|�}|r.|SdS)z�Return the zone an interface belongs to.

        :Parameters:
            `interface` : str
                Name of the interface
        :Returns: str. The name of the zone.
        zzone.getZoneOfInterface('%s')rz)rrhrr7r&rBZget_zone_of_interface)r,ryr@rBr1r1r2�getZoneOfInterface�s
zFirewallD.getZoneOfInterfacecCs2t|t�}t�d|�|jj�|�}|r.|SdS)Nzzone.getZoneOfSource('%s')rz)rrhrr7r&rBZget_zone_of_source)r,�sourcer@rBr1r1r2�getZoneOfSource�s
zFirewallD.getZoneOfSourcecCsdS)NFr1r�r1r1r2�isImmutable�szFirewallD.isImmutablecCsRt|t�}t|t�}t�d||f�|�|�|jj�|||�}|�||�|S)zPAdd an interface to a zone.
        If zone is empty, use default zone.
        zzone.addInterface('%s', '%s'))	rrhrr7rAr&rBZ
add_interface�InterfaceAdded�r,rBryr@�_zoner1r1r2�addInterface�s


zFirewallD.addInterfacecCs"t|t�}t|t�}|�|||�S)z�Change a zone an interface is part of.
        If zone is empty, use default zone.

        This function is deprecated, use changeZoneOfInterface instead
        )rrh�changeZoneOfInterface�r,rBryr@r1r1r2�
changeZone�s


zFirewallD.changeZonecCsRt|t�}t|t�}t�d||f�|�|�|jj�|||�}|�||�|S)z[Change a zone an interface is part of.
        If zone is empty, use default zone.
        z&zone.changeZoneOfInterface('%s', '%s'))	rrhrr7rAr&rBZchange_zone_of_interface�ZoneOfInterfaceChangedrr1r1r2r
s


zFirewallD.changeZoneOfInterfacecCsPt|t�}t|t�}t�d||f�|�|�|jj�||�}|�||�|S)zkRemove interface from a zone.
        If zone is empty, remove from zone the interface belongs to.
        z zone.removeInterface('%s', '%s'))	rrhrr7rAr&rBZremove_interface�InterfaceRemovedrr1r1r2r�s


zFirewallD.removeInterfacecCs6t|t�}t|t�}t�d||f�|jj�||�S)z^Return true if an interface is in a zone.
        If zone is empty, use default zone.
        zzone.queryInterface('%s', '%s'))rrhrr7r&rBZquery_interfacerr1r1r2�queryInterface%s

zFirewallD.queryInterfacecCs&t|t�}t�d|�|jj�|�S)z]Return the list of interfaces of a zone.
        If zone is empty, use default zone.
        zzone.getInterfaces('%s'))rrhrr7r&rBr�r�r1r1r2r�2s

zFirewallD.getInterfacescCst�d||f�dS)Nzzone.InterfaceAdded('%s', '%s')r��r,rBryr1r1r2r@szFirewallD.InterfaceAddedcCst�d||f�dS)z,
        This signal is deprecated.
        zzone.ZoneChanged('%s', '%s')Nr�rr1r1r2�ZoneChangedEszFirewallD.ZoneChangedcCs"t�d||f�|�||�dS)Nz'zone.ZoneOfInterfaceChanged('%s', '%s'))rr7rrr1r1r2r
Ms�z FirewallD.ZoneOfInterfaceChangedcCst�d||f�dS)Nz!zone.InterfaceRemoved('%s', '%s')r�rr1r1r2rTszFirewallD.InterfaceRemovedcCsRt|t�}t|t�}t�d||f�|�|�|jj�|||�}|�||�|S)zLAdd a source to a zone.
        If zone is empty, use default zone.
        zzone.addSource('%s', '%s'))	rrhrr7rAr&rBZ
add_source�SourceAdded�r,rBrr@rr1r1r2�	addSource]s


zFirewallD.addSourcecCsRt|t�}t|t�}t�d||f�|�|�|jj�|||�}|�||�|S)zXChange a zone an source is part of.
        If zone is empty, use default zone.
        z#zone.changeZoneOfSource('%s', '%s'))	rrhrr7rAr&rBZchange_zone_of_source�ZoneOfSourceChangedrr1r1r2�changeZoneOfSourcens


zFirewallD.changeZoneOfSourcecCsPt|t�}t|t�}t�d||f�|�|�|jj�||�}|�||�|S)zeRemove source from a zone.
        If zone is empty, remove from zone the source belongs to.
        zzone.removeSource('%s', '%s'))	rrhrr7rAr&rBZ
remove_source�
SourceRemovedrr1r1r2�removeSources


zFirewallD.removeSourcecCs6t|t�}t|t�}t�d||f�|jj�||�S)z[Return true if an source is in a zone.
        If zone is empty, use default zone.
        zzone.querySource('%s', '%s'))rrhrr7r&rBZquery_source)r,rBrr@r1r1r2�querySource�s

zFirewallD.querySourcecCs&t|t�}t�d|�|jj�|�S)zZReturn the list of sources of a zone.
        If zone is empty, use default zone.
        zzone.getSources('%s'))rrhrr7r&rBr�r�r1r1r2�
getSources�s

zFirewallD.getSourcescCst�d||f�dS)Nzzone.SourceAdded('%s', '%s')r��r,rBrr1r1r2r�szFirewallD.SourceAddedcCst�d||f�dS)Nz$zone.ZoneOfSourceChanged('%s', '%s')r�rr1r1r2r�szFirewallD.ZoneOfSourceChangedcCst�d||f�dS)Nzzone.SourceRemoved('%s', '%s')r�rr1r1r2r�szFirewallD.SourceRemovedcCsHt�d||f�|j||=t|d�}|jj�||�|�||�dS)Nz%zone.disableTimedRichRule('%s', '%s')�Zrule_str)rr7r8rr&rB�remove_rule�RichRuleRemoved)r,rB�ruler�r1r1r2�disableTimedRichRule�s

zFirewallD.disableTimedRichRuleZssicCs�t|t�}t|t�}t|t�}t�d||f�t|d�}|jj�|||�}|dkrtt	�
||j||�}|�|||�|�
|||�|S)Nzzone.addRichRule('%s', '%s')rr)rrhr�rr7rr&rB�add_ruler�timeout_add_secondsr rE�
RichRuleAdded)r,rBr�timeoutr@r�rrDr1r1r2�addRichRule�s




�zFirewallD.addRichRulecCs\t|t�}t|t�}t�d||f�t|d�}|jj�||�}|�||�|�	||�|S)Nzzone.removeRichRule('%s', '%s')r)
rrhrr7rr&rBrrHr)r,rBrr@r�rr1r1r2�removeRichRule�s


zFirewallD.removeRichRulecCs@t|t�}t|t�}t�d||f�t|d�}|jj�||�S)Nzzone.queryRichRule('%s', '%s')r)rrhrr7rr&rB�
query_rule)r,rBrr@r�r1r1r2�
queryRichRule�s



zFirewallD.queryRichRulecCs&t|t�}t�d|�|jj�|�S)Nzzone.getRichRules('%s'))rrhrr7r&rBZ
list_rulesr�r1r1r2�getRichRules�s
zFirewallD.getRichRulescCst�d|||f�dS)Nz"zone.RichRuleAdded('%s', '%s', %d)r�)r,rBrr$r1r1r2r#�szFirewallD.RichRuleAddedcCst�d||f�dS)Nz zone.RichRuleRemoved('%s', '%s')r�)r,rBrr1r1r2rszFirewallD.RichRuleRemovedcCs>t�d||f�|j||=|jj�||�|�||�dS)Nz$zone.disableTimedService('%s', '%s'))rr7r8r&rB�remove_service�ServiceRemoved�r,rBr�r1r1r2�disableTimedService
szFirewallD.disableTimedServicecCs�t|t�}t|t�}t|t�}t�d|||f�|�|�|jj�||||�}|dkrxt	�
||j||�}|�|||�|�
|||�|S)Nzzone.addService('%s', '%s', %d)r)rrhr�rr7rAr&rBZadd_servicerr"r-rE�ServiceAdded)r,rBr�r$r@rrDr1r1r2r�s




�zFirewallD.addServicecCs\t|t�}t|t�}t�d||f�|�|�|jj�||�}|�||�|�	||�|S)Nzzone.removeService('%s', '%s'))
rrhrr7rAr&rBr*rHr+)r,rBr�r@rr1r1r2�
removeService*s


zFirewallD.removeServicecCs6t|t�}t|t�}t�d||f�|jj�||�S)Nzzone.queryService('%s', '%s'))rrhrr7r&rBZ
query_service)r,rBr�r@r1r1r2�queryService;s

zFirewallD.queryServicecCs&t|t�}t�d|�|jj�|�S)Nzzone.getServices('%s'))rrhrr7r&rBZ
list_servicesr�r1r1r2�getServicesFs
zFirewallD.getServicescCst�d|||f�dS)Nz!zone.ServiceAdded('%s', '%s', %d)r�)r,rBr�r$r1r1r2r.Rs�zFirewallD.ServiceAddedcCst�d||f�dS)Nzzone.ServiceRemoved('%s', '%s')r�r,r1r1r2r+XszFirewallD.ServiceRemovedcCsHt�d|||f�|j|||f=|jj�|||�|�|||�dS)Nz'zone.disableTimedPort('%s', '%s', '%s'))rr7r8r&rB�remove_port�PortRemoved�r,rB�port�protocolr1r1r2�disableTimedPortas�zFirewallD.disableTimedPortZsssicCs�t|t�}t|t�}t|t�}t|t�}t�d|||f�|�|�|jj�|||||�}|dkr�t	�
||j|||�}|�|||f|�|�
||||�|S)Nzzone.addPort('%s', '%s', '%s')r)rrhr�rr7rAr&rBZadd_portrr"r7rE�	PortAdded�r,rBr5r6r$r@rrDr1r1r2�addPortis 



�

�zFirewallD.addPortZssscCspt|t�}t|t�}t|t�}t�d|||f�|�|�|jj�|||�}|�|||f�|�	|||�|S)Nz!zone.removePort('%s', '%s', '%s'))
rrhrr7rAr&rBr2rHr3�r,rBr5r6r@rr1r1r2�
removePort�s


�
zFirewallD.removePortcCsDt|t�}t|t�}t|t�}t�d|||f�|jj�|||�S)Nz zone.queryPort('%s', '%s', '%s'))rrhrr7r&rBZ
query_port�r,rBr5r6r@r1r1r2�	queryPort�s



zFirewallD.queryPortZaascCs&t|t�}t�d|�|jj�|�S)Nzzone.getPorts('%s'))rrhrr7r&rBZ
list_portsr�r1r1r2�getPorts�s
zFirewallD.getPortsrcCst�d||||f�dS)Nz$zone.PortAdded('%s', '%s', '%s', %d)r��r,rBr5r6r$r1r1r2r8�s
�zFirewallD.PortAddedcCst�d|||f�dS)Nz"zone.PortRemoved('%s', '%s', '%s')r�r4r1r1r2r3�s�zFirewallD.PortRemovedcCs>t�d||f�|j||=|jj�||�|�||�dS)Nz%zone.disableTimedProtocol('%s', '%s'))rr7r8r&rB�remove_protocol�ProtocolRemoved�r,rBr6r1r1r2�disableTimedProtocol�szFirewallD.disableTimedProtocolcCs�t|t�}t|t�}t|t�}t�d||f�|�|�|jj�||||�}|dkrvt	�
||j||�}|�|||�|�
|||�|S)Nzzone.enableProtocol('%s', '%s')r)rrhr�rr7rAr&rBZadd_protocolrr"rDrE�
ProtocolAdded)r,rBr6r$r@rrDr1r1r2�addProtocol�s




�zFirewallD.addProtocolcCs\t|t�}t|t�}t�d||f�|�|�|jj�||�}|�||�|�	||�|S)Nzzone.removeProtocol('%s', '%s'))
rrhrr7rAr&rBrArHrB)r,rBr6r@rr1r1r2�removeProtocol�s


zFirewallD.removeProtocolcCs6t|t�}t|t�}t�d||f�|jj�||�S)Nzzone.queryProtocol('%s', '%s'))rrhrr7r&rBZquery_protocol)r,rBr6r@r1r1r2�
queryProtocol�s

zFirewallD.queryProtocolcCs&t|t�}t�d|�|jj�|�S)Nzzone.getProtocols('%s'))rrhrr7r&rBZlist_protocolsr�r1r1r2�getProtocols�s
zFirewallD.getProtocolscCst�d|||f�dS)Nz"zone.ProtocolAdded('%s', '%s', %d)r�)r,rBr6r$r1r1r2rE�s�zFirewallD.ProtocolAddedcCst�d||f�dS)Nz zone.ProtocolRemoved('%s', '%s')r�rCr1r1r2rBszFirewallD.ProtocolRemovedcCsJt�d|||f�|j|d||f=|jj�|||�|�|||�dS)Nz-zone.disableTimedSourcePort('%s', '%s', '%s')�sport)rr7r8r&rB�remove_source_port�SourcePortRemovedr4r1r1r2�disableTimedSourcePorts�z FirewallD.disableTimedSourcePortcCs�t|t�}t|t�}t|t�}t|t�}t�d|||f�|�|�|jj�|||||�}|dkr�t	�
||j|||�}|�|d||f|�|�
||||�|S)Nz$zone.addSourcePort('%s', '%s', '%s')rrJ)rrhr�rr7rAr&rBZadd_source_portrr"rMrE�SourcePortAddedr9r1r1r2�
addSourcePorts$




�
�
�zFirewallD.addSourcePortcCsrt|t�}t|t�}t|t�}t�d|||f�|�|�|jj�|||�}|�|d||f�|�	|||�|S)Nz'zone.removeSourcePort('%s', '%s', '%s')rJ)
rrhrr7rAr&rBrKrHrLr;r1r1r2�removeSourcePort,s



�
zFirewallD.removeSourcePortcCsDt|t�}t|t�}t|t�}t�d|||f�|jj�|||�S)Nz&zone.querySourcePort('%s', '%s', '%s'))rrhrr7r&rBZquery_source_portr=r1r1r2�querySourcePort>s



�zFirewallD.querySourcePortcCs&t|t�}t�d|�|jj�|�S)Nzzone.getSourcePorts('%s'))rrhrr7r&rBZlist_source_portsr�r1r1r2�getSourcePortsKs
zFirewallD.getSourcePortscCst�d||||f�dS)Nz*zone.SourcePortAdded('%s', '%s', '%s', %d)r�r@r1r1r2rNWs
�zFirewallD.SourcePortAddedcCst�d|||f�dS)Nz(zone.SourcePortRemoved('%s', '%s', '%s')r�r4r1r1r2rL]s
�zFirewallD.SourcePortRemovedcCs(|j|d=|jj�|�|�|�dS)N�
masquerade)r8r&rB�remove_masquerade�MasqueradeRemovedr�r1r1r2�disableTimedMasqueradegsz FirewallD.disableTimedMasquerade�sicCstt|t�}t|t�}t�d|�|�|�|jj�|||�}|dkrdt	�
||j|�}|�|d|�|�
||�|S)Nzzone.addMasquerade('%s')rrS)rrhr�rr7rAr&rBZadd_masqueraderr"rVrE�MasqueradeAdded)r,rBr$r@rrDr1r1r2�
addMasqueradems



�zFirewallD.addMasqueradecCsJt|t�}t�d|�|�|�|jj�|�}|�|d�|�	|�|S)Nzzone.removeMasquerade('%s')rS)
rrhrr7rAr&rBrTrHrU�r,rBr@rr1r1r2�removeMasquerade�s


zFirewallD.removeMasqueradecCs&t|t�}t�d|�|jj�|�S)Nzzone.queryMasquerade('%s'))rrhrr7r&rBZquery_masquerader�r1r1r2�queryMasquerade�s
zFirewallD.queryMasqueradecCst�d||f�dS)Nzzone.MasqueradeAdded('%s', %d)r�)r,rBr$r1r1r2rX�szFirewallD.MasqueradeAddedcCst�d|�dS)Nzzone.MasqueradeRemoved('%s')r�r�r1r1r2rU�szFirewallD.MasqueradeRemovedcCs@|j|||||f=|jj�|||||�|�|||||�dSr3)r8r&rB�remove_forward_port�ForwardPortRemoved�r,rBr5r6�toport�toaddrr1r1r2�disable_forward_port�szFirewallD.disable_forward_portZsssssic
	Cs�t|t�}t|t�}t|t�}t|t�}t|t�}t|t�}t�d|||||f�|�|�|jj�|||||||�}|dkr�t	�
||j|||||�}	|�|||||f|	�|�
||||||�|S)Nz1zone.addForwardPort('%s', '%s', '%s', '%s', '%s')r)rrhr�rr7rAr&rBZadd_forward_portrr"rbrE�ForwardPortAdded)
r,rBr5r6r`rar$r@rrDr1r1r2�addForwardPort�s,





�
��zFirewallD.addForwardPortZssssscCs�t|t�}t|t�}t|t�}t|t�}t|t�}t�d|||||f�|�|�|jj�|||||�}|�|||||f�|�	|||||�|S)Nz4zone.removeForwardPort('%s', '%s', '%s', '%s', '%s'))
rrhrr7rAr&rBr]rHr^)r,rBr5r6r`rar@rr1r1r2�removeForwardPort�s




�
�zFirewallD.removeForwardPortcCs`t|t�}t|t�}t|t�}t|t�}t|t�}t�d|||||f�|jj�|||||�S)Nz3zone.queryForwardPort('%s', '%s', '%s', '%s', '%s'))rrhrr7r&rBZquery_forward_port)r,rBr5r6r`rar@r1r1r2�queryForwardPort�s




��zFirewallD.queryForwardPortcCs&t|t�}t�d|�|jj�|�S)Nzzone.getForwardPorts('%s'))rrhrr7r&rBZlist_forward_portsr�r1r1r2�getForwardPorts�s
zFirewallD.getForwardPortsc	Cst�d||||||f�dS)Nz7zone.ForwardPortAdded('%s', '%s', '%s', '%s', '%s', %d)r�)r,rBr5r6r`rar$r1r1r2rc�s�zFirewallD.ForwardPortAddedcCst�d|||||f�dS)Nz5zone.ForwardPortRemoved('%s', '%s', '%s', '%s', '%s')r�r_r1r1r2r^s�zFirewallD.ForwardPortRemovedcCs>t�d||f�|j||=|jj�||�|�||�dS)Nz&zone.disableTimedIcmpBlock('%s', '%s'))rr7r8r&rB�remove_icmp_block�IcmpBlockRemoved�r,rB�icmpr@r1r1r2�disableTimedIcmpBlockszFirewallD.disableTimedIcmpBlockcCs�t|t�}t|t�}t|t�}t�d||f�|�|�|jj�||||�}|dkrxt	�
||j|||�}|�|||�|�
|||�|S)Nz zone.enableIcmpBlock('%s', '%s')r)rrhr�rr7rAr&rBZadd_icmp_blockrr"rlrE�IcmpBlockAdded)r,rBrkr$r@rrDr1r1r2�addIcmpBlocks




�zFirewallD.addIcmpBlockcCs\t|t�}t|t�}t�d||f�|�|�|jj�||�}|�||�|�	||�|S)Nz zone.removeIcmpBlock('%s', '%s'))
rrhrr7rAr&rBrhrHri)r,rBrkr@rr1r1r2�removeIcmpBlock+s


zFirewallD.removeIcmpBlockcCs6t|t�}t|t�}t�d||f�|jj�||�S)Nzzone.queryIcmpBlock('%s', '%s'))rrhrr7r&rBZquery_icmp_blockrjr1r1r2�queryIcmpBlock;s

zFirewallD.queryIcmpBlockcCs&t|t�}t�d|�|jj�|�S)Nzzone.getIcmpBlocks('%s'))rrhrr7r&rBZlist_icmp_blocksr�r1r1r2�
getIcmpBlocksFs
zFirewallD.getIcmpBlockscCst�d|||f�dS)Nz#zone.IcmpBlockAdded('%s', '%s', %d)r�)r,rBrkr$r1r1r2rmRs�zFirewallD.IcmpBlockAddedcCst�d||f�dS)Nz!zone.IcmpBlockRemoved('%s', '%s')r�)r,rBrkr1r1r2riXszFirewallD.IcmpBlockRemovedcCs@t|t�}t�d|�|�|�|jj�||�}|�|�|S)Nz zone.addIcmpBlockInversion('%s'))	rrhrr7rAr&rBZadd_icmp_block_inversion�IcmpBlockInversionAddedrZr1r1r2�addIcmpBlockInversionas


zFirewallD.addIcmpBlockInversioncCs>t|t�}t�d|�|�|�|jj�|�}|�|�|S)Nz#zone.removeIcmpBlockInversion('%s'))	rrhrr7rAr&rBZremove_icmp_block_inversion�IcmpBlockInversionRemovedrZr1r1r2�removeIcmpBlockInversionos


z"FirewallD.removeIcmpBlockInversioncCs&t|t�}t�d|�|jj�|�S)Nz"zone.queryIcmpBlockInversion('%s'))rrhrr7r&rBZquery_icmp_block_inversionr�r1r1r2�queryIcmpBlockInversion}s
z!FirewallD.queryIcmpBlockInversioncCst�d|�dS)Nz"zone.IcmpBlockInversionAdded('%s')r�r�r1r1r2rr�sz!FirewallD.IcmpBlockInversionAddedcCst�d|�dS)Nz$zone.IcmpBlockInversionRemoved('%s')r�r�r1r1r2rt�sz#FirewallD.IcmpBlockInversionRemovedcCs`t|t�}t|t�}t|t�}t�d|||f�|�|�|jj�|||�|�|||�dS)Nz!direct.addChain('%s', '%s', '%s'))	rrhrr7rAr&r�Z	add_chain�
ChainAdded�r,�ipv�table�chainr@r1r1r2�addChain�s



zFirewallD.addChaincCs`t|t�}t|t�}t|t�}t�d|||f�|�|�|jj�|||�|�|||�dS)Nz$direct.removeChain('%s', '%s', '%s'))	rrhrr7rAr&r�Zremove_chain�ChainRemovedrxr1r1r2�removeChain�s



zFirewallD.removeChaincCsDt|t�}t|t�}t|t�}t�d|||f�|jj�|||�S)Nz#direct.queryChain('%s', '%s', '%s'))rrhrr7r&r�Zquery_chainrxr1r1r2�
queryChain�s



zFirewallD.queryChaincCs6t|t�}t|t�}t�d||f�|jj�||�S)Nzdirect.getChains('%s', '%s'))rrhrr7r&r�Z
get_chains)r,ryrzr@r1r1r2�	getChains�s

zFirewallD.getChainsza(sss)cCst�d�|jj��S)Nzdirect.getAllChains())rr7r&r�r�r~r1r1r2�getAllChains�s
zFirewallD.getAllChainscCst�d|||f�dS)Nz#direct.ChainAdded('%s', '%s', '%s')r��r,ryrzr{r1r1r2rw�szFirewallD.ChainAddedcCst�d|||f�dS)Nz%direct.ChainRemoved('%s', '%s', '%s')r�r�r1r1r2r}�s
�zFirewallD.ChainRemovedZsssiasc
Cs�t|t�}t|t�}t|t�}t|t�}tdd�|D��}t�d||||d�|�f�|�|�|jj	�
|||||�|�|||||�dS)Ncss|]}t|t�VqdSr3�rrh��.0r�r1r1r2�	<genexpr>��z$FirewallD.addRule.<locals>.<genexpr>z*direct.addRule('%s', '%s', '%s', %d, '%s')�',')rrhr�r�rr7�joinrAr&r�r!�	RuleAdded�r,ryrzr{�priorityr-r@r1r1r2�addRule�s



�
zFirewallD.addRulec
Cs�t|t�}t|t�}t|t�}t|t�}tdd�|D��}t�d||||d�|�f�|�|�|jj	�
|||||�|�|||||�dS)Ncss|]}t|t�VqdSr3r�r�r1r1r2r�	r�z'FirewallD.removeRule.<locals>.<genexpr>z-direct.removeRule('%s', '%s', '%s', %d, '%s')r�)rrhr�r�rr7r�rAr&r�r�RuleRemovedr�r1r1r2�
removeRule�s



�
zFirewallD.removeRulecCs�t|t�}t|t�}t|t�}t�d|||f�|�|�|jj�|||�D]0\}}|jj�|||||�|�	|||||�qNdS)Nz$direct.removeRules('%s', '%s', '%s'))
rrhrr7rAr&r��	get_rulesrr�)r,ryrzr{r@r�r-r1r1r2�removeRules
	s



zFirewallD.removeRulesc
Csnt|t�}t|t�}t|t�}t|t�}tdd�|D��}t�d||||d�|�f�|jj�	|||||�S)Ncss|]}t|t�VqdSr3r�r�r1r1r2r�(	r�z&FirewallD.queryRule.<locals>.<genexpr>z,direct.queryRule('%s', '%s', '%s', %d, '%s')r�)
rrhr�r�rr7r�r&r�r'r�r1r1r2�	queryRule	s



�zFirewallD.queryRuleza(ias)cCsDt|t�}t|t�}t|t�}t�d|||f�|jj�|||�S)Nz!direct.getRules('%s', '%s', '%s'))rrhrr7r&r�r�rxr1r1r2�getRules-	s



zFirewallD.getRulesz	a(sssias)cCst�d�|jj��S)Nzdirect.getAllRules())rr7r&r�r�r~r1r1r2�getAllRules:	s
zFirewallD.getAllRulesc
Cs"t�d||||d�|�f�dS)Nz,direct.RuleAdded('%s', '%s', '%s', %d, '%s')r��rr7r��r,ryrzr{r�r-r1r1r2r�D	s�zFirewallD.RuleAddedc
Cs"t�d||||d�|�f�dS)Nz.direct.RuleRemoved('%s', '%s', '%s', %d, '%s')r�r�r�r1r1r2r�K	s�zFirewallD.RuleRemovedr[c
Cs�t|t�}tdd�|D��}t�d|d�|�f�|�|�z|jj�	||�WSt
y�}zj|dvrvtgd��}ntddg�}t|�}|jt
jkr�tt|�|@�d	kr�t�|�t|���WYd}~n
d}~00dS)
Ncss|]}t|t�VqdSr3r�r�r1r1r2r�^	r�z(FirewallD.passthrough.<locals>.<genexpr>zdirect.passthrough('%s', '%s')r�)rOrS)z-Cz--check�-L�--listr�r�r)rrhr�rr7r�rAr&r��passthroughr"�set�coder!ZCOMMAND_FAILEDrr�r	)r,ryr-r@r?Z
query_args�msgr1r1r2r�V	s 


zFirewallD.passthroughcCs\t|�}tdd�|D��}t�d|d�|�f�|�|�|jj�||�|�	||�dS)Ncss|]}t|�VqdSr3�rr�r1r1r2r�z	r�z+FirewallD.addPassthrough.<locals>.<genexpr>z!direct.addPassthrough('%s', '%s')r�)
rr�rr7r�rAr&r�Zadd_passthrough�PassthroughAdded�r,ryr-r@r1r1r2�addPassthroughr	s�
zFirewallD.addPassthroughcCs\t|�}tdd�|D��}t�d|d�|�f�|�|�|jj�||�|�	||�dS)Ncss|]}t|�VqdSr3r�r�r1r1r2r��	r�z.FirewallD.removePassthrough.<locals>.<genexpr>z$direct.removePassthrough('%s', '%s')r�)
rr�rr7r�rAr&r�Zremove_passthrough�PassthroughRemovedr�r1r1r2�removePassthrough�	s�
zFirewallD.removePassthroughcCsBt|�}tdd�|D��}t�d|d�|�f�|jj�||�S)Ncss|]}t|�VqdSr3r�r�r1r1r2r��	r�z-FirewallD.queryPassthrough.<locals>.<genexpr>z#direct.queryPassthrough('%s', '%s')r�)rr�rr7r�r&r�Zquery_passthroughr�r1r1r2�queryPassthrough�	s�zFirewallD.queryPassthroughza(sas)cCst�d�|jj��S)Nzdirect.getAllPassthroughs())rr7r&r�r�r~r1r1r2�getAllPassthroughs�	s
zFirewallD.getAllPassthroughscCs*t�d�t|���D]}|j|�qdS)Nzdirect.removeAllPassthroughs())rr7�reversedr�r�)r,r@r�r1r1r2�removeAllPassthroughs�	s
zFirewallD.removeAllPassthroughscCs"t|�}t�d|�|jj�|�S)Nzdirect.getPassthroughs('%s'))rrr7r&r�Zget_passthroughs)r,ryr@r1r1r2�getPassthroughs�	szFirewallD.getPassthroughscCst�d|d�|�f�dS)Nz#direct.PassthroughAdded('%s', '%s')r�r��r,ryr-r1r1r2r��	s�zFirewallD.PassthroughAddedcCst�d|d�|�f�dS)Nz%direct.PassthroughRemoved('%s', '%s')r�r�r�r1r1r2r��	s�zFirewallD.PassthroughRemovedcCsdS)z� PK_ACTION_ALL implies all other actions, i.e. once a subject is
            authorized for PK_ACTION_ALL it's also authorized for any other action.
            Use-case is GUI (RHBZ#994729).
        Nr1r~r1r1r2�authorizeAll�	s	zFirewallD.authorizeAllcCs$t|�}t�d|�|jj�|�S)Nzipset.queryIPSet('%s'))rrr7r&r�Zquery_ipset�r,r�r@r1r1r2�
queryIPSet�	szFirewallD.queryIPSetcCst�d�|jj��S)Nzipsets.getIPSets())rr7r&r�r�r~r1r1r2�	getIPSets�	s
zFirewallD.getIPSetscCs(t|t�}t�d|�|jj�|���S)NzgetIPSetSettings(%s))rrhrr7r&r�Z	get_ipsetr�r�r1r1r2r��	s
zFirewallD.getIPSetSettingscCsLt|�}t|�}t�d||f�|�|�|jj�||�|�||�dS)Nzipset.addEntry('%s', '%s'))rrr7rAr&r�Z	add_entry�
EntryAdded�r,r��entryr@r1r1r2�addEntry�	s
zFirewallD.addEntrycCsLt|�}t|�}t�d||f�|�|�|jj�||�|�||�dS)Nzipset.removeEntry('%s', '%s'))rrr7rAr&r�Zremove_entry�EntryRemovedr�r1r1r2�removeEntry	
s
zFirewallD.removeEntrycCs2t|�}t|�}t�d||f�|jj�||�S)Nzipset.queryEntry('%s', '%s'))rrr7r&r�Zquery_entryr�r1r1r2�
queryEntry
szFirewallD.queryEntrycCs$t|�}t�d|�|jj�|�S)Nzipset.getEntries('%s'))rrr7r&r��get_entriesr�r1r1r2�
getEntries!
szFirewallD.getEntriescCs�t|�}t|t�}t�d|d�|��|jj�|�}|jj�||�t	|�}t	|�}||D]}|�
||�q\||D]}|�||�qvdS)Nzipset.setEntries('%s', '[%s]')�,)r�listrr7r�r&r�r�Zset_entriesr�r�r�)r,r��entriesr@Zold_entriesZold_entries_setZentries_setr�r1r1r2�
setEntries+
s
zFirewallD.setEntriescCs&t|�}t|�}t�d||f�dS)Nzipset.EntryAdded('%s', '%s')�rrr7�r,r�r�r1r1r2r�<
szFirewallD.EntryAddedcCs&t|�}t|�}t�d||f�dS)Nzipset.EntryRemoved('%s', '%s')r�r�r1r1r2r�C
szFirewallD.EntryRemovedcCst�d�|jj��S)Nzhelpers.getHelpers())rr7r&r�r�r~r1r1r2�
getHelpersN
s
zFirewallD.getHelperscCs(t|t�}t�d|�|jj�|���S)NzgetHelperSettings(%s))rrhrr7r&r�Z
get_helperr�)r,r�r@r1r1r2r�W
s
zFirewallD.getHelperSettings)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)r)N)N)N)N)r)N)N)N)N)r)N)N)N)r)N)N)N)N)r)N)N)N)N)r)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)��__name__�
__module__�__qualname__�__doc__Z
persistentrr*ZPK_ACTION_CONFIGZdefault_polkit_auth_requiredr
r%r6r)r4rrArErHrJrbrZPROPERTIES_IFACErortrrur��signalrvZPK_ACTION_INFOZINTROSPECTABLE_IFACErwr+r|rr}r�r�r�ZPK_ACTION_POLICIESrkr�r�ZPK_ACTION_POLICIES_INFOr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�ZPK_ACTION_CONFIG_INFOr�rir�r�r�ZDBUS_INTERFACE_POLICYr�r�r�r�r�r�r�rZDBUS_SIGNATUREr�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr	rr
r�rr�rrr
rrrrrrrrrr r%r&r(r)r#rr-r�r/r0r1r.r+r7r:r<r>r?r8r3rDrFrGrHrIrErBrMrOrPrQrRrNrLrVrYr[r\rXrUrbrdrerfrgrcr^rlrnrorprqrmrirsrurvrrrtZPK_ACTION_DIRECTrrjr|r~ZPK_ACTION_DIRECT_INFOrr�r�rrwr}r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�Z
PK_ACTION_ALLr�rlr�r�rr�r�r�r�r�r�r�r�r�rr��
__classcell__r1r1r/r2r?s�








/��
"



�

�

�

�

�O

�

�

�

�	

�	

�

�

�	

�	

�

�

�	

�	

�

�

�	

�	

�

�

�


�

�

�

�


�


�

�

�

�

�


�

�

�

�

�

�	

�

�

�

�

�

�	

�

�

�


�

�

�	

�


�

�

�

�	

�



�

�


�

�


�

�

�

�


�
�
�

�

�

�

�

�

�
�
�	

�
�

�

�
��
��
��

��

�

�

�

�

�


�


�	

�


�


�


�


�



�

�

�

�

�


�



�

�


�


�


�


�


�



�

�

�

�

�	

�	

�

�
	

�

�)6�__all__Z
gi.repositoryrr�r*Zdbus.serviceZfirewallrZfirewall.core.fwrZfirewall.core.richrZfirewall.core.loggerrZfirewall.clientrZfirewall.server.dbusr	r
Zfirewall.server.decoratorsrrr
rrrZfirewall.server.configrZfirewall.dbus_utilsrrrrrrrrZfirewall.core.io.functionsrZfirewall.core.io.ipsetrZfirewall.core.io.icmptyperZfirewall.core.io.helperrZfirewall.core.fw_nmrrZfirewall.core.fw_ifcfgr r!Zfirewall.errorsr"rr1r1r1r2�<module>s, (