HEX
Server: LiteSpeed
System: Linux php-prod-1.spaceapp.ru 5.15.0-157-generic #167-Ubuntu SMP Wed Sep 17 21:35:53 UTC 2025 x86_64
User: xnsbb3110 (1041)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/local/CyberCP/plogical/__pycache__/modSec.cpython-310.pyc
o

��h�j�@s�ddlZej�d�ddlmZddlZddlZddlZddl	m
Z
ddlZddlZddl
Z
ddlmZddlmZddlmZGdd	�d	�Zd
d�ZedkrTe�dSdS)
�Nz/usr/local/CyberCP)�CyberCPLogFileWriter)�virtualHostUtilities)�
mailUtilities)�ProcessUtilities)�installUtilitiesc@s�eZdZdZdZdZedd��Zedd��Zedd	��Z	ed
d��Z
edd
��Zedd��Zedd��Z
edd��Zedd��Zedd��Zedd��Zedd��ZdS)�modSecz!/home/cyberpanel/modSecInstallLogz /home/cyberpanel/tempModSecRuleszcyberpanel.netc
Cs
zgt��t��tjkst��tjkrd}nd}t�|�}tt	j
d��}tj||d�}Wd�n1s5wY|dkrVtt	j
d�}|�
d�|��tj�d�Wd	Stt	j
d�}|�
d
�|��WdSty�}ztj�t|�d�WYd}~dSd}~ww)Nz#sudo yum install ols-modsecurity -yzFsudo DEBIAN_FRONTEND=noninteractive apt-get install ols-modsecurity -y�w)�stdout��azCan not be installed.[404]
z[Could not Install]rzModSecurity Installed.[200]
z[installModSec])r�	checkHomer�decideDistro�centos�cent8�shlex�split�openr�installLogPath�
subprocess�call�
writelines�close�loggingr�writeToFile�
BaseException�str)�command�cmd�f�resr�msg�r!�%/usr/local/CyberCP/plogical/modSec.py�
installModSecs.
�

"��zmodSec.installModSecc
Cs:zwtj�tjd�}zt�|�Wn
tj�d�Yd}tj�tjd�}t	|��
�}|��d}|D]
}|�d�dkr@d}nq3|dkrSt	|d	�}|�
|�|��tj�tjd
�}tj�|�sqd}t	|d	�}	|	�
|�|	��td�WdSty�}
ztj�t|
�d
�tdt|
��WYd}
~
dSd}
~
ww)N�conf/modseczCModSecurity rules directory already exists.  [installModSecConfigs]ag
module mod_security {
modsecurity  on
modsecurity_rules `
SecDebugLogLevel 0
SecDebugLog /usr/local/lsws/logs/modsec.log
SecAuditEngine on
SecAuditLogRelevantStatus "^(?:5|4(?!04))"
SecAuditLogParts AFH
SecAuditLogType Serial
SecAuditLog /usr/local/lsws/logs/auditmodsec.log
SecRuleEngine On
`
modsecurity_rules_file /usr/local/lsws/conf/modsec/rules.conf
}
�conf/httpd_config.confFzmodule mod_security���Tza+�conf/modsec/rules.confzdSecRule ARGS "\.\./" "t:normalisePathWin,id:99999,severity:4,msg:'Drive Access' ,log,auditlog,deny"
�1,Nonez  [installModSecConfigs]�0,)�os�path�joinr�Server_root�mkdirrrrr�	readlines�reverse�find�writer�exists�printrr)r+�initialConfigs�confFile�confData�modSecConfigFlag�items�conf�
rulesFilePath�initialRules�ruler r!r!r"�installModSecConfigs4sJ��




���zmodSec.installModSecConfigsc
Cs��z/t|���}t�|�t��tjkr�tj�t	j
d�}t|���}t|d�}|D]p}|�d�dkr:|�|d�q)|�d�dkrI|�|d�q)|�d�dkrX|�|d	�q)|�d
�dkrg|�|d�q)|�d�dkrv|�|d
�q)|�d�dkr�|�|d�q)|�d�dkr�|�|d�q)|�|�q)|�
�t��td�WdStj�t	j
d�}t|���}t|d�}|D]c}|�d�dkr�|�|d�q�|�d�dkr�|�|d�q�|�d
�dkr�|�|d	�q�|�d�dkr�|�|d�q�|�d�dk�r|�|d�q�|�d�dk�r|�|d
�q�|�|�q�|�
�t��td�WdSt�yV}ztj�t|�d�tdt|��WYd}~dSd}~ww)Nr%rzmodsecurity r&rzSecAuditEngine r
zSecRuleEngine ��SecDebugLogLevel�zSecAuditLogRelevantStatus �zSecAuditLogParts �zSecAuditLogType �r(zconf/modsec.confz  [saveModSecConfigs]r))rr/r*�remover�decideServer�OLSr+r,rr-r1rrr�reStartLiteSpeedr4rrrrr)�tempConfigPath�datar6r7r:r9r r!r!r"�saveModSecConfigsrs�



