如何隱藏 Apache 版本號和其它敏感資訊

Aaron Kili發表於2017-02-05

當遠端請求傳送到你的 Apache Web 伺服器時,在預設情況下,一些有價值的資訊,如 web 伺服器版本號、伺服器作業系統詳細資訊、已安裝的 Apache 模組等等,會隨伺服器生成的文件發回客戶端。

這給攻擊者利用漏洞並獲取對 web 伺服器的訪問提供了很多有用的資訊。為了避免顯示 web 伺服器資訊,我們將在本文中演示如何使用特定的 Apache 指令隱藏 Apache Web 伺服器的資訊。

推薦閱讀: 13 個有用的 Apache 伺服器安全貼士

兩個重要的指令是:

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 指令提供的資訊。

推薦閱讀: 5 個加速 Apache Web 伺服器的貼士

為了隱藏 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

本篇中,我們解釋瞭如何使用特定的 Apache 指令隱藏Apache web 伺服器版本號及其他資訊。

如果你在 Apache 中執行 PHP,我建議你隱藏 PHP 版本號

如往常一樣,你可以在評論欄中寫下你的想法。


作者簡介:

Aaron Kili 是 Linux 和 F.O.S.S 愛好者,將來的 Linux SysAdmin 及 web 開發者,目前是 TecMint 的內容創作者,他喜歡用電腦工作,並堅信分享知識。


via: http://www.tecmint.com/hide-apache-web-server-version-information/

作者:Aaron Kili 譯者:geekpi 校對:jasminepeng

本文由 LCTT 原創編譯,Linux中國 榮譽推出

相關文章