向公用網際網路公開的網頁伺服器,必須持續進行系統管理。軟體和意外的錯誤設定不可避免地會產生安全性問題。下面是可用來處理這些問題的幾項秘訣。
SUSE 會在發現 Apache 軟體弱點時,發出安全性建議事項。其中會包含應該要儘速套用的弱點修正指示。請由下列位置取得 SUSE 安全性公告:
根據 SUSE Linux Enterprise Server 預設,DocumentRoot
目錄 /srv/www/htdocs
與 CGI 目錄 /srv/www/cgi-bin
的所有權屬於 root
使用者和群組。這些許可權不可變更。如果目錄對所有人開放寫入權限,則任何使用者都可以將檔案放到目錄中。然後,這些檔案可能會由具有 wwwrun
許可權的 Apache 執行,而這種情況可能會造成使用者取得非預期的檔案系統資源存取權限。使用 /srv/www
子目錄來存放虛擬主機的 DocumentRoot
和 CGI 目錄,並確定這些目錄所有權屬於 root
使用者和群組。
依預設,/etc/apache2/httpd.conf
已設定成拒絕存取整個檔案系統。您絕對不可以覆寫這些指示詞,但是可以特別啟用可由 Apache 讀取之所有目錄的存取權限 (如需詳細資訊,請參閱第 40.2.1.2.3 節「基本虛擬主機組態」)。如果要執行這個動作,請確保沒有任何重要檔案 (例如密碼或系統組態檔案) 可由外界進行讀取。
使用 Perl、PHP、SSI 或是任何其他程式設計語言的互動式程序檔,基本上都可以執行任意指令,因此會產生常見的安全性問題。將從伺服器執行的程序檔,只能由伺服器管理員信任的來源進行安裝 — 通常最好不要讓使用者執行他們自己的程序檔。同時建議您為所有程序檔進行安全性稽核。
為了盡可能簡化程序檔的管理工作,通常建議您限制 CGI 程序檔在特定目錄中執行,而不是全域性開放執行。您可以使用 ScriptAlias
和 Option ExecCGI
指示詞來進行組態設定。SUSE Linux Enterprise Server 的預設組態不允許隨處執行 CGI 程序檔。
所有 CGI 程序檔都是以相同使用者身份執行,所以不同的程序檔彼此之間可能會產生衝突。module suEXEC 可讓您以不同使用者和群組身份來執行 CGI 程序檔。