���zmodSec.saveModSecConfigsc
Cs�z?ttjd�}|��}|��t��tjkrtj	�
tjd�}ntj	�
tjd�}t|d�}|�
|�|��t��td�WdStyd}ztj�t|�d�tdt|��WYd}~dSd}~ww)N�rr'zconf/rules.confrr(z  [saveModSecRules]r))rr�
tempRulesFile�readrrrFrGr*r+r,rr-r2rrHr4rrrrr)�	rulesFilerJr;r r!r!r"�saveModSecRules�s(


���zmodSec.saveModSecRulesc
Cs`z�t��tjkrUtj�tjd�}tj�tjd�}tj�|�r#t	�
|�tj�d�r.t�d�dtj
d}t�t�|��}|dkrDWdSt�d�}|�|�|��WdStj�d�r`t	�
d�tj�tjd	�}tj�d
�rst�d
�d}t�t�|��}|dkr�WdSd|}t�t�|��WdSty�}ztj�t|�d
�WYd}~dSd}~ww)Nzconf/modsec/comodor$z
comodo.tar.gzz
wget https://z/modsec/comodo.tar.gzr
r�%/usr/local/lsws/conf/comodo_litespeedr:�cpanel_litespeed_vendorz7wget https://waf.comodo.com/api/cpanel_litespeed_vendor�!unzip cpanel_litespeed_vendor -d z  [setupComodoRules])rrFrGr*r+r,rr-r3�shutil�rmtreerEr�
mirrorPathrrrr�tarfiler�
extractallrrrrrr)�pathTOOWASPFolder�extractLocationr�result�tarr r!r!r"�setupComodoRules�sF






