1

我想知道 ModSecurity Apache2 模块(版本 2.9.1)中是否有某种方式如何将错误消息记录到由 SecDebugLog 选项指定的日志文件中,但将它们复制到标准的 Apache 错误日志文件中?

根据 ModSecurity 文档,错误消息在两个日志文件中总是加倍:级别 1-3 的消息被设计为有意义,并被复制到 Apache 的错误日志中。但我想把 ModSecurity 的东西分开,不要弄乱标准错误日志。

4

1 回答 1

2

您可以log从任何规则中删除,然后离开auditlog

如果使用 OWASP CRS,则更改默认操作:

SecDefaultAction "phase:1,deny,log"
SecDefaultAction "phase:2,deny,log"

对此:

SecDefaultAction "phase:1,deny,nolog,auditlog"
SecDefaultAction "phase:2,deny,nolog,auditlog"

这将关闭所有日志记录,但随后再次打开审计日志记录。

您可能还想为第 3 阶段和第 4 阶段添加类似内容,具体取决于您是否还检查出站流量。

但是,出于多种原因,我真的,真的,真的要小心谨慎:

  1. 您最终将使用 ModSecurity 规则阻止某些事情,并想知道它为什么会发生并跳过审核日志并责怪 Apache。相信我。“当我看到页面存在时,为什么这个请求返回 403?!?!” 至少如果在错误日志中,那么您还有机会了解为什么会这样。

  2. 错误日志中的条目在一行中。这使得在 Splunk 等工具中收集、解析和处理错误变得更加容易。审计日志分布在几行中,因此机器可读性较差。而且您应该定期查看您的 WAF 日志,而不仅仅是假设它工作正常并且只在出现问题时查看日志。也许不是每个日志级别的详细信息,而是总结。ModSecurity 的原始创建者 Ivan Ristic最近在推特上写道:

“如果你没有将 WAF 用作 IDS,那你就错了。”

  1. 这些都是错误。因此,错误日志是他们的正确位置。如果您无法解释错误,那么审计日志是获取额外详细信息的有用地方。
于 2017-06-07T18:45:12.760 回答