一、確保你安裝的是最新的補丁
如果門是敞開的話,在窗戶上加鎖就毫無意義。同樣道理,如果你沒有打補丁,繼續下面的操作就沒有什麼必要。
二、隱藏Apache的版本號碼及其它敏感資訊
預設情況下,很多Apache安裝時會顯示版本號碼及作業系統版本,甚至會顯示伺服器上安裝的是什麼樣的Apache模組。這些資訊可以為駭客所用,並且駭客還可以從中得知你所配置的伺服器上的很多設定都是預設狀態。
這裡有兩條語句,你需要添加到你的httpd.conf檔案中:
ServerSignature Off
ServerTokens Prod
ServerSignature出現在Apache所產生的像404頁面、目錄列表等頁面的底部。ServerTokens目錄被用來判斷Apache會在Server HTTP響應包的頭部填充什麼資訊。如果把ServerTokens設為Prod,那麼HTTP響應包頭就會被設定成:
Server:Apache
如果你非常想嘗試其它事物,你可以通過編輯原始碼改成不是Apache的其它東西,或者你可以通過下面將要介紹的mod_security實現。
三、確保Apache以其自身的使用者帳號和組運行
有的Apache安裝過程使得伺服器以nobody的使用者運行,所以,假定Apache和你的郵件伺服器都是以nobody的帳號啟動並執行,那麼通過Apache發起的攻擊就可能同時攻擊到郵件伺服器,反之亦然。
User apache
Group apache
四、確保web根目錄之外的檔案沒有提供服務
我們不讓Apache訪問web根目錄之外的任何檔案。假設你的所以web網站檔案都放在一個目錄下(例如/web),你可以如下設定:
Order Deny,Allow
Deny from all
Options None
AllowOverride None
Order Allow,Deny
Allow from all
注意,因為我們設定Opitins None 和AllowOverride None,這將關閉伺服器的所有Option和Override。你現在必須明確把每個目錄設定成Option或者Override。
五、關閉瀏覽目錄
你可以在Directory標籤內用Option命令來實現這個功能。設定Option為None或者-Indexes。
Options -Indexes
六、關閉includes
這也可以通過在Directory標籤內使用Option命令來實現。設定Option為None或者-Includes。
Options -Includes
七、關閉CGI執行程式
如果你不用CGI,那麼請把它關閉。在目錄標籤中把選項設定成None或-ExecCGI就可以:
Options -ExecCGI
八、禁止Apache遵循符號連結
同上,把選項設定成None或-FollowSymLinks:
Options -FollowSymLinks
九、關閉多重選項
如果想關閉所有選項,很簡單:
Options None
如果只想關係一些獨立的選項,則通過將Options做如下設定可實現:
Options -ExecCGI -FollowSymLinks -Indexes
十、關閉對.htaccess檔案的支援
在一個目錄標籤中實現:
AllowOverride None
如果需要重載,則保證這些檔案不能夠被下載,或者把檔案名稱改成非.htaccess檔案。比如,我們可以改成.httpdoverride檔案,然後像下面這樣阻止所有以.ht打頭的檔案:
AccessFileName .httpdoverride
Order allow,deny
Deny from all
Satisfy All
十一、運行mod_security
Run mod_security是O’Reilly出版社出版的Apache Security一書的作者,Ivan Ristic所寫的一個非常好用的一個Apache模組。可以用它實現以下功能:
·簡單過濾
·基於過濾的常規運算式
·URL編碼驗證
·Unicode編碼驗證
·審計
·空位元組攻擊防止
·上傳儲存限制
·伺服器身份隱藏
·內建的Chroot支援
·更多其它功能
十二、關閉任何不必要的模組
Apache通常會安裝幾個模組,瀏覽Apache的module documentation,瞭解已安裝的各個模組是做什麼用的。很多情況下,你會發現並不需要啟用那些模組。
找到httpd.conf中包含LoadModule的代碼。要關閉這些模組,只需要在程式碼前添加一個#號。要找到正在啟動並執行模組,可以用以下語句:
grep LoadModule httpd.conf
以下模組通常被啟用而並無大用:mod_imap, mod_include, mod_info, mod_userdir, mod_status, mod_cgi, mod_autoindex