Web 應用程式防火牆 (ModSecurity)
為了檢測和阻止對 web 應用程式的攻擊,web 應用程式防火牆 (ModSecurity) 會檢測所有違反規則集的到 web 伺服器的請求以及來自伺服器的相關回應。如果檢查成功,該 HTTP 請求就會被傳遞到網站內容以檢索內容。如果檢測失敗,則會執行預定義的操作。
Plesk for Linux 和 Plesk for Windows 都支援 ModSecurity。以 web 伺服器 (Apache 或 IIS) 模組的形式工作。
備註: 若要使用 web 應用程式防火牆 (ModSecurity),從 Plesk 11.5 升級的管理員必須從 Plesk 或其供應商獲取 Plesk Onyx 的許可證金鑰。
啟用 ModSecurity
若要啟用 web 應用程式防火牆:
-
請進入 工具與設定 > Web 應用程式防火牆 (ModSecurity) (在 安全性 組裡)進行操作。
若未看到該連結,請進入 工具與設定 > 更新與升級 > 添加/移除組件 > 主機 組裡安裝 ModSecurity 組件。
-
設定 web 應用程式防火牆模式為 啟用 或 僅檢測 。會針對一組規則對每次接收的 HTTP 請求以及相應回應進行檢查。如果檢查成功,該 HTTP 請求就會被傳遞到網站以檢索內容。如果檢查失敗,該事件將會被記錄。在 僅檢測 模式中,不會執行任何其他操作。在 啟用 模式中,HTTP 回應將會提供一個錯誤代碼。
備註: 可在伺服器和域名級別範圍設定 web 應用程式防火牆模式。但是,域名級別模式不能高於伺服器級別模式的設定。例如,如果伺服器級別的 web 應用程式防火牆在 僅檢測 模式中運行,您將無法為域名設定 啟用 模式。只會顯示 禁用 和 僅檢測 模式。
-
設定將被 web 應用程式防火牆引擎為每個接收 HTTP 請求檢測的規則集,或上傳自訂規則集。您可以設定以下規則集:
-
Atomic Basic ModSecurity. 與 Plesk 綁定的 Atomic ModSecurity 規則的 starter 版本。包含每月發行的重要安全功能和 bug 修復程式。欲瞭解該規則集中的所有規則,請參閱 Atomic ModSecurity 規則集 。
-
OWASP ModSecurity Core Rule Set (CRS). CRS 會對在 web 應用程式中找到的未知漏洞提供通用保護。該規則集免費。該規則集非常嚴格,生產使用需要額外調整。當選定了該規則集時,部分 WordPress 功能失效,web 郵箱和檔共用完全不能工作。因而可使用 Atomic 或 Comodo 規則集來替代。
-
Advanced ModSecurity Rules by Atomicorp 。最新最強大的規則版本,所有性能得以提升,新增安全功能,由 Atomicorp GotRoot 每日發行 bug 修復程式。這是一個商業性的規則集,完全支援和適合生產用途。Plesk 還提供 Security Core Complete by Atomicorp 額外的功能,可以在 Plesk 中啟用該規則集。您可以通過以下方式獲取額外的功能:
- 可直接在 Plesk 線上商店 中購買 Advanced ModSecurity Rules by Atomicorp 產品。
- If you already have a Plesk license, you can add the extra feature via the Plesk Partner Central UI or via the Partner API (for details, refer to the Partner Central User’s Guide or Partner API 3.0 reference).
- 如果您已經有 Plesk 許可證但是無法存取 Plesk 合作夥伴中心,可聯繫您的提供商。
如果您在 Atomic 網站上已經有帳戶,您可以提供您的用戶名和密碼以啟用該規則集。
備註: 如果您購買了該功能,Plesk 使用者介面將會顯示 Advanced ModSecurity Rules by Atomicorp 而不是 Atomic Basic ModSecurity ,表示完整的 Atomic ModSecurity 規則集。
備註: Atomicorp 還不支援 Ubuntu 18.04。因此,Atomic 規則集(基礎的和高級的)無法在安裝有 Ubuntu 18.04 的 Plesk 伺服器上於 ModSecurity 中啟用。
欲瞭解該規則集中的所有規則,請參閱 Atomic ModSecurity 規則集 。
請注意 (Linux): 如果您選擇了 Atomic 規則集以確保 ModSecurity 運行正常。在伺服器上運行
aum -u
命令。Plesk modsecurity 套裝程式將被來自 Atomic 庫的套裝程式所替代。然後運行以下命令:plesk sbin modsecurity_ctl --disable
plesk sbin modsecurity_ctl --enable
service httpd restart
-
Comodo ModSecurity 規則集 (Linux). 這是一個簡單易用、可自訂規則的流量控制系統,應用頻繁更新的規則資料庫保護您的 web 應用程式防止駭客攻擊。該規則集免費。若要在 Plesk 中啟用該規則集,請在 Comodo 網站 上註冊並提供您的用戶名和密碼。
-
自訂 。您可以上傳自訂的 web 應用程式防火牆規則集,例如,Atomic 的試用包或 Comodo 的免費包。支援的格式:zip、tar.gz、tgz、tar.bz2、conf。
-
-
若要自動更新選定的規則集,請選擇 更新規則集 核取方塊並選擇更新時段。
-
選擇預設的參數集或指定自訂的 ModSecurity 指令。您可以選擇以下預設的參數集:
-
Fast ,當 HTTP 請求 URI 和部分標頭被分析時。該模式消耗的 CPU 最少。
-
Tradeoff ,當 HTTP 請求 URI、標頭和請求 POST 資料被分析時。該模式在品質和性能之間有很好的平衡。
-
Thorough ,當完整的 HTTP 請求頭、請求 POST 資料和 HTTP 回應正文內容被分析時。該模式消耗的 CPU 資源最多,但是推薦用於需要特殊安全措施的網站。例如,線上商店接受卡支付。
備註: 為了達到最優性能,web 應用程式防火牆需要本地的 DNS 伺服器啟用請求緩存功能。否則,當啟用 web 應用程式防火牆時您的網站可能會運行很慢。
-
日誌檔 (Linux)
在 Linux 系統上,ModSecurity 使用兩個位址來存儲日誌:
- ModSecurity 審計日誌(位於
/var/log/modsec_audit.log
)非常詳細,該日誌被整個 Plesk 伺服器使用。當 ModSecurity 檢測到任何發生的事件時,就會在審計日誌檔中生成一個條目。若要查看 ModSecurity 審計日誌,請進入 工具與設定 > Web 應用程式防火牆 (ModSecurity) > 點按 日誌存檔 連結 (在 ModSecurity 審計日誌 部分)。您可在此查看 ModSecurity 日誌檔和其修改日期,以及下載日誌檔。 - 域名的 Apache 錯誤日誌(位於
/var/www/vhosts/DOMAIN.TLD/logs/error_log
)只包含有關網站錯誤的簡要資訊。您可以在客戶面板上的 網站與域名 > <domain_name> > 日誌 > 選擇僅 Apache 錯誤 和 nginx 錯誤 而不是右邊的 所有日誌 以查看某個網站的錯誤日誌。
日誌檔 (Windows)
在 Windows 系統上,ModSecurity 審計日誌是域名級別的,位於 %plesk_dir%\ModSecurity\vhosts\<domain's GUID>\logs
(其中 %plesk_dir%
是 Plesk 的預設安裝目錄)。
禁用規則
當您修改 web 應用程式防火牆模式從 禁用 或 僅檢測 到 啟用 時,網站可能會停止運行。在網站錯誤日誌中您可以找到類似 403
、 404
或 500
的錯誤代碼,您把 web 應用程式防火牆模式更改回 僅檢測 或 禁用 時這些代碼則不會出現。如果出現這樣的情況,請分析 ModSecurity 審計日誌查找原因。您可以關閉特別嚴格的安全規則或調整網站。
要找出為何一個網站上的 HTTP 請求無法完成:
-
查看網站的審計日誌檔。
在 Plesk for Linux 中,您可以使用 Plesk 的 UI 查看日誌:進入 工具與設定 > Web 應用程式防火牆 (ModSecurity) 點按 ModSecurity 日誌檔 連結下載審計日誌並在新的瀏覽器視窗中打開該日誌。
-
使用搜尋(在大部分的 web 瀏覽器中按下
Ctrl+F
)查找出問題的網站(域名)。例如,your_domain.tld
。瀏覽器將會高亮突出某些項,如HOST: your_domain.tld
. 在凸顯條目以上的三行中,找到如--eece5138-B--
的字串。連字號中間的八個字元(即eece5138
)是 HTTP 請求觸發的事件的 ID。 -
進一步查找帶有相同事件 ID 的其它條目。查找事件 ID 後面帶有字母
H
的條目(例如,eece5138-H--
)。該條目包含 ID 和當檢查 HTTP 請求時觸發的安全規則的描述。安全規則 ID 是在方框內帶有ID
首碼置於引號中的自3
開始的一個整數 例如,[id "340003"]
。 -
使用子字串
[id "3
在事件中查找安全規則 ID。當您禁用規則時可能會使用該 ID。
若要禁用規則:
- 請進入 工具與設定 > Web 應用程式防火牆 (ModSecurity) 進行操作。
- 在 禁用安全規則 部分,按 ID(例如,
340003
)、標籤(例如, CVE-2011-4898 )或按常規表達(例如,XSS
)選擇安全規則並點按 確定 。
Nginx 和 ModSecurity 說明 (Linux)
在 Linux 上,ModSecurity 是 Apache 的一個模組。因此,只能檢查到達 Apache HTTP 請求。Apache 可輔以另一款 web 伺服器 - nginx。如果您啟用 由 nginx 處理 PHP 選項用於處理網站的動態內容(在網站的 Apache 與 nginx 設定 中),web 應用程式防火牆將無法檢查 HTTP 請求因為這些請求永遠不會到達 Apache。對於靜態內容,如果啟用了 由 nginx 直接服務靜態檔 選項,HTTP 請求將不會到達 Apache,因此 ModSecurity 將不會對其檢查。
升級說明 (Linux)
針對在升級到 Plesk Onyx 之前於伺服器上安裝了 ModSecurity 的有用提示。
- Plesk 將會安裝自己的 ModSecurity 套裝程式。但是,在升級前 檢查的過程中,Plesk 安裝程式將會詢問您是否同意在現有安裝中安裝 Plesk ModSecurity。
- 保留現有的 ModSecurity 配置。但是,ModSecurity 有很多版本和配置,因此很難預測新舊配置會如何發生衝突。若要避免此問題的出現,請在升級到 Plesk Onyx(或在安裝 Plesk 的 ModSecurity 之前)保存您現有的配置並卸載 ModSecurity。