綜述 本文將討論UNIX平台下,Apache WEB服務器安裝和配置的安全問題。我們假定閱讀本文的系統管理員已經針對自己站點的情況選擇了相關的模塊,並且能夠進行配置、創建和排除故障。本文的主要目的是幫助你簡歷一個安全的Apache歪脖(web :P)服務器。 在眾多的Web服務器產品中,Apache是應用最為廣泛的一個產品,同時也是一個設計上非常安全的程序。但是,同其它應用程序一樣,Apache也存在安全缺陷。本文主要針對三個安全缺陷進行討論,包括:使用HTTP協議進行的拒絕服務攻擊(denial of service)、3緩沖區溢出攻擊以及被攻擊者獲得root權限。注意:合理的配置能夠保護Apache免遭多種攻擊,但是在網絡層上的拒絕服務攻擊則不是調整Apache的配置所能夠防止的。本文所涉及的是使用HTTP(應用層)協議進行的拒絕服務攻擊。 Apache的主要缺陷 • HTTP拒絕服務 攻擊者通過某些手段使服務器拒絕對HTTP應答。這會使Apache對系統資源(CPU時間和內存)需求的劇增,最終造成系統變慢甚至完全癱瘓。 • 緩沖區溢出 攻擊者利用程序編寫的一些缺陷,使程序偏離正常的流程。程序使用靜態分配的內存保存請求數據,攻擊者就可以發送一個超長請求使緩沖區溢出。比如一些Perl編寫的處理用戶請求的網關腳本。一旦緩沖區溢出,攻擊者可以執行其惡意指令或者使系統宕機。 • 被攻擊者獲得root權限 Apache一般以root權限運行(父進程),攻擊者通過它獲得root權限,進而控制整個系統。 獲得最新的Apache 使用最安全版本對於加強Apache Web服務器的安全是至關重要的。 你可以從Apache的官方網站http://www.apache.org獲得Apache的最新版本。 配置文件的保護 Apache Web服務器有三個主要的配置文件,它們一般位於/usr/local/apache/conf目錄。這三個文件是:httpd.con、srm.conf和Access.conf。這些文件是整個Apache的控制中心,因此需要對三個配置文件有所了解。httpd.conf文件是主配置文件;srm.conf允許你填加資源文件;access.conf設置文件的訪問權限。這些文件的配置可以參考http://httpd.apache.org/docs/mod/core.Html 服務器訪問控制 access.conf文件包含一些指令控制允許什麼用戶訪問Apache目錄。應該把deny from all作為初始化指令,然後使用allow from指令打開訪問權限。你可以允許來自某個域、IP地址或者IP段的訪問。例如: order deny,allow deny from all allow from sans.org 密碼保護 使用.htaccess文件,可以把某個目錄的訪問權限賦予某個用戶。系統管理員需要在httpd.conf或者srm.conf文件中使用AccessFileName指令打開目錄的訪問控制。以下是一個.htaccess示例文件: AuthName PrivateFiles AuthType Basic AuthUserFile /path/to/httpd/users require foo