PHP安全性漫談之apache server安全性設定
1、以Nobody使用者運行
一般情況下,Apache是由Root 來安裝和啟動並執行。如果Apache Server進程具有Root使用者特權,那麼它將給系統的安全構成很大的威脅,應確保Apache Server進程以最可能低的許可權使用者來運行。通過修改httpd.conf檔案中的下列選項,以Nobody使用者運行Apache 達到相對安全的目的。
User nobodyGroup# -1
2、ServerRoot目錄的許可權
為了確保所有的配置是適當的和安全的,需要嚴格控制Apache 主目錄的存取權限,使非超級使用者不能修改該目錄中的內容。Apache 的主目錄對應於Apache Server設定檔httpd.conf的Server Root控制項中,應為:
Server Root /usr/local/apache
3、SSI的配置
在設定檔access.conf 或httpd.conf中的確Options指令處加入Includes NO EXEC選項,用以禁用Apache Server 中的執行功能。避免使用者直接執行Apache 伺服器中的執行程式,而造成伺服器系統的公開化。
Options Includes Noexec
4、阻止使用者修改系統設定
在Apache 伺服器的設定檔中進行以下的設定,阻止使用者建立、修改 .htaccess檔案,防止使用者超越能定義的系統安全特性。
AllowOveride NoneOptions NoneAllow from all
然後再分別對特定的目錄進行適當的配置。
5、改變Apache 伺服器的預設訪問特性
Apache 的預設設定只能保障一定程度的安全,如果伺服器能夠通過正常的映射規則找到檔案,那麼用戶端便會擷取該檔案,如http://local host/~ root/ 將允許使用者訪問整個檔案系統。在伺服器檔案中加入如下內容:
order deny,ellowDeny from all
將禁止對檔案系統的預設訪問。
6、CGI指令碼的安全考慮
CGI指令碼是一系列可以通過Web伺服器來啟動並執行程式。為了保證系統的安全性,應確保CGI的作者是可信的。對CGI而言,最好將其限制在一個特定的目 錄下,如cgi-bin之下,便於管理;另外應該保證CGI目錄下的檔案是不可寫的,避免一些詐騙程式駐留或混跡其中;如果能夠給使用者提供一個安全性 良好的CGI程式的模組作為參考,也許會減少許多不必要的麻煩和安全隱患;除去CGI目錄下的所有非業務應用的指令碼,以防異常的資訊洩漏。
7、SSL連結加密
以上這些常用的舉措可以給Apache Server 一個基本的安全運行環境,顯然在具體實施上還要做進一步的細化分解,制定出符合實際應用的安全配置方案。