為了檢測和阻止對 web 應用程式的攻擊,web 應用程式防火牆 (ModSecurity) 會檢測所有違反規則集的到 web 伺服器的請求以及來自伺服器的相關回應。如果檢查成功,該 HTTP 請求就會被傳遞到網站內容。如果檢測失敗,則會執行預定義的操作。
ModSecurity 是 Apache 的一個模組。因此,只能檢查到達 Apache HTTP 請求。Apache 可輔以另一款 web 伺服器 - nginx。如果您啟用 由 nginx 處理 PHP 選項用於處理網站的動態內容,web 應用程式防火牆將無法檢查 HTTP 請求因為這些請求永遠不會到達 Apache。對於靜態內容,如果啟用了 由 nginx 直接服務靜態檔 選項,HTTP 請求將不會到達 Apache,因此 ModSecurity 將不會對其檢查。
注意: 若要使用 web 應用程式防火牆 (ModSecurity), ,從 Plesk 11.5 升級的管理員必須從 Odin 或其供應商獲取 Plesk 12 的許可證金鑰。
若要啟用 web 應用程式防火牆:
注意: 可在伺服器和域名級別範圍設定 web 應用程式防火牆模式。但是,域名級別模式不能高於伺服器級別模式的設定。例如,如果伺服器級別的 web 應用程式防火牆在 僅檢測 模式中運行,您將無法為域名設定 啟用 模式。只會顯示 禁用 和 僅檢測 模式。
警示: 如果您選擇了 Atomic 規則集以確保 ModSecurity 運行正常:
在伺服器上運行 aum -u
命令。Plesk modsecurity 套裝程式將被來自 Atomic 庫的套裝程式所替代。然後運行以下命令:
plesk sbin modsecurity_ctl --disable
plesk sbin modsecurity_ctl –enable
service httpd restart
注意: 為了達到最優性能,web 應用程式防火牆需要本地的 DNS 伺服器啟用請求緩存功能。否則,當啟用 web 應用程式防火牆時您的網站可能會運行很慢。
ModSecurity 使用兩個位址來存儲日誌:
/var/log/httpd/modsec_audit.log
)非常詳細,whole Plesk 伺服器使用該日誌。當 ModSecurity 檢測到任何發生的事件,就會在審計日誌檔中生成一個條目。若要查看 ModSecurity 審計日誌,請進入 工具與設定 > Web 應用程式防火牆 (ModSecurity) > 點按 日誌存檔 連結 (在 ModSecurity 審計日誌 組裡)。您可在此查看 ModSecurity 日誌檔和修改日期,並下載日誌檔。/var/www/vhosts/DOMAIN.TLD/logs/error_log
)只包含有關網站錯誤的簡要資訊。您可以在客戶面板上的 網站與域名 > <domain_name> > 日誌 > 選擇僅 Apache 錯誤 和 nginx 錯誤 而不是右邊的 所有日誌 以查看某個網站的錯誤日誌。當您修改 web 應用程式防火牆模式從禁用或僅檢測到啟用時,網站可能會停止運行。在網站錯誤日誌中您可以找到類似 403
、404
或 500
的錯誤代碼,您把 web 應用程式防火牆模式更改回 僅檢測 或 禁用 時這些代碼則不會出現。如果出現這樣的情況,請分析 ModSecurity 審計日誌查找原因。您可以關閉特別嚴格的安全規則或調整網站。
要找出為何一個網站上的 HTTP 請求無法完成而關閉安全規則:
Ctrl+F
)查找出問題的網站(域名)。例如,your_domain.tld
。瀏覽器將會高亮突出某些項,如 HOST: your_domain.tld
,在高亮突出的三行中找出字串 --eece5138-B--
。連字號中間的八個字元(即 eece5138
)是 HTTP 請求觸發的事件的 ID。H
的條目(例如,eece5138-H--
)。該條目包含 ID 和當檢查 HTTP 請求時觸發的安全規則的描述。安全規則 ID 是在方框內帶有 ID
首碼置於引號中的自 3
開始的一個整數 例如,[id "340003"]
。[id "3
在事件中查找安全規則 ID。340003
)、標籤(例如,CVE-2011-4898)或按常規表達(例如,XSS
)選擇安全規則並點按 確定。