mod_security 根本不起作用

mod_security 根本不起作用

我正在尝试让 mod_security 工作,我在网上搜索了很多,然后本教程配置 mod_security(我的所有配置文件都与教程相同),当我运行httpd -M | grep -Ei '(evasive|security)'它时输出

 security2_module (shared)
 evasive20_module (shared)

因此扩展正在被加载,但它根本不会阻止任何东西,也不会在日志文件中写入任何内容,我甚至将其设置SecDebugLogLevel为 9,但调试日志仍然是空白的。

我尝试过在其他模块之前、之后、中间加载这些模块,并多次重新启动 apache,但一无所获。

我正在使用 Amazon Linux(类似于 CentOS)和 Apache 2.4 Prefork。

答案1

需要更多信息才能提供帮助(来自 httpd.conf 和 modsecurity.conf 的所有相关 apache 配置)。

不过,这里有一些建议也许能帮助你自己解决问题:

您使用的是正确的 IfModule 命令吗?我使用 mod_security2.c,但不确定这是否重要:

<IfModule mod_security2.c>
    Include conf/modsecurity.conf
</IfModule>

您是否尝试过完全停止并启动 Apache(而不是平稳重启)?

完全停止并重新启动后,错误日志中是否有任何内容。它应该有一些像这样的 [:notice] 条目:

ModSecurity for Apache/2.9.0 (http://www.modsecurity.org/) configured.
ModSecurity: APR compiled version="1.5.0"; loaded version="1.5.0"
...etc.

这表明 ModSecurity 已加载。

错误日志文件中是否有 PCRE 错误(如果 ModSecurity 是使用与 Apache 不同的 PRCE 版本编译的,则可能会发生这种情况)?对 httpd 和 mod_security.so 运行 ldd 命令以确保它们匹配。仅供参考,当我在工作版本上运行“httpd -M”命令时,没有显示任何安全模块 - 我想是因为除非运行 Include,否则不会加载它。

调试日志是否已创建但为空?如果已创建,则表明 ModSecurity 本身正在加载。

您的 Apache 设置是否全部位于 /etc/httpd/conf 目录中,就像您使用的指南所建议的那样?安装多个版本的 Apache 并不罕见,而您正在编辑配置的版本并不是正在使用的版本 :-)

我推荐 Ivan Ristic 的 ModSecurity 手册,其中的试用版可免费获取:https://www.feistyduck.com/library/modsecurity-handbook-free/本书涵盖了安装。Ivan 最初编写了 ModSecurity,因此我建议购买整本书。这本书落后了几个版本,但仍然很实用。本书未涵盖的主要变化是规则 ID 现在是强制性的。

相关内容