
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
U
    &E-dË?  ã                   @   s|   d dl Z d dlZd dlmZ dZdZdZdZdZdZ	dZ
d	d
„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )é    N)ÚHostingPanelÚFULLÚMINIMALéú   é   ÚDENYÚALLOWc                 C   s   t  t| ¡S ©N)Ú	functoolsÚpartialÚmax)Zminimum© r   ú?/opt/imunify360/venv/share/imunify360/config_schema/firewall.pyÚnot_less_than   s    r   c                 C   s"   t ttdd„ | D ƒƒƒdd„ d�S )Nc                 S   s   g | ]}|  d d¡‘qS )ú:ú-)Úreplace)Ú.0Úvr   r   r   Ú
<listcomp>   s     z%coerce_sort_ports.<locals>.<listcomp>c                 S   s   t |  d¡d ƒS )Nr   r   )ÚintÚrsplit)r   r   r   r   Ú<lambda>   ó    z#coerce_sort_ports.<locals>.<lambda>)Úkey)ÚsortedÚlistÚset©Úvaluer   r   r   Úcoerce_sort_ports   s    þr    c                 C   s   t ƒ j|  | S r	   )r   Z
OPEN_PORTS)ÚprotocolÚ	directionr   r   r   Úget_default_ports   s    r#   c                 C   sp   dd„ }t  d|¡}|s&|| dƒ dS || d¡ƒsB|| dƒ dS | d¡dk	rl|| d¡ƒsl|| dƒ dS dS )	z
    {'type': 'boolean'}
    c                 S   s   dt | ƒ  kodkS   S )Nr   éÿÿ  )r   )Úportr   r   r   Úin_range$   s    z,_validate_is_port_or_range.<locals>.in_rangez^(\d+)([:|-](\d+))?$z,Port should be integer or range (2-4 or 2:4)Nr   z#Port should be within range 0-65535é   )ÚreÚmatchÚgroup)Úfieldr   Úerrorr&   Úportsr   r   r   Ú_validate_is_port_or_range   s    


r.   c                    s   ddt dœ‡ ‡fdd„tdœS )Nr   Ústring)ÚtypeÚ
check_withc                    s
   t ˆˆ ƒS r	   )r#   r   ©r"   Úprotor   r   r   :   r   zlist_of_ports.<locals>.<lambda>)r0   ÚschemaÚdefault_setterÚcoerce)r.   r    )r3   r"   r   r2   r   Úlist_of_ports3   s    þùr7   c                 C   s$   d| kr | d r d| d< d| d< | S )NÚphp_immunityÚKILLÚmodeTÚblamerr   )Zproactive_defenser   r   r   Úproactive_defense_rules?   s    ÿþr<   c                   C   sì  ddt ddddœdt ddddœdœi dœdd	d d
dœd	d d
dœdg dœdœi dœdi d	tttgdœtddƒtddƒtddƒtddƒdddœdœdœddt ttƒfttdœdt ttƒfdddœddt dddœdt ttƒftdœi dœdd
dœdœi dœddd
dœd	tt	tgdœdddd œd	dd!d"œd#œi dœddd
dœdt dd$dœdt dd%dœdt dd&d$dœdt dd$dœd'œi dœddt d(œddt dd$dœdt dd%dœd)œd*œd%d+d,œd%d+d,œd-œdœddt dd.dœdt dd/dœdt dd0dœdt d1d+dœd2œi dœddd3dig dœdd3dig dœd4œi dœdd5dd6dœii dœddd
dœdd7dœdd.dœdd8dœd9œi dœdd:d	d;d;d<gdœii dœdd=dddœii dœdt
tfd	dd>d?d>d@gdAœddd
d œdddd œdBœi dCœddd
dœddd
d œd	d!dœd	d!dœdd
dœdddœdDœi dœddEdddd œii dœddFdddd œii dœdddd
d œddd
d œdddd œdddd œdGœi dœddHdddd œii dœddddœddt d(œdIdJdKgdœdd3d	ig dœdd3d	idLgdœdddœdddœdMœi dœddddœdd
dœdNœi dœdOœS )PNÚdictÚintegerr   ip i   )r0   r6   Úminr   Údefault)ÚtimeoutZafter_unblock_timeout©r0   r4   r@   r/   T)r0   r@   Únullabler   )r0   r@   )Z
eth_deviceZeth6_deviceZeth_device_skip)r0   r@   ÚallowedÚtcpÚinÚoutÚudpÚbooleanF)Zport_blocking_modeZTCP_IN_IPv4ZTCP_OUT_IPv4ZUDP_IN_IPv4ZUDP_OUT_IPv4Zinternal_use_remote_iplist)r0   r@   r4   )r0   r6   r?   r@   r   é   r$   )r0   r6   r?   r   )r0   r6   r?   )r0   Ú	keyschemaÚvalueschemar@   )Zdefault_limitÚintervalZport_limitsÚenabled©r0   rC   r@   Ú )r0   Úrequiredr@   )Zapp_specific_rulesetZrulesetZ!cms_account_compromise_preventionZprev_settingsé   éx   é   )ÚenableÚmax_incidentsÚcheck_periodZseverity_limitZdenied_num_limit)r0   r6   )rV   rW   )r0   r4   é
   )rW   rV   )i4‚  i;‚  éd   i † é   é   )Znum_daysÚlimitZmin_log_levelZui_autorefresh_timeoutr0   )Z
