我今天早些时候安装了 modsecurity,但我不喜欢它,所以我卸载了它。之后我的“ServerSignature off”就不起作用了。
我有:
ServerSignature off
ServerTokens Prod
在 的最后/etc/apache2/apache2.conf
。
当我通过网络浏览器访问我的网站时,我看不到服务器版本。
但如果我进入我的网站,我可以看到:
<address>232 Server at <a href="mailto:[no address given]">*******.pw</a> Port 80</address>
它无法将其移除!请帮助我。
操作系统:Ubuntu 14.04
Apache2 版本:Apache/2.4.7(Ubuntu)
答案1
我知道这是一个较老的问题,但挖掘了一段时间后仍找不到解决方案。
总结:检查主 apache2.conf 中引用的每个文件(查找“Include...”)是否存在冲突的指令。就我而言,特别是 /etc/apache2/conf-enabled/security.conf。尝试递归地 grepping 以查找您遇到问题的指令的名称。
我在 20.04 LTS 上将这些指令应用到 apache2.conf 时也遇到了麻烦 - 使用我在许多其他网站上看到的建议将它们放在那里 - 结果是没有将它们放在非常文件末尾。我错误地尝试将它们放置在我认为它们与现有配置配合良好的位置。
经过一番研究,我决定修改/etc/apache2/conf-enabled/security.conf相反,根本原因是 ServerSignature 和 ServerTokens 指令已经使用相反的设置指定。
我的条目被忽略的原因是,对“IncludeOptional sites-enabled/*.conf”的调用是 apache2.conf 文件中的最后一个条目。因此,我的条目被默认设置覆盖。
Grep 来救援:
我发现这一点的方法是运行
grep -r 'ServerSignature' /etc/apache2/*
结果
/etc/apache2/conf-available/security.conf:ServerSignature Off
因为启用的配置文件被符号链接回“可用”配置,所以它被使用
ls -l /etc/apache2/conf-enabled/security.conf
lrwxrwxrwx 1 root root 31 Jun 14 13:39 /etc/apache2/conf-enabled/security.conf -> ../conf-available/security.conf
因此,我在 security.conf 文件中将 ServerSignature 和 ServerTokens 指令分别更改为“Off”和“Prod”。这为我解决了这个问题。