V4| B d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ d dl m Z mZmZ d dl mZmZ d dlmZ d dlmZ d d lmZ d dlmZ d dlmZ d d lmZ d dlmZmZ d dlm Z m!Z! d dl"m#Z# ej$ e% Z&dZ'dZ( G d de) Z*de+fdZ,d Z-de+fdZ.d Z/dS ) N)CancelledError)Version)Path)BACKUP_EXTENSION CheckRunErroratomic_rewrite)MODSECIndex) web_server)APACHE)GenericPanel )map_components_versions_to_tags)HostingPanel)CorazaModSecurity)safe_update_configgraceful_restart)is_apache2nginx_enableduse_coraza4cpanel)is_force_use_corazazD/var/lib/cloudlinux-app-version-detector/components_versions.sqlite3ztags_matching.jsonc e Zd ZdS )NotSupportedWebserverErrorN)__name__ __module____qualname__ X/opt/imunify360/venv/lib/python3.11/site-packages/im360/subsys/waf_rules_configurator.pyr r $ s Dr r returnc K t } t st st rdS | d{V }t | t r|t k S |t k rdS t j d{V }t j d{V }n=# t $ r t $ r&}t d| Y d}~dS d}~ww xY w|t d k od|v S )zApache >= 2.4 is supported and security2_module installed. - litespeed is not supported - nginx is not supported Apache is expected to be running, otherwise False is returned In case of any error, False is returned also TNFz-Error occurs while getting Apache version: %sz2.4s security2_module)r r r r get_web_server isinstancer r r apache_versionapache_modulesr Exceptionloggererrorr )hp webserverversionmodulesexcs r is_webserver_supportedr- ( sS B "$$ t''))))))))I"l## # F""Fu"133333333"133333333 DcJJJuuuuu genn$G)<)GGs 2B8 8C2C--C2c R K t d{V st d t } t | }t | t }t | }| o| |k }|sf|r0t ||d rt d dS dS t || d{V rt d dS dS t d dS )zO Update modsec config file with enabled tags for specific directories. NzkWAF rules configurator supports only apache webserver with version >= 2.4 or apache2nginx and ModSecurity 2F)backupz2App specific rules config was successfully updatedz-WAF Rules Set Config was successfully updatedz*WAF Rules Set Config is already up to date)r- r r r get_app_specific_waf_configr" r _rules_configexists read_textr r&