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€Mã@sdddgZddljZddlZddlZddlZddlmZddlm Z m Z m Z m Z m Z mZmZddlmZmZddlmZmZmZmZdd lmZmZmZmZdd lmZdd lm Z dd lm!Z!dd l"m#Z#Gdd„deƒZ$Gdd„deƒZ%ddd„Z&ddd„Z'dS)ÚZoneÚ zone_readerÚ zone_writeréN)Úconfig)Ú checkIPnMaskÚ checkIP6nMaskÚcheckInterfaceÚuniqifyÚmax_zone_name_lenÚ u2b_if_py2Ú check_mac)ÚDEFAULT_ZONE_TARGETÚ ZONE_TARGETS)ÚPY2Ú IO_ObjectÚIO_Object_ContentHandlerÚIO_Object_XMLGenerator)Úcommon_startElementÚcommon_endElementÚcommon_check_configÚ common_writer)Úrich)Úlog)Úerrors)Ú FirewallErrorcsfeZdZdZd@dAdBdCdDd dgfd dEgfd dgfdFd dGgfddgfddgfddgfddgfddHgfdIdJfZdddgZddddgddgdgdgdddgdgddddgddgddddddgdgddœZddddgd gd!d"gd#d$gd%d&d'd#d(gd%d'd(gd)d*gd+gd,gd-œ Zed.d/„ƒZ ‡fd0d1„Z d2d3„Z d4d5„Z ‡fd6d7„Z ‡fd8d9„Zd:d;„Z‡fdd?„Z‡ZS)Krz Zone class ÚversionÚÚshortÚ descriptionÚUNUSEDFÚtargetÚservicesÚportsÚ icmp_blocksÚ masqueradeÚ forward_portsÚ interfacesÚsourcesÚ rules_strÚ protocolsÚ source_portsÚicmp_block_inversionÚforwardÚ_ú-ú/NÚnameÚportÚprotocolÚvalueÚset)rrÚzoneÚservicer1z icmp-blockz icmp-typer,z forward-portÚ interfaceÚruleÚsourceÚ destinationr2z source-portrZauditZacceptÚrejectZdropZmarkÚlimitzicmp-block-inversionÚ immutableZenabledzto-portzto-addrÚfamilyZpriorityÚaddressÚmacÚinvertÚipsetÚprefixÚlevelÚtypeZburst) r5r$z forward-portr8r9r:rr;r<cCs8x&ttjƒD]\}\}}||kr |Sq Wttjdƒ‚dS)Nz index_of())Ú enumeraterÚIMPORT_EXPORT_STRUCTURErrZ UNKNOWN_ERROR)ÚelementÚiZelZdummy©rJú/usr/lib/python3.6/zone.pyÚindex_ofdsz Zone.index_ofcs�tt|ƒjƒd|_d|_d|_d|_t|_g|_ g|_ g|_ g|_ d|_ d|_g|_g|_g|_g|_d|_g|_g|_d|_d|_d|_dS)NrF)ÚsuperrÚ__init__rrrrr r r!r"r)r#r,r$r%r*r&r'Ú fw_configÚrulesr(r+ÚcombinedÚapplied)Úself)Ú __class__rJrKrNks,z Zone.__init__cCs¾d|_d|_d|_d|_t|_|jdd…=|jdd…=|jdd…=|j dd…=d|_ d|_ |j dd…=|j dd…=|jdd…=|jdd…=d|_|jdd…=|jdd…=d|_d|_d|_dS)NrF)rrrrr r r!r"r)r#r,r$r%r*r&r'rOrPr(r+rQrR)rSrJrJrKÚcleanupƒs*          z Zone.cleanupcCsèt|jƒ|_t|jƒ|_t|jƒ|_t|jƒ|_dd„|jDƒ|_dd„|jDƒ|_dd„|jDƒ|_dd„|jDƒ|_dd„|j Dƒ|_ dd„|j Dƒ|_ dd„|j Dƒ|_ d d„|j Dƒ|_ d d„|j Dƒ|_ d d„|jDƒ|_d S) z» HACK. I haven't been able to make sax parser return strings encoded (because of python 2) instead of in unicode. Get rid of it once we throw out python 2 support.cSsg|] }t|ƒ‘qSrJ)r )Ú.0ÚsrJrJrKú ¢sz'Zone.encode_strings..cSs g|]\}}t|ƒt|ƒf‘qSrJ)r )rVÚpoÚprrJrJrKrX£scSsg|] }t|ƒ‘qSrJ)r )rVrZrJrJrKrX¤scSsg|] }t|ƒ‘qSrJ)r )rVrIrJrJrKrX¥scSs0g|](\}}}}t|ƒt|ƒt|ƒt|ƒf‘qSrJ)r )rVZp1Zp2Zp3Zp4rJrJrKrX¦scSs g|]\}}t|ƒt|ƒf‘qSrJ)r )rVrYrZrJrJrKrX§scSsg|] }t|ƒ‘qSrJ)r )rVrIrJrJrKrX©scSsg|] }t|ƒ‘qSrJ)r )rVrWrJrJrKrXªscSsg|] }t|ƒ‘qSrJ)r )rVrWrJrJrKrX«scSsg|] }t|ƒ‘qSrJ)r )rVrWrJrJrKrX¬sN)r rrrr r!r"r)r#r%r*r&r'rPr()rSrJrJrKÚencode_stringsšs     zZone.encode_stringscsN|dkr8dd„|Dƒ|_tt|ƒj|dd„|jDƒƒntt|ƒj||ƒdS)Nr(cSsg|]}tj|d�‘qS))Zrule_str)rZ Rich_Rule)rVrWrJrJrKrX°sz$Zone.__setattr__..cSsg|] }t|ƒ‘qSrJ)Ústr)rVrWrJrJrKrX²s)rPrMrÚ __setattr__)rSr0r3)rTrJrKr]®s zZone.__setattr__cstt|ƒjƒ}|d=|S)Nr)rMrÚexport_config_dict)rSZconf)rTrJrKr^¶szZone.export_config_dictcCsLt||||ƒ|dkr.|tkr*ttj|ƒ‚�n|dkr¦xl|D]d}t|ƒsTttj|ƒ‚|jr}||j k�r�q||jj |ƒjk�rttjdj ||ƒƒ‚�qWq¶WdS)Nr r&z)interface '{}' already bound to zone '{}'r'zipset:z&source '{}' already bound to zone '{}')rrrrÚINVALID_TARGETrZINVALID_INTERFACErOZ get_zonesr0Zget_zoner&Úformatrrr Ú startswithÚ INVALID_ADDRr')rSrÚitemZ all_configr7r5r9rJrJrKÚ _check_config»s6       zZone._check_configcsÚtt|ƒj|ƒ|jdƒr,ttjd|ƒ‚nª|jdƒrHttjd|ƒ‚nŽ|jdƒdkrhttjd|ƒ‚nnd|kr„|d|j dƒ…}n|}t |ƒt ƒkr¶ttjd|t |ƒt ƒ|j fƒ‚|j rÖ||j jƒkrÖttjdƒ‚dS)Nr/z'%s' can't start with '/'z'%s' can't end with '/'ézmore than one '/' in '%s'z'Zone of '%s' has %d chars, max is %d %sz+Zones can't have the same name as a policy.)rMrÚ check_namerarrÚ INVALID_NAMEÚendswithÚcountÚfindÚlenr rQrOZget_policy_objectsZ NAME_CONFLICT)rSr0Z checked_name)rTrJrKrfÚs,      zZone.check_namec Cs²d|_d|_d|_d|_d|_x$|jD]}||jkr&|jj|ƒq&Wx$|jD]}||jkrL|jj|ƒqLWx$|jD]}||jkrr|jj|ƒqrWx$|j D]}||j kr˜|j j|ƒq˜Wx$|j D]}||j kr¾|j j|ƒq¾Wx$|j D]}||j krä|j j|ƒqäW|j �rd|_ |j �rd|_ x(|jD]}||jk�r&|jj|ƒ�q&Wx(|jD]}||jk�rP|jj|ƒ�qPWx,|jD]"} |jj| ƒ|jjt| ƒƒ�qzW|j�r®d|_dS)NTr)rQÚfilenamerrrr&Úappendr'r!r"r)r#r,r$r%r*rPr(r\r+) rSr5r7r9r6r1ÚprotoZicmpr,r8rJrJrKÚcombineôsL                  z Zone.combine)rr)rr)rr)rF)r r)rr)r$F)rrrr)rr)r+F)r,F)Ú__name__Ú __module__Ú __qualname__Ú__doc__rGZADDITIONAL_ALNUM_CHARSZPARSER_REQUIRED_ELEMENT_ATTRSZPARSER_OPTIONAL_ELEMENT_ATTRSÚ staticmethodrLrNrUr[r]r^rdrfroÚ __classcell__rJrJ)rTrKr(sx         c@s$eZdZdd„Zdd„Zdd„ZdS)Úzone_ContentHandlercCs"tj||ƒd|_d|_d|_dS)NF)rrNÚ_ruleÚ _rule_errorZ _limit_ok)rSrcrJrJrKrN s zzone_ContentHandler.__init__c Cs¤tj|||ƒ|jrdS|jj||ƒt|||ƒr6dS|dkrÂd|krVtjd|dƒd|krj|d|j_d|kr‚tjd|dƒd|kr¾|d}|t kr¦t t j |ƒ‚|dkr¾|t kr¾||j_�nÞ|d krê|jjrÞtjd ƒnd |j_�n¶|d k�rh|j�rtjd ƒd |_dSd|k�r.tjdƒd |_dS|d|jjk�rT|jjj|dƒntjd|dƒ�n8|dk�rf|j�r |jj�r tjdt|jƒƒd |_dSd}d|k�rÄ|djƒd$k�rÄd }d}}}d|k�râ|d}d|k�rô|d}d|k�r|d}tj||||d�|j_dSd|k�rBd|k�rBtjdƒdSd|k�rdd|k�rdtjdƒdSd|k�r~tjd|dƒd|k�r–tjdƒdSd|k�ràt|dƒ �ràt|dƒ �ràt|dƒ �ràt t j|dƒ‚d|k�r$d|d}||jjk�r|jjj|ƒntjd |dƒd|k�r |d}||jjk�rT|jjj|ƒntjd |dƒn:|d!k�r�|jj�r†tjd"ƒnd |j_ntjd#|ƒdSdS)%Nr5r0z'Ignoring deprecated attribute name='%s'rr=z,Ignoring deprecated attribute immutable='%s'r rr,zForward already set, ignoring.Tr7z$Invalid rule: interface use in rule.z Invalid interface: Name missing.z%Interface '%s' already set, ignoring.r9z:Invalid rule: More than one source in rule '%s', ignoring.FrAÚyesÚtruer?r@rB)rAz$Invalid source: No address no ipset.z"Invalid source: Address and ipset.r>z)Ignoring deprecated attribute family='%s'z+Invalid source: Invertion not allowed here.zipset:%sz"Source '%s' already set, ignoring.zicmp-block-inversionz+Icmp-Block-Inversion already set, ignoring.zUnknown XML element '%s')ryrz)rÚ startElementrxrcZparser_check_element_attrsrrZwarningrrrrr_r r r,rwr&rmr9r\ÚlowerrZ Rich_Sourcerrr rbr'r+) rSr0Úattrsr rAZaddrr@rBÚentryrJrJrKr{&s¼                                       z zone_ContentHandler.startElementcCstj||ƒt||ƒdS)N)rÚ endElementr)rSr0rJrJrKr–s zzone_ContentHandler.endElementN)rprqrrrNr{rrJrJrJrKrvsprvFc Cstƒ}|jdƒs ttjd|ƒ‚|dd …|_|s>|j|jƒ||_||_|j t j ƒrZdnd|_ |j |_ t|ƒ}tjƒ}|j|ƒd||f}t|dƒ�b}tjdƒ}|j|ƒy|j|ƒWn8tjk rô} zttjd| jƒƒ‚WYdd} ~ XnXWdQRX~~t�r|jƒ|S) Nz.xmlz'%s' is missing .xml suffixéFTz%s/%sÚrbznot a valid zone file: %séüÿÿÿ)rrhrrrgr0rfrlÚpathrarÚ ETC_FIREWALLDZbuiltinÚdefaultrvÚsaxZ make_parserZsetContentHandlerÚopenZ InputSourceZ setByteStreamÚparseZSAXParseExceptionZ INVALID_ZONEZ getExceptionrr[) rlrƒZ no_check_namer5ÚhandlerÚparserr0Úfr9ÚmsgrJrJrKr›s:        (c Cs\|r|n|j}|jr$d||jf}nd||jf}tjj|ƒr„ytj|d|ƒWn0tk r‚}ztj d||ƒWYdd}~XnXtjj |ƒ}|j t j ƒrÒtjj|ƒ rÒtjjt j ƒsÆtjt j dƒtj|dƒtj|ddd�}t|ƒ}|jƒi}|j�r|jd k�r|j|d <|jtk�r*|j|d <|jd |ƒ|jd ƒt||ƒx8t|jƒD]*} |jdƒ|jdd| iƒ|jd ƒ�qVWx\t|jƒD]N} |jdƒd| k�rÂ|jdd| dd…iƒn|jdd| iƒ|jd ƒ�q�W|j�r |jdƒ|jdiƒ|jd ƒ|j�r2|jdƒ|jdiƒ|jd ƒ|jd ƒ|jd ƒ|j ƒ|j!ƒ~dS)Nz%s/%sz %s/%s.xmlz%s.oldzBackup of file '%s' failed: %sièZwtzUTF-8)ÚmodeÚencodingrrr r5Ú z r7r0zipset:r9rBér?zicmp-block-inversionr,)"rƒrlr0ÚosÚexistsÚshutilZcopy2Ú ExceptionrÚerrorÚdirnamerarr„ÚmkdirÚior‡rZ startDocumentrr r r{ZignorableWhitespacerr r&Z simpleElementr'r+r,rZ endDocumentÚclose) r5rƒÚ_pathr0rŒÚdirpathr‹r‰r}r7r9rJrJrKrºs`                     )F)N)(Ú__all__Zxml.saxr†r‘r˜r“ZfirewallrZfirewall.functionsrrrr r r r Zfirewall.core.baser rZfirewall.core.io.io_objectrrrrZfirewall.core.io.policyrrrrZ firewall.corerZfirewall.core.loggerrrZfirewall.errorsrrrvrrrJrJrJrKÚs$   $    x|