我想知道 ModSecurity Apache2 模块(版本 2.9.1)中是否有某种方式如何将错误消息记录到由 SecDebugLog 选项指定的日志文件中,但不将它们复制到标准的 Apache 错误日志文件中?
根据 ModSecurity 文档,错误消息在两个日志文件中总是加倍:级别 1-3 的消息被设计为有意义,并被复制到 Apache 的错误日志中。但我想把 ModSecurity 的东西分开,不要弄乱标准错误日志。
我想知道 ModSecurity Apache2 模块(版本 2.9.1)中是否有某种方式如何将错误消息记录到由 SecDebugLog 选项指定的日志文件中,但不将它们复制到标准的 Apache 错误日志文件中?
根据 ModSecurity 文档,错误消息在两个日志文件中总是加倍:级别 1-3 的消息被设计为有意义,并被复制到 Apache 的错误日志中。但我想把 ModSecurity 的东西分开,不要弄乱标准错误日志。
您可以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 阶段添加类似内容,具体取决于您是否还检查出站流量。
但是,出于多种原因,我真的,真的,真的要小心谨慎:
您最终将使用 ModSecurity 规则阻止某些事情,并想知道它为什么会发生并跳过审核日志并责怪 Apache。相信我。“当我看到页面存在时,为什么这个请求返回 403?!?!” 至少如果在错误日志中,那么您还有机会了解为什么会这样。
错误日志中的条目在一行中。这使得在 Splunk 等工具中收集、解析和处理错误变得更加容易。审计日志分布在几行中,因此机器可读性较差。而且您应该定期查看您的 WAF 日志,而不仅仅是假设它工作正常并且只在出现问题时查看日志。也许不是每个日志级别的详细信息,而是总结。ModSecurity 的原始创建者 Ivan Ristic最近在推特上写道:
“如果你没有将 WAF 用作 IDS,那你就错了。”