我正在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文件中工作正常。 这是在Apacheconfiguration的错误? 我试过的所有其他指令都会覆盖默认值。 如何在不修改/etc/httpd/conf/httpd.conf的行的情况下覆盖此值?
至于原来的问题 – 可能是因为Include conf.d/*.conf行出现在ServerSignature On之前。 因此,该名称的最新设置将覆盖预览。
关于正确的configuration文件pipe理
编辑/etc/httpd/conf/httpd.conf是完全可以的。 该文件不会被yum / rpm更新覆盖,而是会创build一个/etc/httpd/conf/httpd.conf.rpmnew文件,系统pipe理员(您)应该手动合并本地configuration(大部分时间使用vimdiff )。
关于安全性正如其他人所说 – 隐藏服务器版本号码不会帮助您提高安全性 – 对于CentOS尤其如此。 所有的httpd默认configuration都是这样的: Apache/2.2.15 。 这个数字在CentOS 6生命周期中不会改变。 当6.0发布时,它是2.2.15,而在未来6年仍然保持不变,而CentOS 6仍然支持。 所以从这个版本号来看,攻击者可以猜测你正在使用CentOS 6的httpd中的httpd – 就这些。
如果这个想法是隐藏使用Apache的事实(不仅仅是版本号),这几乎是不可能的,所有的Web服务器都有一些独特的特性(错误文件,头部sorting,TCP标志,…)很难隐藏,容易指纹。
请记住,正如Chris S指出的,删除服务器签名并不能真正保护服务器。 如果您只想减less服务器显示的信息量,最好在conf.d文件中使用ServerTokens指令。