紀錄 Apache Server 的一些基礎安全設定,可以避免伺服器版本號或作業系統等機敏性資料輕易的被取得,雖然說真的有心人士要攻擊的話這些簡單的設定應該也防不了,不過總是多一分保障啦,至少可以擋一些技術不成熟的攻擊者啊XD


ServerTokens

ServerToken 的等級決定 Apache 回傳給用戶的 Response header 裡面伺服器系統資訊的多寡。

Syntax : ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full


詳細參數說明參考 httpd.apache.org 的文件

參數 說明 Response header 範例
Full 全部顯示 Server: Apache/2.0.41 (Unix) PHP/4.2.2 MyMod/1.2
OS 詳細伺服器軟體版本號與作業系統 Server: Apache/2.0.41 (Unix)
Min(imal) 詳細伺服器軟體版本號 Server: Apache/2.0.41
Minor 伺服器軟體版本號 Server: Apache/2.0
Major 精簡伺服器軟體版本號 Server: Apache/2
Prod(uctOnly) 僅顯示伺服器軟體 Server: Apache


ServerSignature

ServerSignature 決定是否在網頁回應預設錯誤 HTTP status page 時顯示伺服器詳細資訊,這裡面提供的資料可詳細了,還是關掉會安全一點。

ServerSignature On -> ServerSignature Off



Root Directory Indexes

修改此設定能避免網頁目錄裡沒有 index 的時候整個目錄被看光光,防止進一步讓攻擊者了解網站架構。

1
2
3
4
5
6
7
<Directory /var/www/>

    Options Indexes FollowSymLinks

    ...

</Directory>

拿掉 Indexes 改成

1
2
3
4
5
6
7
<Directory /var/www/>

    Options FollowSymLinks

    ...

</Directory>


expose_php

若有安裝 php 建議到 php.ini 也關閉掉 expose_php,這能讓用戶知道這台伺服器有沒有安裝 php,雖然不會有直接威脅,但依據我的經驗,很多被我找到 vulnerability 的網站都是用 php… 所以如果有 php 我就會特別積極的去找XD 避免自己伺服器有這樣的遭遇還是關了吧!

expose_php = On -> expose_php = Off



參考資料

http://bojack.pixnet.net/blog/post/3941260-apache-%E5%AE%89%E5%85%A8%E6%80%A7%E8%AA%BF%E6%A0%A1%E7%AF%87 http://ms7.fhsh.tp.edu.tw/php5c/ini.core.html