46.6. 安全性

向公用網際網路公開的網頁伺服器,必須持續進行系統管理。這時當然會無法避免地出現與軟體、意外錯誤設定相關的安全性問題。下面是可用來處理這些問題的幾項秘訣。

保持更新

SUSE 會在發現 Apache 軟體弱點時,發出安全性建議事項。其中會包含應該要儘速套用的弱點修正指示。如需取得 SUSE 安全性公告郵件清單,請造訪 http://www.suse.com/us/private/support/online_help/mailinglists/。如需 SUSE Linux 套件安全性問題的線上最新資訊,請造訪 http://www.novell.com/linux/security/securitysupport.html

此外,您應該要訂閱 Apache 公告郵件清單 (http://httpd.apache.org/lists.html#http-announce),其中將會張貼最新發行與錯誤修正程式。

DocumentRoot 許可權

根據預設,DocumentRoot 目錄 /srv/www/htdocs 與 CGI 目錄 /srv/www/cgi-bin 屬於 root 使用者。您不應該變更這些許可權。如果所有人都可以寫入目錄,任何使用者都可以將檔案放到目錄中。這些檔案接著可能會由 Apache 透過 wwwrun 許可權來執行,而這種情況可能會造成使用者取得不預期的檔案系統資源存取權限。請使用子目錄 /srv/www/htdocs/srv/www/cgi-bin,以便結合 Directory 指示詞 (請參閱 Directory) 來組織使用者或特定領域資料。

CGI 與 SSI 目錄

使用 Perl、PHP、SSI 或是任何其他程式設計語言的互動式程序檔,基本上都可以執行任意指令。限制 CGI 與 SSI (請參閱 節 46.5.1.2, "通用閘道介面:mod_cgi "Script Alias節 46.5.1.1, "伺服器端包含 mod_include ") 不要全域執行,而是執行到特定目錄中,就可以提供降低風險的選項。

另一種可能做法,是搭配 mod_suexec (請參閱 節 46.5.2.1, "使用 mod_suexec,依據不同使用者身份來執行 CGI ") 來執行常見 CGI。針對 Apache 模組,具有例如 節 46.5.3.2, "服務 PHP:mod_php4mod_php5 " 所述安全性敏感組態的解譯器,可以協助維護安全的網路環境。

存取許可權

通常在測試環境中,網頁伺服器的存取許可權會因為測試設定緣故,而較為輕忽處理。這種情形可能會導致意外洩漏敏感資訊,甚至讓不當使用者存取整部伺服器。請使用 Order 指示詞 (http://httpd.apache.org/docs-2.0/mod/mod_access.html#order) 並結合 .htaccess 檔案 (請參閱 節 46.3.2.3.3, "AccessFileName 檔案名稱 "),設定特定網站僅供指定使用者或用戶端存取。

此外,您還可以使用「混淆安全性防禦」方法:這種做法的典型範例,就是在非標準的連接埠上執行 Apache (請參閱 網路設備選擇)。這樣就會產生附加連接埠的 URL,例如 http://www.example.com:8765;測試環境可以接受這種 URL。