如何隱藏Apache版本號和其它敏感信息
當遠程請求發(fā)送到你的 Apache Web 服務(wù)器時,在默認情況下,一些有價值的信息,如 web 服務(wù)器版本號、服務(wù)器操作系統(tǒng)詳細信息、已安裝的 Apache 模塊等等,會隨服務(wù)器生成的文檔發(fā)回客戶端。
這給攻擊者利用漏洞并獲取對 web 服務(wù)器的訪問提供了很多有用的信息。為了避免顯示 web 服務(wù)器信息,我們將在本文中演示如何使用特定的 Apache 指令隱藏 Apache Web 服務(wù)器的信息。
兩個重要的指令是:
ServerSignature
這允許在服務(wù)器生成的文檔(如錯誤消息、modproxy 的 ftp 目錄列表、modinfo 輸出等等)下添加一個顯示服務(wù)器名稱和版本號的頁腳行。
它有三個可能的值:
- On - 允許在服務(wù)器生成的文檔中添加尾部頁腳行,
- Off - 禁用頁腳行
- EMail - 創(chuàng)建一個 “mailto:” 引用;用于將郵件發(fā)送到所引用文檔的 ServerAdmin。
ServerTokens
它決定了發(fā)送回客戶端的服務(wù)器響應(yīng)頭字段是否包含服務(wù)器操作系統(tǒng)類型的描述和有關(guān)已啟用的 Apache 模塊的信息。
此指令具有以下可能的值(以及在設(shè)置特定值時發(fā)送到客戶端的示例信息):
- ServerTokens Full (或者不指定)
發(fā)送給客戶端的信息: Server: Apache/2.4.2 (Unix) PHP/4.2.2 MyMod/1.2
- ServerTokens Prod[uctOnly]
發(fā)送給客戶端的信息: Server: Apache
- ServerTokens Major
發(fā)送給客戶端的信息: Server: Apache/2
ServerTokens Minor
發(fā)送給客戶端的信息: Server: Apache/2.4
- ServerTokens Min[imal]
發(fā)送給客戶端的信息:Server: Apache/2.4.2
- ServerTokens OS
發(fā)送給客戶端的信息: Server: Apache/2.4.2 (Unix)
注意:在 Apache 2.0.44 之后,ServerTokens 也控制由 ServerSignature 指令提供的信息。
為了隱藏 web 服務(wù)器版本號、服務(wù)器操作系統(tǒng)細節(jié)、已安裝的 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 服務(wù)器:
- $ sudo systemctl apache2 restart #SystemD
- $ sudo sevice apache2 restart #SysVInit
本篇中,我們解釋了如何使用特定的 Apache 指令隱藏Apache web 服務(wù)器版本號及其他信息。
如果你在 Apache 中運行 PHP,我建議你隱藏 PHP 版本號。
如往常一樣,你可以在評論欄中寫下你的想法。
作者簡介:
Aaron Kili 是 Linux 和 F.O.S.S 愛好者,將來的 Linux SysAdmin 及 web 開發(fā)者,目前是 TecMint 的內(nèi)容創(chuàng)作者,他喜歡用電腦工作,并堅信分享知識。