Apache 中的服务器签名

Apache 中的服务器签名

我正在 CentOS 6.5 上安装 apache 并尝试设置一些强化。此过程的一部分是使用指令删除服务器签名ServerSignature。由于我希望这在版本升级后仍然有效并遵循其他最佳实践,因此我尝试在目录中进行所有设置更改/etc/httpd/conf.d/。这是我的conf.d/defaults.conf文件:

ServerTokens Prod

<Directory />
    Options -Indexes FollowSymLinks
    AllowOverride None
</Directory>

<Directory "/var/www/html">
    Options FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

ServerSignature Off

除了 ServerSignature 指令之外,此方法效果很好。似乎由于/etc/httpd/conf/httpd.conf默认情况下已设置,因此其值无法更改。如果我注释掉该行/etc/httpd/conf/httpd.conf,则此指令在我的文件中可以正常工作conf.d/defaults.conf。这是 apache 配置中的错误吗?我尝试过的所有其他指令都会覆盖默认值。如何在不修改该行的情况下覆盖此值/etc/httpd/conf/httpd.conf

答案1

至于最初的问题- 可能是因为该Include conf.d/*.conf行位于 之前ServerSignature On。因此该名称的最新设置将覆盖预览设置。

关于正确的配置文件管理

编辑 是完全没问题的/etc/httpd/conf/httpd.conf。该文件将不是被 yum/rpm 更新覆盖,相反,它会创建一个/etc/httpd/conf/httpd.conf.rpmnew文件,系统管理员(您)应该手动将该文件与本地配置合并(大多数时候使用vimdiff)。

关于安全 正如其他人所说 - 隐藏服务器版本号不会帮助您提高安全性 - 对于 CentOS 尤其如此。默认情况下,所有 httpd 都公开以下信息:Apache/2.2.15。该数字在 CentOS 6 生命周期内不会改变。6.0 发布时是 2.2.15,并且在接下来的 6 年内它将保持不变,只要 CentOS 6 仍受支持。因此,从该版本号来看,攻击者可以猜出您正在使用来自 CentOS 6 存储库的 httpd - 仅此而已。

如果目的是隐藏使用 Apache 的事实(而不仅仅是版本号),这几乎是不可能的,所有 Web 服务器都有一些独特的特性(错误文档、标头排序、TCP 标志等),这些特性很难隐藏,而且很容易被识别。

答案2

请记住,正如 Chris S 指出的那样,删除服务器签名并不能真正保护服务器。如果您只是想减少服务器显示的信息量,最好使用服务器令牌conf.d 文件上的指令。

相关内容