Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
3 ³Y„jåÄã@s²dgZddlZddlZddlZddlZddlZddlmZddlm Z ddl m Z ddl m Z ddl m Z ddl mZdd l mZdd lmZdd lmZdd lmZdd lmZddlmZddlmZddlmZddlmZddl m!Z!ddl"m#Z#ddl$m%Z%m&Z&ddl'm(Z(ddl)m*Z*ddl+m,Z,ddl-m.Z.ddl/m0Z0ddl1m2Z2m3Z3ddl4m5Z5ddl6m7Z7ddl8m9Z9ddl:m;Z;ddlmZ>Gd!d„de?ƒZ@dS)"ÚFirewalléN)Úconfig)Ú functions)Ú ipXtables)Úebtables)Únftables)Úipset)Úmodules)ÚFirewallIcmpType)ÚFirewallService)Ú FirewallZone)ÚFirewallDirect)ÚFirewallConfig)ÚFirewallPolicies)Ú FirewallIPSet)ÚFirewallTransaction)ÚFirewallHelper)ÚFirewallPolicy)Únm_get_bus_nameÚnm_get_interfaces_in_zone)Úlog)Úfirewalld_conf)ÚDirect)Úservice_reader)Úicmptype_reader)Ú zone_readerÚZone)Ú ipset_reader)Ú IPSET_TYPES)Ú helper_reader)Ú policy_reader)Úerrors)Ú FirewallErrorc@s¦eZdZdedd„Zdd„Zdd„Zdd „Zd d „Zdfd d „Zdd„Z dgdd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„Zd&d'„Zdhd)d*„Zdid+d,„Zd-d.„Zdjd/d0„Zdkd1d2„Zdld3d4„Zd5d6„Zd7d8„Zd9d:„Zd;d<„Zd=d>„Z d?d@„Z!dAdB„Z"dCdD„Z#dEdF„Z$dGdH„Z%dIdJ„Z&dKdL„Z'dMdN„Z(dmdOdP„Z)dQdR„Z*dSdT„Z+dUdV„Z,dWdX„Z-dYdZ„Z.d[d\„Z/d]d^„Z0d_d`„Z1dadb„Z2dcdd„Z3d(S)nrFcCsttjƒ|_||_|jr>d|_d|_d|_d|_t |_ d|_ nrt j |ƒ|_d|_g|_t j|ƒ|_d|_g|_tjƒ|_d|_tjƒ|_d|_g|_ tj|ƒ|_d|_ tjƒ|_t|ƒ|_t|ƒ|_t|ƒ|_ t!|ƒ|_"t#|ƒ|_t$ƒ|_%t&|ƒ|_t'|ƒ|_(t)|ƒ|_*|j+ƒdS)NFT),rrÚFIREWALLD_CONFÚ_firewalld_confÚ_offlineÚip4tables_enabledÚip6tables_enabledÚebtables_enabledÚ ipset_enabledrÚipset_supported_typesÚnftables_enabledrÚ ip4tablesÚip4tables_backendÚipv4_supported_icmp_typesÚ ip6tablesÚip6tables_backendÚipv6_supported_icmp_typesrÚebtables_backendrÚ ipset_backendrÚnftables_backendr Úmodules_backendr Úicmptyper Úservicer Úzoner ÚdirectrrÚpoliciesrrÚhelperrÚpolicyÚ_Firewall__init_vars)ÚselfZoffline©r?ú/usr/lib/python3.6/fw.pyÚ__init__CsB               zFirewall.__init__cCsDd|j|j|j|j|j|j|j|j|j|j |j |j |j |j |jfS)Nz:%s(%r, %r, %r, %r, %r, %r, %r, %r, %r, %r, %r, %r, %r, %r))Ú __class__r&r'r(Ú_stateÚ_panicÚ _default_zoneÚ_module_refcountÚ_marksÚcleanup_on_exitÚcleanup_modules_on_exitÚipv6_rpfilter_enabledr)Ú_individual_callsÚ _log_denied)r>r?r?r@Ú__repr__ks   zFirewall.__repr__cCsjd|_d|_d|_i|_g|_tj|_tj|_ tj |_ tj |_ tj|_tj|_tj|_tj|_tj|_dS)NZINITFÚ)rCrDrErFrGrZFALLBACK_CLEANUP_ON_EXITrHZ FALLBACK_CLEANUP_MODULES_ON_EXITrIZFALLBACK_IPV6_RPFILTERrJZFALLBACK_INDIVIDUAL_CALLSrKZFALLBACK_LOG_DENIEDrLZFALLBACK_FIREWALL_BACKENDÚ_firewall_backendZFALLBACK_FLUSH_ALL_ON_RELOADÚ_flush_all_on_reloadZFALLBACK_RFC3964_IPV4Ú _rfc3964_ipv4ZFALLBACK_ALLOW_ZONE_DRIFTINGÚ_allow_zone_drifting)r>r?r?r@Z __init_varstszFirewall.__init_varscCsœ|jr$d|jjƒkr$tjdƒd|_|jrHd|jjƒkrHtjdƒd|_|jrld|jjƒkrltjdƒd|_|j r˜|j r˜|j r˜tj dƒt j dƒdS)NÚfilterziptables is not usable.Fzip6tables is not usable.zebtables is not usable.zNo IPv4 and IPv6 firewall.é) r&r-Úget_available_tablesrÚinfo1r'r0r(r2r+ÚfatalÚsysÚexit)r>r?r?r@Ú _check_tables…s     zFirewall._check_tablesc Cszy|jjƒWn*tk r8tjdƒd|_g|_YnX|jjƒ|_|jj ƒ|jj s||jj rltjdƒntjdƒd|_ |j r’|jjdƒ|_n|j r¦|jjƒ|_ng|_|jj ƒ|jj sâ|jj rÒtjdƒntjdƒd|_|j rø|jjdƒ|_n|j�r|jjƒ|_ng|_|jj ƒ|jj �sN|jj �r>tjd ƒntjd ƒd|_|j�rv|j �rv|jj �rvtjd ƒdS) Nz4ipset not usable, disabling ipset usage in firewall.FzFiptables-restore is missing, using individual calls for IPv4 firewall.zCiptables-restore and iptables are missing, disabling IPv4 firewall.Úipv4zGip6tables-restore is missing, using individual calls for IPv6 firewall.zEip6tables-restore and ip6tables are missing, disabling IPv6 firewall.Úipv6zHebtables-restore is missing, using individual calls for bridge firewall.zEebtables-restore and ebtables are missing, disabling bridge firewall.zSebtables-restore is not supporting the --noflush option, will therefore not be used)r3Zset_listÚ ValueErrorrÚwarningr)r*Zset_supported_typesr-Z fill_existsÚrestore_command_existsZcommand_existsr&r+r4Zsupported_icmp_typesr.r0r'r1r2r(rKÚrestore_noflush_optionÚdebug1)r>r?r?r@Ú _start_checkœsL               zFirewall._start_checkc>Cs„tj}tjdtjƒy|jjƒWn8tk rZ}ztj|ƒtjdƒWYdd}~X�n"X|jj dƒrt|jj dƒ}|jj dƒr´|jj dƒ}|dk r¦|j ƒdBkr¦d|_ tjd|j ƒ|jj d ƒ�r|jj d ƒ}|dk rè|j ƒdCkrèd |_ |dk �r|j ƒdDk�rd|_ tjd |j ƒ|jj dƒ�rv|jj dƒ}|dk �rv|j ƒdEk�rvtjdƒy|j jƒWntk �rtYnX|jj dƒ�rÂ|jj dƒ}|dk �rÂ|j ƒdFk�r®d|_|j ƒdGk�rÂd |_|j�rÖtjdƒn tjdƒ|jj dƒ�r"|jj dƒ}|dk �r"|j ƒdHk�r"tjdƒd |_|jj dƒ�rt|jj dƒ}|dk�sT|j ƒdk�r\d|_n|j ƒ|_tjd|jƒ|jj dƒ�rž|jj dƒ|_tjd|jƒ|jj dƒ�râ|jj dƒ}|j ƒdIk�rÎd|_nd |_tjd|jƒ|jj dƒ�r&|jj dƒ}|j ƒdJk�rd|_nd |_tjd|jƒ|jj dƒ�r||jj dƒ}|j ƒdKk�rVd|_nd |_|j�sntjdƒtjd |jƒ|jjtj|jƒƒ|j|jƒ|j�s¬|jƒtjd!ƒy|j jjƒWnZtk �r }z<|j jƒ�rütjd"|j jj |ƒntjd"|j jj |ƒWYdd}~XnX|jj!tj|j ƒƒ|j"tj#d#ƒ|j"tj$d#ƒ|j"tj%d$ƒ|j"tj&d$ƒt'|j(j)ƒƒd%k�rŒtjd&ƒ|j"tj*d'ƒ|j"tj+d'ƒ|j"tj,d(ƒ|j"tj-d(ƒt'|j.j/ƒƒd%k�râtjd)ƒ|j"tj0d*ƒ|j"tj1d*ƒt'|j2j3ƒƒd%k�r&tj4d+ƒt5j6d,ƒ|j"tj7d-ƒ|j"tj8d-ƒd}x.dLD]&}||j2j3ƒk�rLtj4d1|ƒd }�qLW|�r†t5j6d,ƒ||j2j3ƒk�rÚd2|j2j3ƒk�r¬d2}nd3|j2j3ƒk�rÂd3}nd.}tjd4||ƒ|}n tjd5|ƒt9tj:ƒ} t;jj?| ƒ|jj@tj| ƒƒ|jA|ƒ|_B|j�rˆdS|jCƒtjDƒd%k�r¦tEjEƒ} tF|ƒ} |�sÀ|jG| d8�|�rÌ|�sà|jH�rò|jIjJƒ�rò| jKd ƒ| jLƒ|�r|�rtjd9ƒ|jMjNƒ|jO| d8�| jKd ƒ| jLƒ|jH�rX|jIjJƒ�rXtjd:ƒ|jIjPƒtjd;ƒ|jQ| d8�tjd<ƒ|j2jR| d8�|j2jSd|jB| d8�tjd=ƒ|jTjU| d8�| jKd ƒ| jLƒ|j>jVƒ�rVtjd>ƒ|j>jW| ƒy| jKd ƒ| jLƒWnXtk �r>} z$t| jXd?| jY�r&| jYnd@ƒ‚WYdd} ~ Xntk �rT‚YnX~ tjDƒd,k�r€tEjEƒ} tjZdA| | ƒdS)MNz"Loading firewalld config file '%s'z0Using fallback firewalld configuration settings.Ú DefaultZoneZ CleanupOnExitÚnoÚfalseFzCleanupOnExit is set to '%s'ZCleanupModulesOnExitÚyesÚtrueTz#CleanupModulesOnExit is set to '%s'ZLockdownzLockdown is enabledZ IPv6_rpfilterzIPv6 rpfilter is enabledzIPV6 rpfilter is disabledZIndividualCallszIndividualCalls is enabledÚ LogDeniedZoffzLogDenied is set to '%s'ZFirewallBackendzFirewallBackend is set to '%s'ZFlushAllOnReloadzFlushAllOnReload is set to '%s'Z RFC3964_IPv4zRFC3964_IPv4 is set to '%s'ZAllowZoneDriftingzœAllowZoneDrifting is enabled. This is considered an insecure configuration option. It will be removed in a future release. Please consider disabling it now.z AllowZoneDrifting is set to '%s'zLoading lockdown whitelistz*Failed to load lockdown whitelist '%s': %srr6rzNo icmptypes found.r;r7zNo services found.r8zNo zones found.rTr<ÚblockÚdropÚtrustedzZone '%s' is not available.ZpublicZexternalz+Default zone '%s' is not valid. Using '%s'.zUsing default zone '%s'zLoading direct rules file '%s'z)Failed to load direct rules file '%s': %s)Úuse_transactionzUnloading firewall moduleszApplying ipsetszApplying default rule setzApplying used zoneszApplying used policiesz2Applying direct chains rules and passthrough rulesz Direct: %srNz%Flushing and applying took %f seconds)rdre)rfrg)rdre)rfrg)rdre)rfrg)rfrg)rdre)rdre)rdre)rirjrk)[rZ FALLBACK_ZONErrar#r$ÚreadÚ Exceptionr^ÚgetÚlowerrHrIr:Zenable_lockdownr"rJrKrLrOrPrQrRr%Zset_firewalld_confÚcopyÚdeepcopyÚ_select_firewall_backendrbZlockdown_whitelistZquery_lockdownÚerrorÚfilenameZ set_policiesÚ_loaderZFIREWALLD_IPSETSZETC_FIREWALLD_IPSETSZFIREWALLD_ICMPTYPESZETC_FIREWALLD_ICMPTYPESÚlenr6Ú get_icmptypesZFIREWALLD_HELPERSZETC_FIREWALLD_HELPERSZFIREWALLD_SERVICESZETC_FIREWALLD_SERVICESr7Ú get_servicesZFIREWALLD_ZONESZETC_FIREWALLD_ZONESr8Ú get_zonesrWrXrYZFIREWALLD_POLICIESZETC_FIREWALLD_POLICIESrZFIREWALLD_DIRECTÚosÚpathÚexistsr9Zset_permanent_configZ set_directÚ check_zonerErZZgetDebugLogLevelÚtimerÚflushr)rZ has_ipsetsÚexecuteÚclearr5Úunload_firewall_modulesÚapply_default_tablesZ apply_ipsetsÚapply_default_rulesZ apply_zonesÚchange_default_zoner<Zapply_policiesZhas_configurationZ apply_directÚcodeÚmsgZdebug2)r>ÚreloadÚcomplete_reloadZ default_zonerˆÚvaluertÚzr8ÚobjZtm1Ú transactionÚeZtm2r?r?r@Ú_start×st                                                           .zFirewall._startc CsHy |jƒWn&tk r2d|_|jdƒ‚YnXd|_|jdƒdS)NÚFAILEDÚACCEPTÚRUNNING)r�rnrCÚ set_policy)r>r?r?r@Ústartõs  zFirewall.startc Cshtjj|ƒsdS|rZ|jtjƒrV|dkrVtƒ}tjj|ƒ|_|j |jƒ||_d|_ nd}�x|t tj |ƒƒD�]h}|j dƒs¾|jtjƒrl|dkrltjjd||fƒrl|jd||f|dd�qld||f}tjd||ƒ�yœ|dk�r²t||ƒ}|j|jjƒk�r8|jj|jƒ}tjd ||j|j|jƒ|jj|jƒn|jjtjƒ�rNd|_ y|jj|ƒWn<tk �rš} ztjd |jt| ƒfƒWYdd} ~ XnX|jjtj|ƒƒ�nÂ|d k�rFt||ƒ}|j|jjƒk�r|jj |jƒ}tjd ||j|j|jƒ|jj!|jƒn|jjtjƒ�r$d|_ |jj"|ƒ|jj"tj|ƒƒ�n.|dk�rnt#|||d �}|�r–dtjj|ƒtjj|ƒd d…f|_|j |jƒtj|ƒ} |j|j$j%ƒk�r|j$j&|jƒ}|j$j'|jƒ|j(�rötjd||j||ƒ|j)|ƒntjd ||j|j|jƒn|jjtjƒ�r,d|_ d| _ |jj*| ƒ|�r^tjd||j||ƒ|j)|ƒn |j$j*|ƒ�n|dk�rDt+||ƒ}|j|j,j-ƒk�rÊ|j,j.|jƒ}tjd ||j|j|jƒ|j,j/|jƒn|jjtjƒ�ràd|_ y|j,j0|ƒWn<tk �r,} ztj1d |jt| ƒfƒWYdd} ~ XnX|jj0tj|ƒƒ�n0|dk�rÖt2||ƒ}|j|j3j4ƒk�r |j3j5|jƒ}tjd ||j|j|jƒ|j3j6|jƒn|jjtjƒ�r¶d|_ |j3j7|ƒ|jj7tj|ƒƒnž|dk�rht8||ƒ}|j|j9j:ƒk�r2|j9j;|jƒ}tjd ||j|j|jƒ|j9j<|jƒn|jjtjƒ�rHd|_ |j9j=|ƒ|jj>tj|ƒƒn tj?d|ƒWqltk �rª} ztj@d||| ƒWYdd} ~ XqltAk �rÔtj@d||ƒtjBƒYqlXqlW|�rd|j(�rd|j|j$j%ƒk�rX|j$j&|jƒ}tjd||j|j|jƒy|j$j'|jƒWntAk �rHYnX|jjC|jƒ|j$j*|ƒdS)Nr8Fz.xmlz%s/%sT)ÚcombinezLoading %s file '%s'r6z Overloads %s '%s' ('%s/%s')z%s: %s, ignoring for run-time.r7)Z no_check_nameréz Combining %s '%s' ('%s/%s')rr;r<zUnknown reader type %szFailed to load %s file '%s': %szFailed to load %s file '%s':z0 Overloading and deactivating %s '%s' ('%s/%s')éüÿÿÿ)Dr{r|ÚisdirÚ startswithrZ ETC_FIREWALLDrÚbasenameÚnameZ check_nameÚdefaultÚsortedÚlistdirÚendswithrvrrarr6rxZ get_icmptyperuZremove_icmptypeZ add_icmptyper"rVÚstrrqrrrr7ryZ get_serviceZremove_serviceZ add_servicerr8rzZget_zoneZ remove_zoneÚcombinedr–Zadd_zonerrÚ get_ipsetsÚ get_ipsetZ remove_ipsetÚ add_ipsetr^rr;Z get_helpersZ get_helperZ remove_helperZ add_helperr r<Ú get_policiesZ get_policyZ remove_policyZ add_policyZadd_policy_objectrWrtrnZ exceptionZ forget_zone) r>r|Z reader_typer–Z combined_zonerurœr�Zorig_objrtZ config_objrˆr?r?r@rvs       $             $       zFirewall._loadercCsp|jjƒ|jjƒ|jjƒ|jjƒ|jjƒ|jjƒ|jjƒ|jjƒ|j jƒ|j jƒ|j ƒdS)N) r6Úcleanupr7r8rr;rr9r:r<r$r=)r>r?r?r@r§œs          zFirewall.cleanupcCsN|jsB|jr(|jƒ|jjƒ|jdƒ|jrBtjdƒ|jj ƒ|j ƒdS)Nr’z!Unloading firewall kernel modules) r%rHr€rr”rIrrar5rƒr§)r>r?r?r@Ústop©s    z Firewall.stopc CsÒd}d}xÀt|ƒD]´\}}|r0|jj|ƒ\}}n$|j|dkrDd}n|jj|ƒ\}}|dkrn|d7}||7}q|r”|jj|dƒ|j|d7<q||jkr|j|d8<|j|dkr|j|=qW||fS)NrrNrT)Ú enumerater5Ú load_modulerFZ unload_moduleÚ setdefault) r>Z_modulesÚenableZ num_failedZ error_msgsÚiÚmoduleZstatusrˆr?r?r@Úhandle_modules¸s(  zFirewall.handle_modulescCs|dkrd|_dS)NrF)r+)r>Úbackendr?r?r@rsÒsz!Firewall._select_firewall_backendcCs4x|jƒD]}|j|kr |Sq Wttjd|ƒ‚dS)Nz'%s' backend does not exist)Ú all_backendsrœr"r!Z UNKNOWN_ERROR)r>rœr°r?r?r@Úget_backend_by_nameØs  zFirewall.get_backend_by_namecCs\|jr |jS|dkr |jr |jS|dkr4|jr4|jS|dkrH|jrH|jStt j d|ƒ‚dS)Nr[r\Úebz-'%s' is not a valid backend or is unavailable) r+r4r&r-r'r0r(r2r"r!Ú INVALID_IPV)r>Úipvr?r?r@Úget_backend_by_ipvßszFirewall.get_backend_by_ipvcCsP|dkr|jr|jS|dkr(|jr(|jS|dkr<|jr<|jSttjd|ƒ‚dS)Nr[r\r³z-'%s' is not a valid backend or is unavailable) r&r-r'r0r(r2r"r!r´)r>rµr?r?r@Úget_direct_backend_by_ipvësz"Firewall.get_direct_backend_by_ipvcCs<|dkr|jS|dkr|jS|dkr*|jS|dkr8|jSdS)Nr,r/rrF)r&r'r(r+)r>rœr?r?r@Úis_backend_enabledõszFirewall.is_backend_enabledcCs8|jr dS|dkr|jS|dkr&|jS|dkr4|jSdS)NTr[r\r³F)r+r&r'r()r>rµr?r?r@Úis_ipv_enabledszFirewall.is_ipv_enabledcCsRg}|jr|j|jƒn6|jr*|j|jƒ|jr<|j|jƒ|jrN|j|jƒ|S)N) r+Úappendr4r&r-r'r0r(r2)r>Úbackendsr?r?r@Úenabled_backends s   zFirewall.enabled_backendscCsPg}|jr|j|jƒ|jr(|j|jƒ|jr:|j|jƒ|jrL|j|jƒ|S)N) r&rºr-r'r0r(r2r+r4)r>r»r?r?r@r±s    zFirewall.all_backendsNcCsN|dkrt|ƒ}n|}x |jƒD]}|j||jƒƒq W|dkrJ|jdƒdS)NT)rr¼Ú add_rulesZbuild_default_tablesr�)r>rlrŽr°r?r?r@r„$s zFirewall.apply_default_tablescCs¸|dkrt|ƒ}n|}x(|jƒD]}|j|jƒ}|j||ƒq W|jdƒr~|jdƒ}d|jƒkr~|jr~|j |jƒ}|j||ƒ|jdƒr¢|j r¢|j ƒ}|j||ƒ|dkr´|j dƒdS)Nr\ÚrawT) rr¼Zbuild_default_rulesrLr½r¹r¶rUrJZbuild_rpfilter_rulesrQZbuild_rfc3964_ipv4_rulesr�)r>rlrŽr°ÚrulesZ ipv6_backendr?r?r@r…0s"        zFirewall.apply_default_rulescCs|jr|jjƒ rdSdS)NTF)r+r9Zhas_runtime_configuration)r>r?r?r@Úmay_skip_flush_direct_backendsHsz'Firewall.may_skip_flush_direct_backendscCs`|dkrt|ƒ}n|}x2|jƒD]&}||jƒkr2q |jƒ}|j||ƒq W|dkr\|jdƒdS)NT)rr±r¼Úbuild_flush_rulesr½r�)r>rlrŽr°r¿r?r?r@Úflush_direct_backendsNs  zFirewall.flush_direct_backendscCsp|dkrt|ƒ}n|}tjdƒ|jƒs4|j|d�x$|jƒD]}|jƒ}|j||ƒq>W|dkrl|jdƒdS)NzFlushing rule set)rlT) rrrarÀrÂr¼rÁr½r�)r>rlrŽr°r¿r?r?r@r€]s   zFirewall.flushcCs`|dkrt|ƒ}n|}tjd|ƒx&|jƒD]}|j|ƒ}|j||ƒq,W|dkr\|jdƒdS)NzSetting policy to '%s'T)rrrar¼Zbuild_set_policy_rulesr½r�)r>r<rlrŽr°r¿r?r?r@r”os   zFirewall.set_policycCsB|sdS|j|ƒ}|s&ttjd|ƒ‚|j|ƒs4dS|j||jƒS)NrNz'%s' is not a valid backend)r²r"r!r´r¸Úset_rulerL)r>Ú backend_nameÚruler°r?r?r@rÅ€s   z Firewall.rulecCs"ttd|ƒƒ}|j|ƒ}|s,ttjd|ƒ‚|j|ƒs:dS|js\|j s\|dkoX|j j �rxÀt |ƒD]¤\}}y|j ||j ƒWqftk �r}zjtjtjƒƒtj|ƒxFt|d|…ƒD]2}y|j |j|ƒ|j ƒWq¾tk rîYq¾Xq¾W|‚WYdd}~XqfXqfWn|j||j ƒdS)Nz'%s' is not a valid backendr)ÚlistrSr²r"r!r´r¸rKr_r2r`r©rÃrLrnrraÚ tracebackÚ format_excrtÚreversedZ reverse_ruleZ set_rules)r>rÄr¿Z_rulesr°r­rÅrˆr?r?r@r¿Žs.     zFirewall.rulescCs|jrttjƒ‚dS)N)rDr"r!Z PANIC_MODE)r>r?r?r@Ú check_panic®szFirewall.check_paniccCs"|}||jjƒkrttj|ƒ‚|S)N)r<r¦r"r!ZINVALID_POLICY)r>r<Z_policyr?r?r@Ú check_policy²s zFirewall.check_policycCs8|}| s|dkr|jƒ}||jjƒkr4ttj|ƒ‚|S)NrN)Úget_default_zoner8rzr"r!Z INVALID_ZONE)r>r8Ú_zoner?r?r@r~¸s  zFirewall.check_zonecCstj|ƒsttj|ƒ‚dS)N)rZcheckInterfacer"r!ZINVALID_INTERFACE)r>Ú interfacer?r?r@Úcheck_interfaceÀs zFirewall.check_interfacecCs|jj|ƒdS)N)r7Ú check_service)r>r7r?r?r@rÐÄszFirewall.check_servicecCstj|ƒsttj|ƒ‚dS)N)rÚ check_portr"r!Z INVALID_PORT)r>Zportr?r?r@rÑÇs zFirewall.check_portcCs*|sttjƒ‚|dkr&ttjd|ƒ‚dS)NÚtcpÚudpÚsctpÚdccpz''%s' not in {'tcp'|'udp'|'sctp'|'dccp'})rÒrÓrÔrÕ)r"r!ZMISSING_PROTOCOLZINVALID_PROTOCOL)r>Zprotocolr?r?r@Ú check_tcpudpËs  zFirewall.check_tcpudpcCstj|ƒsttj|ƒ‚dS)N)rZcheckIPr"r!Ú INVALID_ADDR)r>Zipr?r?r@Úcheck_ipÓs zFirewall.check_ipcCsP|dkr tj|ƒsLttj|ƒ‚n,|dkr@tj|ƒsLttj|ƒ‚n ttjdƒ‚dS)Nr[r\z'%s' not in {'ipv4'|'ipv6'})rZ checkIPnMaskr"r!r×Z checkIP6nMaskr´)r>rµÚsourcer?r?r@Ú check_address×s  zFirewall.check_addresscCs|jj|ƒdS)N)r6Úcheck_icmptype)r>Zicmpr?r?r@rÛâszFirewall.check_icmptypecCs>t|tƒstd|t|ƒfƒ‚t|ƒdkr:ttjd|ƒ‚dS)Nz%s is %s, expected intrz#timeout '%d' is not positive number)Ú isinstanceÚintÚ TypeErrorÚtyper"r!Ú INVALID_VALUE)r>Ztimeoutr?r?r@Ú check_timeoutås   zFirewall.check_timeoutc Cs`|j}|j}|sNi}x&|jjƒD]}|jj|ƒd||<q W|jjƒ}|jƒ}g}x$|jj ƒD]} |j |jj | ƒƒq^W|s†|j dƒ|j ƒ|jƒd} y|jd|d�Wn&tk rÒ} z | } WYdd} ~ XnX|�r(xL|D]D} |jj| jƒsàx0|jjƒD]"} | jdk�r�qþ| j| jƒ�qþWqàW|�sÞ|jƒ}||k�rš||k�rRi||<xFt||jƒƒD]2\}}|d�rd||||||<|||=�qdWxb|jjƒD]T}||k�rìx.||D]"}|jj|||||dƒ�q¾W||=n tjd|ƒ�q¦Wt|ƒd k�r6x(t|jƒƒD]}tjd |ƒ||=�qW~x˜|D]�} |jj| jƒ�r²xx| jD]R}y|jj| j|ƒWn6tk �r¨}z|jt j!k�r˜|‚WYdd}~XnX�qZWn|jj"| ƒ|jj#| jƒ�q>W|jj$|ƒt%ƒ}|�r,x@|jjƒd gD],}x$t&|ƒD]}|jj|||d ��q W�qüW||_|j�sD|j d ƒ| �rVd|_'| ‚nd|_'dS)NÚ interfacesZDROPT)r‰rŠrÚ __default__ÚsenderzNew zone '%s'.rz(Lost zone '%s', zone interfaces dropped.rN)rär’r‘r“)(rDrPr8rzÚ get_settingsr9Zget_runtime_configrÌrr£rºr¤r”r€r§r�rnZ query_ipsetrœr»Z set_destroyrÆÚitemsÚchange_zone_of_interfacerrVrwÚkeysZentriesZ add_entryr"r‡r!ÚALREADY_ENABLEDr¥Z apply_ipsetZ set_configrrrC)r>r¨rDZ flush_allZ_zone_interfacesr8Z_direct_configÚ_old_dzZ _ipset_objsÚ_nameZstart_exceptionr�r�r°Z_new_dzÚifaceÚsettingsZ interface_idÚentryrˆZ nm_bus_namerÎr?r?r@r‰îsŽ                zFirewall.reloadcCs|jS)N)rC)r>r?r?r@Ú get_stateaszFirewall.get_statecCsZ|jrttjdƒ‚y|jdƒWn.tk rN}zttj|ƒ‚WYdd}~XnXd|_dS)Nzpanic mode already enabledZPANICT)rDr"r!rér”rnÚCOMMAND_FAILED)r>rˆr?r?r@Úenable_panic_modefszFirewall.enable_panic_modecCsZ|jsttjdƒ‚y|jdƒWn.tk rN}zttj|ƒ‚WYdd}~XnXd|_dS)Nzpanic mode is not enabledr’F)rDr"r!Z NOT_ENABLEDr”rnrð)r>rˆr?r?r@Údisable_panic_modeqszFirewall.disable_panic_modecCs|jS)N)rD)r>r?r?r@Úquery_panic_mode|szFirewall.query_panic_modecCs|jS)N)rL)r>r?r?r@Úget_log_denied�szFirewall.get_log_deniedcCsb|tjkr&ttjd|djtjƒfƒ‚||jƒkrR||_|jj d|ƒ|jj ƒn ttj |ƒ‚dS)Nz'%s', choose from '%s'z','rh) rZLOG_DENIED_VALUESr"r!ràÚjoinrôrLr$ÚsetÚwriteZ ALREADY_SET)r>r‹r?r?r@Úset_log_denied„s   zFirewall.set_log_deniedcCs|jS)N)rE)r>r?r?r@rÌ“szFirewall.get_default_zonecCs˜|j|ƒ}||jkrˆ|j}||_|jjd|ƒ|jjƒ|jj||ƒ|jj|ƒ}x@t|dj ƒƒD]\}}|drd|jj d|ƒqdWn t t j |ƒ‚dS)NrcrârãrN)r~rEr$rör÷r8r†rårÆrærçr"r!ZZONE_ALREADY_SET)r>r8rÍrêZ_old_dz_settingsrìrír?r?r@Úset_default_zone–s    zFirewall.set_default_zonecCsH|jƒ}x:|jƒD].\}}|s(t|tƒr2|||<q||kr||=qW|S)N)rqrærÜÚbool)r>Z permanentZruntimer¢Úkeyr‹r?r?r@Ú'combine_runtime_with_permanent_settings«s  z0Firewall.combine_runtime_with_permanent_settingscCsi}i}xôt|jƒƒt|jƒƒBD]Ø}||kr"t||tƒrŠt||krN||ngƒ}tt||ƒ|ƒ||<t|t||ƒA|@ƒ||<q"t||tƒs¦t||tƒrÞ|| rÂ||rÂd||<qú||rú|| rúd||<q"ttjdj t ||ƒ|ƒƒ‚q"W||fS)NTFz Unhandled setting type {} key {}) rörèrÜrÆrúrÝr"r!ZINVALID_SETTINGÚformatrß)r>Z old_settingsZ new_settingsZ add_settingsZremove_settingsrûÚoldr?r?r@Úget_added_and_removed_settings¹s   z'Firewall.get_added_and_removed_settings)F)FF)F)N)N)N)N)N)F)4Ú__name__Ú __module__Ú __qualname__rArMr=rZrbr�r•rvr§r¨r¯rsr²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ôrørÌrùrürÿr?r?r?r@rBsh ( ;                s  )AÚ__all__Zos.pathr{rXrqrrÇZfirewallrrZ firewall.corerrrrr Zfirewall.core.fw_icmptyper Zfirewall.core.fw_servicer Zfirewall.core.fw_zoner Zfirewall.core.fw_directr Zfirewall.core.fw_configrZfirewall.core.fw_policiesrZfirewall.core.fw_ipsetrZfirewall.core.fw_transactionrZfirewall.core.fw_helperrZfirewall.core.fw_policyrZfirewall.core.fw_nmrrZfirewall.core.loggerrZfirewall.core.io.firewalld_confrZfirewall.core.io.directrZfirewall.core.io.servicerZfirewall.core.io.icmptyperZfirewall.core.io.zonerrZfirewall.core.io.ipsetrZfirewall.core.ipsetrZfirewall.core.io.helperrZfirewall.core.io.policyr r!Zfirewall.errorsr"Úobjectrr?r?r?r@ÚsH