防止在 mod_security 日志中记录 127.0.0.1 的问题

防止在 mod_security 日志中记录 127.0.0.1 的问题

我正在尝试配置 modsecurity 以不记录来自 127.0.0.1 的任何问题,但是我对以下规则没有运气。

SecRule REMOTE_ADDR "@ipMatch 127.0.0.1" "id:26091975,phase:2,pass,nolog,allow,ctl:ruleEngine=Off"
SecRule REMOTE_ADDR "^127.0.0.1" "id:26091975,phase:2,pass,nolog,allow,ctl:ruleEngine=Off"
SecRule REMOTE_ADDR "^127.0.0.1" phase:1,nolog,allow,ctl:ruleEngine=off

然而我的日志仍然充斥着来自 127.0.0.1 的条目。

我针对其他 IP 的规则和特定规则运行良好,似乎只有当它们源自本地主机时才如此。

#Versions
ModSecurity for Apache/2.6.3 (http://www.modsecurity.org/)
ModSecurity: APR compiled version="1.4.6"; loaded version="1.4.6"
ModSecurity: PCRE compiled version="8.12"; loaded version="8.12 2011-01-15"
ModSecurity: LUA compiled version="Lua 5.1"
ModSecurity: LIBXML compiled version="2.7.8"

答案1

几点建议:

您应该使用allow(结束此请求的当前规则处理)而不是pass(跳过此规则并继续处理下一条规则)。目前,您在其中一些规则中同时遇到了这两种情况,但不确定这会导致什么问题。

理论上,一旦处理了 ctl:ruleEngine=off,它就不应该传递给下一个规则,因此上述内容可能无关紧要,但正确执行它也没有坏处。

您应该确保您的跳过规则是第 1 阶段。当前,您有第 1 阶段和第 2 阶段的混合。

你应该确保这些跳过规则是第一的规则已处理。这样其他规则就不会被处理了。不过说实话,我不确定关闭审计引擎后之前处理的规则是否会被记录。

我还会将 nolog 改为临时记录,以查看这些规则是否正在被处理。

您还可以打开调试日志记录,查看规则处理时发生的情况(REMOTE_ADDR 是否由于某种原因不匹配?)。它们会生成详细日志,尤其是在高调试级别。

希望这能给你一些指引,但如果这没有帮助,那么请修改你的问题,并提供上述内容的更多细节,也许能提供更多帮助。还要说的是,ModSecurity 2.6.3 现在非常旧了,可能需要升级。

您能分享一些触发的规则吗?与这些跳过规则相比,它们位于哪里?您能分享您的其他 ModSecurity 配置吗?

相关内容