如何查明我的 apache 服务器上是否安装了 mod_security?

如何查明我的 apache 服务器上是否安装了 mod_security?

如何查看我的 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

如果此文件不存在,则托管服务提供商可能未将其包含在内,因此请与他们检查情况。

相关内容