![根据每个事务更改 ModSecurity 日志记录](https://linux22.com/image/641544/%E6%A0%B9%E6%8D%AE%E6%AF%8F%E4%B8%AA%E4%BA%8B%E5%8A%A1%E6%9B%B4%E6%94%B9%20ModSecurity%20%E6%97%A5%E5%BF%97%E8%AE%B0%E5%BD%95.png)
我正在尝试追踪共享托管服务器上对网站的所有请求。数据包捕获太麻烦了。
我们使用 Mod Security (2.8),效果很好,尽管由于负载,我们只启用了有限的日志记录
SecAuditEngine RelevantOnly
SecAuditLogRelevantStatus "^(?:5|4(?!04))"
我并不想为了检查这个虚拟主机的情况而记录整个服务器的所有内容。我尝试设置
SecAuditEngine On
...在 .htaccess 文件中,它会产生 500 内部错误,error_log 指示这些指令在 .htaccess 中是不允许的,尽管在 Modsec 文档中,这些指令的范围都显示为“任何”
我甚至尝试创建一个简单的 SecRule:
SecRule SERVER_NAME "example\.com" "phase:1,ctl:SecAuditEngine=On,id:123456789"
但这会产生语法错误,并且看起来 SecAuditEngine 或 SecAuditLogRelevantStatus 无法动态切换。
是否有人知道是否可以在每个请求的交易时修改这两个指令中的任何一个?
答案1
这可以通过使用 apache 模板系统根据用户或域更改 SecAuditEngine 指令来实现。在 cPanel 服务器上,可以通过将 *.conf 文件放置在以下位置来实现:
/usr/local/apache/conf/userdata/std/2/用户名/modsec.conf /usr/local/apache/conf/userdata/ssl/2/用户名/modsec.conf
内容:
<LocationMatch .*>
SecAuditEngine On
</LocationMatch>
“开启”设置告诉 mod 安全记录所有响应代码的交易数据(由于路径不同,404/401 除外)