当远程请求发送到您的Apache Web服务器时,默认情况下,一些有价值的信息,如Web服务器版本号,服务器操作系统详细信息,已安装的Apache模块等等,在服务器生成的文档中发送回客户端。
这是攻击者利用漏洞并访问您的Web服务器的很多信息。为了避免显示Web服务器信息,我们将在本文中显示如何使用特定的Apache指令隐藏Apache Web服务器的信息。
服务器签名
这允许在服务器生成的文档(如错误消息,mod_proxy ftp目录列表,mod_info输出等等)下添加一个显示服务器名称和版本号的页脚行。
它有三个可能的值:
开 - 允许在服务器生成的文档中添加尾部页脚行,
关闭 - 禁用页脚行和
EMail - 创建一个“ mailto: ”引用;它将邮件发送到所引用文档的ServerAdmin。
ServerTokens
它确定发送回客户端的服务器响应头字段是否包含服务器操作系统类型的描述和有关已启用的Apache模块的信息。
此伪指令具有以下可能的值(以及在设置特定值时发送到客户端的样本信息):
ServerTokens Full (or not specified)
Info sent to clients: Server: Apache/2.4.2 (Unix) PHP/4.2.2 MyMod/1.2
ServerTokens Prod[uctOnly]
Info sent to clients: Server: Apache
ServerTokens Major
Info sent to clients: Server: Apache/2
ServerTokens Minor
Info sent to clients: Server: Apache/2.4
ServerTokens Min[imal]
Info sent to clients: Server: Apache/2.4.2
ServerTokens OS
Info sent to clients: Server: Apache/2.4.2 (Unix)
注意 :在Apache版本2.0.44之后, ServerTokens指令还控制ServerSignature指令提供的信息。
$ sudo vi /etc/apache2/apache2.conf #Debian/Ubuntu systems
$ sudo vi /etc/httpd/conf/httpd.conf #RHEL/CentOS systems
并添加/修改/追加下面的行:
ServerTokens Prod
ServerSignature Off
保存文件,退出并重新启动Apache Web服务器,如下所示:
$ sudo systemctl apache2 restart #SystemD
$ sudo sevice apache2 restart #SysVInit
在本文中,我们解释了如何隐藏Apache Web服务器版本号以及有关使用某些Apache指令的Web服务器的更多信息。像往常一样,您可以通过下面的评论部分将您的想法添加到本指南。