為了檢測和阻止對 web 應用程式的攻擊,web 應用程式防火牆 (ModSecurity) 會檢測所有違反規則集的到 web 伺服器的請求以及來自伺服器的相關回應。如果檢查成功,該 HTTP 請求就會被傳遞到網站內容以檢索內容。如果檢測失敗,則會執行預定義的操作。

ModSecurity is supported in both Plesk for Linux and for Windows. It works as a web server (Apache, Nginx, or IIS) module.

啟用 ModSecurity

若要啟用 web 應用程式防火牆:

  1. Go to Tools & Settings > Web Application Firewall (ModSecurity) (under 「Security」).

    若未看到該連結,請進入 工具與設定 > 更新 > 添加/移除組件 > 主機 組裡安裝 ModSecurity 組件。

    image 78702

  2. 設定 web 應用程式防火牆模式為 啟用僅檢測 。會針對一組規則對每次接收的 HTTP 請求以及相應回應進行檢查。如果檢查成功,該 HTTP 請求就會被傳遞到網站以檢索內容。如果檢查失敗,該事件將會被記錄。在 僅檢測 模式中,不會執行任何其他操作。在 啟用 模式中,HTTP 回應將會提供一個錯誤代碼。

    備註: 可在伺服器和域名級別範圍設定 web 應用程式防火牆模式。但是,域名級別模式不能高於伺服器級別模式的設定。例如,如果伺服器級別的 web 應用程式防火牆在 僅檢測 模式中運行,您將無法為域名設定 啟用 模式。只會顯示 禁用僅檢測 模式。

  3. (Linux) Go to the 「Settings」 tab, and then in the Run rules on drop-down menu, select the desired combination of the web server and ModSecurity version:

    • Apache (ModSecurity 2.9) (recommended).

    • Nginx (ModSecurity 3.0).

      備註: Switching to Nginx (ModSecurity 3.0) may affect your existing applications. We recommend trying ModSecurity 3.0 out on a test server before switching your production environment to that version.

    If your Plesk server is running on a Microsoft Windows operating system, you will be able to select only the IIS (ModSecurity 2.9) combination and all the related settings will be present on one tab.

  4. Select an available set of rules that will be checked by the web application firewall engine for each incoming HTTP request, or upload a custom rule set. You can select the following rule sets:

    image 78703

    • Atomic Standard (free, can be upgraded to Atomic Advanced). A free starter version of the Atomic ModSecurity rules, bundled with Plesk. It contains important security features and bug fixes released on a monthly basis. For rules included in this rule set, see Atomic ModSecurity Rule Sets.

    • OWASP (free). The OWASP ModSecurity Core Rule Set (CRS) provides generic protection from unknown vulnerabilities often found in web applications. This rule set is shipped for free. It is known as a very restrictive rule set; it requires additional tuning for production use. When this rule set is selected, WordPress partly does not work, webmail and file sharing do not work either. You can use Atomic or Comodo rule sets instead.

    • (Plesk for Linux) Comodo (free). A free, simple-to-use, customizable, rules-based traffic control system that protects your web-based applications and prevents newly emerging hacking techniques with the use of a frequently updated rules database. Unlike the 「Comodo (free subscription)」 rule set, you do not need a subscription on the Comodo website to select 「Comodo (free)」.

    • Atomic Advanced. The latest version of the rules, with all the performance enhancements, new security features and bug fixes released by Atomicorp GotRoot on a daily basis. This is a commercial rule set that is fully supported and recommended for production use. Plesk provides the Security Core Complete by Atomicorp extra feature that allows you to enable this rule set in Plesk. You can get this extra feature by the following ways:

      • 可直接在 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 網站上已經有帳戶,您可以提供您的用戶名和密碼以啟用該規則集。

      備註: If you get this extra feature, the Plesk interface will display Atomic Advanced instead of Atomic Standard (free, can be upgraded to Atomic Advanced), and this actually means the complete Atomic Advanced ModSecurity rule set.

      欲瞭解該規則集中的所有規則,請參閱 Atomic ModSecurity 規則集

      警示: (Plesk for Linux) If you select the Atomic ruleset, perform the following procedure to ensure that ModSecurity works fine. Run the aum -u command on the server. The Plesk modsecurity package will be replaced by that from the Atomic repository. Then run the following commands:

      • plesk sbin modsecurity_ctl --disable
      • plesk sbin modsecurity_ctl --enable
      • service httpd restart
    • (Plesk for Linux) Comodo (free subscription). This is a simple-to-use, customizable rules-based traffic control system that protects your web-based applications and prevents newly emerging hacking techniques with the use of a frequently updated rules database. This rule set is shipped for free. To enable this rule set in Plesk, register on the Comodo site and provide your username and password from this site.

      備註: By default, Plesk does not show the 「Comodo (free subscription)」 rule set. To make the rule set visible in the Plesk interface, add the following lines to the panel.ini file:

      [modSecurity]
      ruleSet.comodo = 1
      
    • Custom rule set. You can upload a custom web application firewall rule set, for example, a trial package from Atomic or a free package from Comodo. Supported formats: zip, tar.gz, tgz, tar.bz2, conf.

  5. 若要自動更新選定的規則集,請選擇 更新規則集 核取方塊並選擇更新時段。

  6. 選擇預設的參數集或指定自訂的 ModSecurity 指令。您可以選擇以下預設的參數集:

    • Fast ,當 HTTP 請求 URI 和部分標頭被分析時。該模式消耗的 CPU 最少。

    • Tradeoff ,當 HTTP 請求 URI、標頭和請求 POST 資料被分析時。該模式在品質和性能之間有很好的平衡。

    • Thorough ,當完整的 HTTP 請求頭、請求 POST 資料和 HTTP 回應正文內容被分析時。該模式消耗的 CPU 資源最多,但是推薦用於需要特殊安全措施的網站。例如,線上商店接受卡支付。

      備註: 為了達到最優性能,web 應用程式防火牆需要本地的 DNS 伺服器啟用請求緩存功能。否則,當啟用 web 應用程式防火牆時您的網站可能會運行很慢。

      image 76906