���zmodSec.setupComodoRulesc	
Cs�z�t��tjkrUt��dkrtd�WdSd}tj�t	j
d�}t|���}t|d�}|D]}|�
d�dkr@|�|�|�|�q,|�|�q,|��t��td�WdStj�d	�r`t�d	�tj�t	j
d
�}tj�d�rst�d�d}t�t�|��}|d
kr�WdSd|}t�t�|��}d}t�t�|��t��td�WdSty�}ztj�t|�d�tdt|��WYd}~dSd}~ww)Nrz#0, Unable to download Comodo Rules.a
modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/modsecurity.conf
    modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/00_Init_Initialization.conf
    modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/01_Init_AppsInitialization.conf
    modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/02_Global_Generic.conf
    modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/03_Global_Agents.conf
    modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/04_Global_Domains.conf
    modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/05_Global_Backdoor.conf
    modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/06_XSS_XSS.conf
    modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/07_Global_Other.conf
    modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/08_Bruteforce_Bruteforce.conf
    modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/09_HTTP_HTTP.conf
    modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/10_HTTP_HTTPDoS.conf
    modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/11_HTTP_Protocol.conf
    modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/12_HTTP_Request.conf
    modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/13_Outgoing_FilterGen.conf
    modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/14_Outgoing_FilterASP.conf
    modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/15_Outgoing_FilterPHP.conf
    modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/16_Outgoing_FilterSQL.conf
    modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/17_Outgoing_FilterOther.conf
    modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/18_Outgoing_FilterInFrame.conf
    modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/19_Outgoing_FiltersEnd.conf
    modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/20_PHP_PHPGen.conf
    modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/21_SQL_SQLi.conf
    modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/22_Apps_Joomla.conf
    modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/23_Apps_JComponent.conf
    modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/24_Apps_WordPress.conf
    modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/25_Apps_WPPlugin.conf
    modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/26_Apps_WHMCS.conf
    modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/27_Apps_Drupal.conf
    modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/28_Apps_OtherApps.conf
    r%r�&/usr/local/lsws/conf/modsec/rules.confr&r(rQr:rRzNwget --no-check-certificate https://waf.comodo.com/api/cpanel_litespeed_vendorr
rSz.sudo chown -R lsadm:lsadm /usr/local/lsws/confz  [installComodo]r)) rrFrGrr]r4r*r+r,rr-rr/r1r2rrrrHr3rTrUrErrrrrrrrr)	�owaspRulesConfr6r7r:r9rZrr[r r!r!r"�
installComodosT 





���zmodSec.installComodoc
Cs zjt��tjkr<tj�tjd�}t|��	�}t|d�}|D]}|�
d�dkr'q|�|�q|��t
��td�WdSzt�d�Wnty_}ztj�t|�d�WYd}~nd}~wwt
��td�WdSty�}ztj�t|�d�td	t|��WYd}~dSd}~ww)
Nr%rz
modsec/comodor&r(rQz [disableComodo]z  [disableComodo]r))rrFrGr*r+r,rr-rr/r1rrrrHr4rTrUrrrrr�r6r7r:r9r r!r!r"�
disableComodols6
 ��
���zmodSec.disableComodoc
Cs�z�tj�tjd�}dtj}d}t�t�	|��}|dkrWdStj�
|�r*t�|�tj�
|�r5t�|�tj�
d�r@t�
d�d}t�t�	|��}|dkrQWdSd}t�t�	|��}|dkrbWdSd}t�t�	|��}|dkrsWdSd	||f}t�t�	|��}|dkr�WdSd
||f}t�t�	|��}|dkr�WdSd||f}t�t�	|��}|dkr�WdSd}td
|d�}|�|�d|��|��WdSty�}ztt|��tj�t|�d�WYd}~dSd}~ww)Nzconf/modsec/owaspz*%s/modsec/owasp-modsecurity-crs-3.0-masterz$mkdir -p /usr/local/lsws/conf/modsecrzowasp.tar.gzzrwget https://github.com/coreruleset/coreruleset/archive/v3.3.2/master.zip -O /usr/local/lsws/conf/modsec/owasp.zipzNunzip -o /usr/local/lsws/conf/modsec/owasp.zip -d /usr/local/lsws/conf/modsec/zmmv /usr/local/lsws/conf/modsec/coreruleset-3.3.2 /usr/local/lsws/conf/modsec/owasp-modsecurity-crs-3.0-masterz.mv %s/crs-setup.conf.example %s/crs-setup.confztmv %s/rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example %s/rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.confztmv %s/rules/RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf.example %s/rules/RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.confaYinclude {pathToOWASFolderNew}/crs-setup.conf
include {pathToOWASFolderNew}/rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf
include {pathToOWASFolderNew}/rules/REQUEST-901-INITIALIZATION.conf
include {pathToOWASFolderNew}/rules/REQUEST-905-COMMON-EXCEPTIONS.conf
include {pathToOWASFolderNew}/rules/REQUEST-910-IP-REPUTATION.conf
include {pathToOWASFolderNew}/rules/REQUEST-911-METHOD-ENFORCEMENT.conf
include {pathToOWASFolderNew}/rules/REQUEST-912-DOS-PROTECTION.conf
include {pathToOWASFolderNew}/rules/REQUEST-913-SCANNER-DETECTION.conf
include {pathToOWASFolderNew}/rules/REQUEST-920-PROTOCOL-ENFORCEMENT.conf
include {pathToOWASFolderNew}/rules/REQUEST-921-PROTOCOL-ATTACK.conf
include {pathToOWASFolderNew}/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf
include {pathToOWASFolderNew}/rules/REQUEST-931-APPLICATION-ATTACK-RFI.conf
include {pathToOWASFolderNew}/rules/REQUEST-932-APPLICATION-ATTACK-RCE.conf
include {pathToOWASFolderNew}/rules/REQUEST-933-APPLICATION-ATTACK-PHP.conf
include {pathToOWASFolderNew}/rules/REQUEST-941-APPLICATION-ATTACK-XSS.conf
include {pathToOWASFolderNew}/rules/REQUEST-942-APPLICATION-ATTACK-SQLI.conf
include {pathToOWASFolderNew}/rules/REQUEST-943-APPLICATION-ATTACK-SESSION-FIXATION.conf
include {pathToOWASFolderNew}/rules/REQUEST-949-BLOCKING-EVALUATION.conf
include {pathToOWASFolderNew}/rules/RESPONSE-950-DATA-LEAKAGES.conf
include {pathToOWASFolderNew}/rules/RESPONSE-951-DATA-LEAKAGES-SQL.conf
include {pathToOWASFolderNew}/rules/RESPONSE-952-DATA-LEAKAGES-JAVA.conf
include {pathToOWASFolderNew}/rules/RESPONSE-953-DATA-LEAKAGES-PHP.conf
include {pathToOWASFolderNew}/rules/RESPONSE-954-DATA-LEAKAGES-IIS.conf
include {pathToOWASFolderNew}/rules/RESPONSE-959-BLOCKING-EVALUATION.conf
include {pathToOWASFolderNew}/rules/RESPONSE-980-CORRELATION.conf
include {pathToOWASFolderNew}/rules/RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf
z%s/owasp-master.confrz{pathToOWASFolderNew}r
z  [setupOWASPRules])r*r+r,rr-�
vhostConfPathrrrrr3rTrUrErr2�replacerrr4rrrr)rY�pathToOWASFolderNewrr[�contentrr r!r!r"�setupOWASPRules�sh



�
���zmodSec.setupOWASPRulesc
CsXz�t��dkrtd�WdSt��tjkrKd}tj�t	j
d�}t|���}t|d�}|D]}|�
d�dkr@|�|�|�|�q,|�|�q,|��n1tj�d�}t|���}t|d�}|D]}|�
d	�dkrr|�|�|�d
�q^|�|�q^|��t��td�WdSty�}ztj�t|�d�td
t|��WYd}~dSd}~ww)Nrz"0, Unable to download OWASP Rules.zg
modsecurity_rules_file /usr/local/lsws/conf/modsec/owasp-modsecurity-crs-3.0-master/owasp-master.conf
r%rr^r&� /usr/local/lsws/conf/modsec.confz/conf/comodo_litespeed/zLInclude /usr/local/lsws/conf/modsec/owasp-modsecurity-crs-3.0-master/*.conf
r(z  [installOWASP]r))rrgr4rrFrGr*r+r,rr-rr/r1rr2rrrHrrrrr)r_r6r7r:r9r r!r!r"�installOWASP�sF







���zmodSec.installOWASPc
Cs&zmt��tjkr<tj�tjd�}t|��	�}t|d�}|D]}|�
d�dkr'q|�|�q|��t
��td�WdStj�d�}t|��	�}t|d�}|D]}|�
d�dkrYqO|�|�qO|��t
��td�WdSty�}ztj�t|�d�tdt|��WYd}~dSd}~ww)	Nr%rzmodsec/owaspr&r(rhz  [disableOWASP]r))rrFrGr*r+r,rr-rr/r1rrrrHr4rrrrrrar!r!r"�disableOWASP#s:


���zmodSec.disableOWASPc
Cs�zBtj�d�}t|���}t|d�}|D]}|�d|�dkr.|�|�dkr.|�d|�q|�|�q|��t	�
�td�WdStyg}zt
j�t|�d�tdt|��WYd}~dSd}~ww)	N�N/usr/local/lsws/conf/modsec/owasp-modsecurity-crs-3.0-master/owasp-master.confr�modsec/r&�#r(z  [disableRuleFile]r))r*r+r,rr/r1r2rrrrHr4rrrrr��fileName�packNamer6r7r:r9r r!r!r"�disableRuleFileJs$
 
���zmodSec.disableRuleFilec
Cs�zCtj�d�}t|���}t|d�}|D] }|�d|�dkr/|�|�dkr/|�|�d��q|�|�q|�	�t
��td�WdSt
yh}ztj�t|�d�tdt|��WYd}~dSd}~ww)	Nrkrrlr&rmr(z  [enableRuleFile]r))r*r+r,rr/r1r2�lstriprrrrHr4rrrrrrnr!r!r"�enableRuleFilecs$
 
���zmodSec.enableRuleFileN)�__name__�
__module__�__qualname__rrMrV�staticmethodr#r>rKrPr]r`rbrgrirjrqrsr!r!r!r"rs8

=
T

0
Y
"
_
3
&
rcCsltjdd�}|jddd�|jddd�|jdd	d�|jd
dd�|��}|jdkr1t��dS|jd
kr<t��dS|jdkrIt�|j	�dS|jdkrTt�
�dS|jdkr_t��dS|jdkrjt��dS|jdkrut�
�dS|jdkr�t��dS|jdkr�t��dS|jdkr�t��dS|jdkr�t�|j|j�dS|jdkr�t�|j|j�dSdS)NzCyberPanel Installer)�description�functionzSpecific a function to call!)�helpz--tempConfigPathz&Temporary path to configurations data!z
--packNamezModSecurity supplier name!z
--fileNamezFilename to enable or disable!r>r#rKrPrgrirjr]r`rbrqrs)�argparse�ArgumentParser�add_argument�
parse_argsryrr>r#rKrIrPrgrirjr]r`rbrqrorprs)�parser�argsr!r!r"�main�s>











�r��__main__)�sysr+�append�plogicalrrrrr{�plogical.virtualHostUtilitiesrr*rWrT�plogical.mailUtilitiesr�plogical.processUtilitiesr�plogical.installUtilitiesrrr�rtr!r!r!r"�<module>s.$
