Apache服務器是眾多WEB服務器中,一個設計上較安全的程序;但它也同樣存在諸多缺陷,比如可以使用HTTP協議進行拒絕訪問攻擊等。因此合理的設置是保證Apache服務免遭攻擊的首要任務。
一. Apache服務缺陷分析 緩沖區溢出。攻擊者利用程序編寫的一些缺陷,使程序偏離正常的流程;接著發送一個超長請求使緩沖區溢出。一旦系統緩沖區溢出,攻擊者就可對攻擊端使用各種惡意指令了。 輕易獲得root權限。該缺陷主要是因為Apache服務器一般以root權限運行,攻擊者會通過此途徑獲得root權限,進而控制整個Apache系統。 “拒絕服務”(DoS)攻擊。它主要是存在於Apache的chunk encoding中,這是一個HTTP協議定義的用於接受web用戶所提交數據的功能。這會造成Apache對系統資源需求的劇增,並最終導致系統變慢乃至癱瘓。
二. 主Apache服務配置參考 Apache服務除了主配置文件“httpd.conf”外,還有兩個重要的配置文件,它們分別是: srm.conf 填加資源文件 Access.conf 設置文件的訪問權限 三個文件都位於/usr/local/apache/conf目錄下,大部分服務配置都在這三個文件裡完成。 1.配置Apache服務器的目錄安全認證。 在Apache Server中是允許使用 .htaccess做目錄安全保護的,欲讀取這保護的目錄需要先鍵入正確用戶帳號與密碼。這樣可做為專門管理網頁存放的目錄或做為會員區等。或者在配置文件“httpd.conf”中加入以下內容也可達到目的: options indexes followsymlinks allowoverride authconfig order allow,deny allow from all 2.合理設置訪問控制。 主要設置配置文件“access.conf”。它包含一些指令控制比如允許什麼用戶訪問Apache目錄等。可以通過以下舉例的設置來允許來自某個域、某個IP地址或者IP段的訪問。 <Directory /usr/local/http/docs/private> <limit> order deny,allow deny from all allow from safechina.net </limit> </directory> 解釋:在此配置指令中,將“deny from all”設為初始化指令,再使用“allow from”指令來打開訪問權限。 3.合理設置密碼保護。 密碼保護問題是任何程序、任何系統都要注意的問題。在Apache服務環境下,可以在“httpd.conf”或“srm.conf”配置文件中使用“AccessFileName”指令打開目錄的訪問控制。舉例如下: AuthName PrivateFiles AuthType Basic AuthUserFile /path/to/httpd/users require Phoenix # htpasswd -c /path/to/httpd/users Phoenix #增加一個用戶
總結: Apache是一款非常優秀的服務器,只要能夠正確配置和維護好Apache服務器,一定會感受到Apache服務所帶來的吸引力。總的說來,在Apache的安裝維護中應注意以下方面的問題: 檢查文件和目錄的權限是否恰當。 httpd.conf、srm.conf和access.conf這三個配置文件設置是否恰當。 對某些需要特別保護的目錄使用密碼保護機制(.htaccess)。 讓服務器日志文件盡可能的詳細記錄信息。 對CGI腳本進行封裝,如果CGI腳本使用的是Perl編寫,一定要詳細檢查其安全性。 使用TCP Wrappers和Tripwire安全工具。其中“TCP Wrappers”可以限制Telnet和FTP的訪問權限;而“Tripwire”是一個數據完整性監測工具,可以使用它來實時監視系統是否被更改。