ModSecurity 不会应用规则 - 没有错误日志条目

ModSecurity 不会应用规则 - 没有错误日志条目

我全新安装了 CentOS 8。我从 repo 安装了 Apache 2.4.37。然后安装了最新的 ModSecurity:

dnf install mod_security -y

检查安装

dnf info mod_security

结果:

Name         : mod_security
Version      : 2.9.2

所需的 Apache 模块可用/已加载:

apachectl -M | grep security -> security2_module (shared)
apachectl -M | grep unique -> unique_id_module (shared)

从 repo 安装核心规则集:

dnf install mod_security_crs

它会自动将规则链接到 apache 文件夹

/etc/httpd/modsecurity.d/activated_rules

规则已经检查/到位。

主配置文件

/etc/httpd/conf.d/mod_security.conf

包括必要的进一步配置文件,包括规则配置文件本身:

IncludeOptional /etc/httpd/modsecurity.d/crs-setup.conf
IncludeOptional /etc/httpd/modsecurity.d/activated_rules/*.conf
IncludeOptional /etc/httpd/modsecurity.d/local_rules/*.conf

(路径已经仔细检查)并激活规则引擎:

SecRuleEngine On

规则配置文件modsecurity.d/crs-setup.conf(包含在 中mod_security.conf,见上文)提供

SecDefaultAction "phase:1,log,auditlog,deny,status:403"
SecDefaultAction "phase:2,log,auditlog,deny,status:403"

Apache httpd.conf 调用 ModSecurity:

SecStatusEngine On

重新启动(apachectl restart)表明 ModSecurity 已成功加载:

ModSecurity: StatusEngine call successfully sent. <-- including LUA etc.

使用脚本插入等操纵 URL 进行测试:

/?q=%22%3E%3Cscript%3Ealert(1)%3C/script%3E%27

ModSecurity 方面没有任何反应。ModSecuritie 的审计和调试日志文件中没有任何条目(调试级别设置为 3),Apache 的日志文件中也没有错误。

答案1

我只是省略了 Apache httpd.conf 中的 conf.d 目录。这就是 ModSecurity 引擎可以启动但无法读取任何规则的原因。

我添加了行

IncludeOptional /etc/httpd/conf.d/*.conf

在 httpd.conf 中,一切都按预期运行。

相关内容