更新我认为我们已经解决了这个问题;该问题似乎是由于 /modsec_storage 目录的 SELinux 上下文类型值不正确造成的。
但是,我们仍然不确定,因为虽然在我更改了 SELinux 上下文类型值之后,Apache 能够在该目录中为全局和 ip 集合 (global.dir/global.pag 和 ip.dir/ip.pag) 创建文件,但新文件仍然有零字节。
我是 ModSecurity 的新手,不确定文件为空是否是因为配置有问题,或者 ModSecurity 只是确定它不需要在每次交易结束后持久存储 IP 地址。
有人能在这里提供指导吗?
我最近在我们的生产服务器上安装了 ModSecurity (v2.5.12 / CRS v2.0.8),除了它不断写入 Apache 错误日志的这些错误之外,一切运行正常:
Failed to access DBM file "/modsec_storage/global": Permission denied [hostname "www.internationalstudent.com"] [uri "/includes/soc_bookmarks/images/delicious.png"] [unique_id "LZ6jc38AAAEAAFO6408AAABO"]
Failed to access DBM file "/modsec_storage/ip": Permission denied [hostname "www.internationalstudent.com"] [uri "/includes/soc_bookmarks/images/delicious.png"] [unique_id "LZ6jc38AAAEAAFO6408AAABO"]
按照 Ivan Ristic 编写的 ModSecurity 手册中有关文件权限设置的说明进行操作后,没有成功,我创建了一个 /modsec_storage 目录,将所有者和组设置为 apache,并将该目录的权限递归设置为 777。
但是,ModSecurity 仍然报告相同的权限错误,所以我很困惑。有人能告诉我如何解决这个问题吗?
答案1
尝试setenforce 0
这很可能是 SELinux 问题,在这种情况下,我认为您可能需要为该文件夹分配一个 httpd 上下文。如果上述方法可以解决问题,您可以尝试:
chcon -R system_u:object_r:httpd_sys_content_t /modsec_storage
文件夹 modesec_storage 在你的根文件夹下吗?