我有带有 Jessie 或 Stretch 的 Web Apache 服务器,这些服务器已从旧版本的 Debian 连续升级(从 Squeeze 开始,具体取决于服务器)。
在所有这些中,我有 Apachesecurity.conf
配置了指令ServerTokens Prod
并ServerSignature off
根据这个问题www.netcraft.com 中的托管历史操作系统未知。
我还检查了所有目录中security.conf
是否存在 (确实如此)。conf-enabled
现在到了最有趣的部分;其中一些不遵守该配置;其中一些确实如此。我能够建立的唯一模式是,最近安装的从头开始配置 Apache 的服务器不会表现出这种行为(例如,它们始终遵循配置)。
可能会发生什么?
答案1
有趣的是,要使用此配置和其他配置,/etc/apache2/conf-enabled
必须将目录包含/etc/apache2/apache2.conf
在更高版本的 Apache 中,默认情况下使用以下行:
IncludeOptional conf-enabled/*.conf
apache2.conf
发生的情况是,在其他一些服务器中,升级时保留了旧的配置文件没有 添加该指令。更令人困惑的是,至少在一台被发现并纠正的服务器中,因此它扭曲了建立该模式的过程。
因此,显然,虽然这些安全指令似乎已配置,但 Apache 并未使用它们。 Apache 假设ServerTokens
和的默认值是ServerSignature
,对于前者来说是 ,Full
对于后者来说是On
。
我最终添加到末尾/etc/apache2/apache2.conf
IncludeOptional conf-enabled/*.conf
重新启动Apache服务后,情况得到纠正,Apache不再报告额外的配置数据。