為Apache Web服務器保駕護航的8個簡易方法
譯文Apache可以是當今互聯網上使用最廣泛的Web服務器。它天生是在Unix環境下工作的,不過已移植到了其他服務器操作系統,比如Windows。Apache Web服務器為數百萬的網站和互聯網應用系統提供服務。一大批的驗證方案、支持眾多的語言接口以及安全功能特性,讓它成為全球各地成千上萬用戶青睞有加的Web服務器。
Apache的這種明星地位、這種爆棚人氣,也讓它支撐的網站成為黑客們偏愛的下手目標。Apache支撐的網站之所以淪為黑客攻擊的犧牲品,常常倒不是由于Apache本身存在安全風險和漏洞,主要是由于編寫糟糕的代碼以及與數據庫有關的其他安全問題。Apache和Linux這對黃金搭檔提供了良好的安全性,但是如果你不采取必要的防范措施,還是有可能出岔子。你需要采取幾個做法,為Apache保駕護航。為此,我們整理了你應該采取的幾個簡單易學的措施,確保Web服務器安全。
第一件事:更新
每一個Apache版本里面都存在安全漏洞和潛在風險,不過及時得到了修補。開發社區不斷努力解決新的安全問題,更新的重要性再怎么強調都不為過。
良好的更新策略和安全策略相輔相成。你不僅在重大版本發布后時更新Apache,還應該安裝所有的補丁。你在更新Apache時,一并更新PHP(如果你使用PHP)也是明智之舉。
你只要使用下面這個命令,就可以檢查Apache的當前版本。
# http -v
Server version: Apache/2.*.** (Unix)
Server built: Mar 12 2014 13:20:23
如果結果表明你當前運行的Apache不是最新版本,就要趕緊更新。
Apache版本和操作系統
如果出現某個錯誤,服務器可能會返回關于該錯誤的信息以及Apache版本和操作系統方面的細節信息。簡單的404錯誤頁面可以泄露關于Web服務器和操作系統的關鍵信息。在一些情況下,它甚至可能會返回同時安裝在服務器中的Apache模塊方面的細節信息。
想關閉該功能,使用文本編輯工具打開配置文件(httpd.conf),找到字符串:“ServerSignature On”。它在默認情況下應該是“On”。想關閉它,只要將“On”換成“Off”即可。
現在,HTTP站點標題和錯誤頁面只會顯示它運行Apache,而不會顯示版本。
禁用目錄列表
要是根目錄下沒有索引文件,Apache在默認情況下會列出根目錄下的所有文件。有幾個辦法可以防止Apache列出根文件夾中的文件。你又需要將幾行添加到配置文件。為此,有兩種方法。或者將Option Directive設成“-Indexes”或“None”。如果你不知道我們在談論什么,只將下面幾行添加到配置文件。
<directory /var/www/html>
Options -Indexes
Order allow,deny
Allow from all
</directory>
或者使用下列代碼。
<directory></directory>
Options None
Order allow,deny
Allow from all
在一些發行版中,這些命令早已到位,但最好還是檢查一下,穩妥點總歸是好事。
保護配置文件
如果你是個新手,又一直在采取上述步驟,那么就應該想到:httpd.conf配置文件對于確保服務器安全起到了很重要的作用。所以,最好將配置文件隱藏起來。你總是可以在需要時讓配置文件顯露出來。
使用下面這個命令,即可將配置文件隱藏起來。
chattr +i /httpd/conf/httpd.conf
下面這段文字來自chattr參考手冊頁:
“帶有‘i’屬性的文件無法被修改:它無法被刪除或重命名;無法為該文件建立鏈接;無法將數據寫入到該文件。只有超級用戶或擁有CAP_LINUX_IMMUTABLE功能的進程才能設置或清空這個屬性。”
限制請求大小,以防范DoS攻擊
如果禁止大請求,就可以預防大多數拒絕服務(DoS)攻擊。默認情況下,LimitRequestBody被設成不受限制。你可以更改大小,具體取決于你網站的實際需求。還可以限制對更容易受到攻擊的目錄(比如上傳文件夾)進行請求。
禁用不需要的模塊
通過禁用幾個對你來說毫無用處的模塊,就能減少服務器面臨的安全漏洞。想詳細列出你Web服務器中的所有模塊,可以使用下面這個命令。
# grep LoadModule /etc/httpd/conf/httpd.conf
分析輸出列表中的所有模塊,弄清楚哪些模塊毫無必要。你甚至沒必要刪除一行行代碼。只要在開頭添加“#”,那么重啟服務后,它就會變成停用。
別以root身份運行Apache
Apache不應該以root身份運行。以另一個用戶的身份運行Apache始終是個好主意。它在默認情況下會以守護程序或無任何用戶的身份來運行。設立一個專門用于Apache的非特權帳戶。千萬別將Apache用戶或用戶組設成root。
# vi httpd.conf
Group apache
User apache
選擇合適的托管服務提供商
這與搗鼓你的Web服務器沒有任何關系。一些最受歡迎的主機托管服務來自歐美國家。受歡迎并不意味著高度安全。你沒必要向這些主機托管服務提供商購買主機托管服務。如果你不住在美國,也能在本國找到許多安全可靠的、收費合理的主機托管服務提供商。如果你住在澳大利亞,可以選擇像EZI Hosting這樣的澳大利亞主機托管提供商,并且選擇最受歡迎的主機托管提供商,它們的IP地址常常不遭到黑客的攻擊。
原文地址:http://linuxaria.com/article/8-simple-to-follow-tips-to-secure-your-apache-web-server