如何查看我的 Apache 服务器上是否安装了 mod_security?我还想了解它的版本。
我遇到了一些上传问题,并尝试使用 .htaccess 禁用 mod_security。但这开始产生 500 个内部服务器错误。
我在某处读到,根据我的 mod_security 版本,我可能无法使用 .htaccess 禁用它。因此,我想了解我是否安装了 mod_security 以及它是什么版本。
我在 centos 5 盒子上。
谢谢!
更新 -1 xxxxxxxxxxxxx
以下输出是否意味着我没有安装 mod_security?
[root@u11 htdocs]# httpd -l
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c
答案1
不——上面列出的输出仅描述模块中的预编译。
的存在mod_so.c
然而,进入意味着 Apache 能够动态加载附加模块。
如果您有权访问中央配置,您可以查看此内容并检查是否有如下一行:
加载模块 security_module 模块/mod_security.so
如果有,则说明您已加载 mod_security - 注意:这也可能位于包含的配置文件中。
假设您的配置位于 /etc/httpd - 您可以运行以下命令来查找配置是否存在:
grep -ir security_module /etc/httpd
(/etc/httpd
用中央配置目录替换)。
如果您无权访问服务器配置,则可以<IfModule mod_security.c>
在 .htaccess 中使用语句来查看它是否已启用:
<IfModule mod_security.c> ...在这里执行某种重定向或重写... </IfModule>
希望这可以帮助。
答案2
在某些环境中,不需要 mod_security,因为防火墙策略是通过硬件实现的;使用 Debian 您应该可以找到有关此模块的信息,输入以下命令:
grep -ir security_module /etc/apache2/mods-enabled/mod-security.conf
如果此文件不存在,则托管服务提供商可能未将其包含在内,因此请与他们检查情况。