如何隐藏Apache版本号和其他敏感信息

在本文中,我们将解释如何在Linux中隐藏Apache Web服务器版本号以及有关您的Apache缓存Web服务器的其他敏感信息。

当远程请求发送到您的Apache Web服务器时,默认情况下,一些有价值的信息,如Web服务器版本号,服务器操作系统详细信息,已安装的Apache模块等等,在服务器生成的文档中发送回客户端。 这是攻击者利用漏洞并访问您的Web服务器的很多信息。为了避免显示Web服务器信息,我们将在本文中显示如何使用特定的Apache指令隐藏Apache Web服务器的信息。

建议阅读: 13个有用的提示来保护您的Apache Web服务器

两个重要的指令是:
服务器签名
这允许在服务器生成的文档(如错误消息,mod_proxy ftp目录列表,mod_info输出等等)下添加一个显示服务器名称和版本号的页脚行。 它有三个可能的值:
  1. - 允许在服务器生成的文档中添加尾部页脚行,
  2. 关闭 - 禁用页脚行和
  3. 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指令提供的信息。

建议阅读: 5个提升Apache Web服务器的性能

要隐藏Web服务器版本号,服务器操作系统详细信息,已安装的Apache模块等,请使用您喜欢的编辑器打开Apache Web服务器配置文件:
$ 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服务器的更多信息。像往常一样,您可以通过下面的评论部分将您的想法添加到本指南。