http_portsZhttps_portsZcert_refresh_timeouti  i`T  i / )rN   Z
time_frameÚ	max_countrA   Zdefault_moderD   ZdeniedZmodsec_directivesÚLOGÚDISABLEDr9   )r0   rC   r@   rD   )r:   r;   r8   )r0   r6   r4   r@   )rU   Zknown_proxies_supportZcaptcha_site_keyZcaptcha_secret_keyZsplash_screenZinvisible_captchaZactive_responseZcatch_lfd_events)rU   Zexim_dovecot_protectionZexim_dovecot_nativeZftp_protectionÚedfé   iK  iÑ  Zmail)rU   r-   Zallow_usersZallow_groupsZallow_localZredirect)Zcompromised_user_password_resetZ#compromised_user_admin_notification)ZAUTO_WHITELISTZNETWORK_INTERFACEZFIREWALLZDOSZMOD_SECZMOD_SEC_BLOCK_BY_SEVERITYZMOD_SEC_BLOCK_BY_CUSTOM_RULEZINCIDENT_LOGGINGZWEB_SERVICESZCAPTCHAZCAPTCHA_DOSZBLOCKED_PORTSZSTOP_MANAGINGÚPROACTIVE_DEFENCEZ	WEBSHIELDZOSSECZCSF_INTEGRATIONZPAMÚ
KERNELCAREZSMTP_BLOCKINGÚCONTROL_PANEL)r   ÚPORT_BLOCKING_MODE_ALLOWÚPORT_BLOCKING_MODE_DENYr7   r   Ú_DOS_DETECTOR_MIN_LIMITÚ_DOS_DETECTOR_DEFAULT_LIMITÚ_DOS_DETECTOR_MIN_INTERVALÚMODSEC_RULESET_FULLÚMODSEC_RULESET_MINIMALr=   r<   r   r   r   r   Úget_root_configI   s¶   ûûøîýýõñþýþòý
ü
üüþúðþá$Ú)þýýýñéþüüûüèß$þüüùþþéüüüüíäýýúò ÿûþþöòýÿ÷þÿøüýýôëýþþþþíæýÿ÷ýÿ÷ýýýýðèýÿ÷þþú	 ÿû ÿûþþá$Ú)þþû
ô€ € € Órl   c                   C   s.   dddddddgd dœd	dd d
œdœi dœiS )Nrb   r=   r/   Tr_   r^   r9   )r0   rC   rD   r@   rI   rO   )r:   r;   rB   r   r   r   r   r   Úget_non_root_config  s    üýùñÿrm   )r
   r(   Z+defence360agent.subsys.panels.hosting_panelr   rj   rk   rh   rg   ri   rf   re   r   r    r#   r.   r7   r<   rl   rm   r   r   r   r   Ú<module>   s(   
   B