如何关闭Apache网站服务器上的服务器签名?

有读者提问,只要Apache2网站服务器返回出错页面(比如404 not found或403 access forbidden pages),它就会在页面底部显示网站服务器签名(比如Apache版本号和操作系统信息)。此外,当Apache2网站服务器打开任何PHP页面时,同样会显示PHP版本信息。该如何关闭Apache2网站服务器中的这些网站服务器签名?

显示网站服务器签名以及服务器/PHP版本信息可能是个安全风险,因为你无异于将系统的已知安全漏洞告诉给了攻击者。因而,建议你禁用所有的网站服务器签名,这是服务器加固方法的一部分。

如何关闭Apache网站服务器上的服务器签名?

禁用Apache网站服务器签名

只要编辑Apache配置文件,就可以禁用Apache网站服务器签名。

在Debian、Ubuntu或Linux Mint上:

$ sudo vi /etc/apache2/apache2.conf

在CentOS、Fedora、RHEL或Arch Linux上:

$ sudo vi /etc/httpd/conf/httpd.conf

将下面这两行添加到Apache配置文件的末尾处:

ServerSignature Off

ServerTokens Prod

然后重启网站服务器,以激活变更:

$ sudo service apache2 restart (Debian, Ubuntu or Linux Mint)

$ sudo service httpd restart (CentOS/RHEL 6)

$ sudo systemctl restart httpd.service (Fedora, CentOS/RHEL 7, Arch Linux)

第一行“ServerSignature Off”让Apache2网站服务器隐藏任何出错页面上的Apache版本信息。

如何关闭Apache网站服务器上的服务器签名?

不过,要是没有第二行“ServerTokens Prod”,Apache服务器还是会将详细的服务器令牌添加到HTTP响应头,这会显示Apache版本号。

如何关闭Apache网站服务器上的服务器签名?

第二行“ServerTokens Prod”的作用是,抑制HTTP响应头中的服务器令牌,确保显示的信息尽可能少。

所以有了这两行,Apache就会不在网页或HTTP响应头中显示Apache版本信息。

如何关闭Apache网站服务器上的服务器签名?

隐藏PHP版本

另一个潜在的安全威胁是HTTP响应头中泄露的PHP版本信息。默认情况下,Apache网站服务器通过HTTP响应头里面的“X-Powered-By”字段,添加PHP版本信息。如果你想隐藏HTTP响应头中的PHP版本,不妨用文本编辑工具打开php.ini文件,找到“expose_php = On”,将其改成“expose_php = Off”。

如何关闭Apache网站服务器上的服务器签名?

在Debian、Ubuntu或Linux Mint上:

$ sudo vi /etc/php5/apache2/php.ini

在CentOS、Fedora、RHEL或Arch Linux上:

$ sudo vi /etc/php.ini expose_php = Off

最后,重启Apache2网站服务器,重新装入更新后的PHP配置文件。

相关推荐