日誌檔 (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)

On Windows, ModSecurity audit logs are domain-specific and located in %plesk_dir%ModSecurity\vhosts\<domain's GUID>\logs (where %plesk_dir% is the default installation directory for Plesk).

禁用規則

當您修改 web 應用程式防火牆模式從 禁用僅檢測啟用 時,網站可能會停止運行。在網站錯誤日誌中您可以找到類似 403404500 的錯誤代碼,您把 web 應用程式防火牆模式更改回 僅檢測禁用 時這些代碼則不會出現。如果出現這樣的情況,請分析 ModSecurity 審計日誌查找原因。您可以關閉特別嚴格的安全規則或調整網站。

要找出為何一個網站上的 HTTP 請求無法完成:

  1. 查看網站的審計日誌檔。

    在 Plesk for Linux 中,您可以使用 Plesk 的 UI 查看日誌:進入  工具與設定 > Web 應用程式防火牆 (ModSecurity) 點按 ModSecurity 日誌檔 連結下載審計日誌並在新的瀏覽器視窗中打開該日誌。

  2. 使用搜尋(在大部分的 web 瀏覽器中按下 Ctrl+F )查找出問題的網站(域名)。例如, your_domain.tld 。瀏覽器將會高亮突出某些項,如 HOST: your_domain.tld. 在凸顯條目以上的三行中,找到如 --eece5138-B-- 的字串。連字號中間的八個字元(即 eece5138 )是 HTTP 請求觸發的事件的 ID。

  3. 進一步查找帶有相同事件 ID 的其它條目。查找事件 ID 後面帶有字母 H 的條目(例如, eece5138-H-- )。該條目包含 ID 和當檢查 HTTP 請求時觸發的安全規則的描述。安全規則 ID 是在方框內帶有 ID 首碼置於引號中的自 3 開始的一個整數 例如, [id "340003"]

  4. 使用子字串 [id "3 在事件中查找安全規則 ID。當您禁用規則時可能會使用該 ID。

若要禁用規則:

  1. 請進入  工具與設定 > Web 應用程式防火牆 (ModSecurity) 進行操作。
  2. 禁用安全規則 部分,按 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 將不會對其檢查。