默認情況下,系統會把Apache版本模塊都顯示出來(http返回頭)。如果列舉目錄的話,會顯示域名信息(文件列表正文),去除Apache版本號的方法是修改配置文件/etc/httpd.conf。找到關鍵字ServerSignature,將其設定為:
ServerSignature Off |
然后重新啟動Apache服務器。
通過分析Web服務器的類型,大致可以推測出操作系統的類型,比如,Windows使用IIS來提供HTTP服務,而Linux中最常見的是Apache。
默認的Apache配置里沒有任何信息保護機制,并且允許目錄瀏覽。通過目錄瀏覽,通常可以獲得類似“Apache/1.3.27 Server at apache.linuxforum.net Port 80”或“Apache/2.0.49 (Unix) PHP/4.3.8”的信息。
通過修改配置文件中的ServerTokens參數,可以將Apache的相關信息隱藏起來。但是,Red Hat Linux運行的Apache是編譯好的程序,提示信息被編譯在程序里,要隱藏這些信息需要修改Apache的源代碼,然后,重新編譯安裝程序,以替換里面的提示內容。
以Apache 2.0.50為例,編輯ap_release.h文件,修改“#define AP_SERVER_BASEPRODUCT \"Apache\"”為“#define AP_SERVER_BASEPRODUCT \"Microsoft-IIS/5.0\"”。編輯os/unix/os.h文件,修改“#define PLATFORM \"Unix\"”為“#define PLATFORM \"Win32\"”。修改完畢后,重新編譯、安裝Apache。
Apache安裝完成后,修改httpd.conf配置文件,將“ServerTokens Full”改為“ServerTokens Prod”;將“ServerSignature On”改為“ServerSignature Off”,然后存盤退出。重新啟動Apache后,用工具進行掃描,發現提示信息中已經顯示操作系統為Windows。