如何關閉Apache網站服務器上的服務器簽名?
譯文有讀者提問,只要Apache2網站服務器返回出錯頁面(比如404 not found或403 access forbidden pages),它就會在頁面底部顯示網站服務器簽名(比如Apache版本號和操作系統信息)。此外,當Apache2網站服務器打開任何PHP頁面時,同樣會顯示PHP版本信息。該如何關閉Apache2網站服務器中的這些網站服務器簽名?
顯示網站服務器簽名以及服務器/PHP版本信息可能是個安全風險,因為你無異于將系統的已知安全漏洞告訴給了攻擊者。因而,建議你禁用所有的網站服務器簽名,這是服務器加固方法的一部分。
禁用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版本信息。
不過,要是沒有第二行“ServerTokens Prod”,Apache服務器還是會將詳細的服務器令牌添加到HTTP響應頭,這會顯示Apache版本號。
第二行“ServerTokens Prod”的作用是,抑制HTTP響應頭中的服務器令牌,確保顯示的信息盡可能少。
所以有了這兩行,Apache就會不在網頁或HTTP響應頭中顯示Apache版本信息。
隱藏PHP版本
另一個潛在的安全威脅是HTTP響應頭中泄露的PHP版本信息。默認情況下,Apache網站服務器通過HTTP響應頭里面的“X-Powered-By”字段,添加PHP版本信息。如果你想隱藏HTTP響應頭中的PHP版本,不妨用文本編輯工具打開php.ini文件,找到“expose_php = On”,將其改成“expose_php = Off”。
在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配置文件。
現在你再也看不到HTTP響應頭里面的“X-Powered-By”字段了。
英文:http://ask.xmodulo.com/turn-off-server-signature-apache-web-server.html