当远端请求传送到你的 Apache Web 站群服务器时,在预设情况下,一些有价值的资讯,如 web 站群服务器版本号、站群服务器操作系统详细资讯、已安装的 Apache 模组等等,会随站群服务器生成的文件发回客户端。
这给攻击者利用漏洞并获取对 web 站群服务器的访问提供了很多有用的资讯。为了避免显示 web 站群服务器资讯,我们将在本文中演示如何使用特定的 Apache 指令隐藏 Apache Web 站群服务器的资讯。
两个重要的指令是:
ServerSignature
这允许在站群服务器生成的文件(如错误讯息、 modproxy 的 ftp 目录列表、 modinfo 输出等等)下新增一个显示站群服务器名称和版本号的页尾行。
它有三个可能的值:

On – 允许在站群服务器生成的文件中新增尾部页尾行,
Off – 禁用页尾行
EMail – 建立一个 “mailto:” 引用;用于将邮件传送到所引用文件的 ServerAdmin 。

ServerTokens
它决定了传送回客户端的站群服务器响应头栏位是否包含站群服务器操作系统型别的描述和有关已启用的 Apache 模组的资讯。
此指令具有以下可能的值(以及在设定特定值时传送到客户端的示例资讯):

ServerTokens Full (或者不指定)

传送给客户端的资讯: Server: Apache/2.4.2 (Unix) PHP/4.2.2 MyMod/1.2

ServerTokens Prod[uctOnly]

传送给客户端的资讯: Server: Apache

ServerTokens Major

传送给客户端的资讯: Server: Apache/2

ServerTokens Minor

传送给客户端的资讯: Server: Apache/2.4

ServerTokens Min[imal]

传送给客户端的资讯:Server: Apache/2.4.2

ServerTokens OS

传送给客户端的资讯: Server: Apache/2.4.2 (Unix)
注意:在 Apache 2.0.44 之后,ServerTokens 也控制由 ServerSignature 指令提供的资讯。
 
为了隐藏 web 站群服务器版本号、站群服务器操作系统细节、已安装的 Apache 模组等等,使用你最喜欢的编辑器开启 Apache 配置档案:

$ sudo vi /etc/apache2/apache2.conf #Debian/Ubuntu systems
$ sudo vi /etc/httpd/conf/httpd.conf #RHEL/CentOS systems

新增/修改/附加下面的行:

ServerTokens Prod
ServerSignature Off

储存并退出档案,重启你的 Apache 站群服务器:

$ sudo systemctl apache2 restart #SystemD
$ sudo sevice apache2 restart #SysVInit