前言
以前在 IIS 7 時,有使用 UrlScan 這個 WAF 來保護IIS,但目前 UrlScan 已無法用在 IIS 10 上面。
所以可以改使用 ModSecurity,以下介紹如何在 Windows 2019 有 IIS 的 Web Server 上安裝啟用 ModSecurity 。
實作
1、確定 IIS 已安裝。
2、安裝 ModSecurity
請到 ModSecurity Release
下載 ModSecurityIIS_2.9.4-64b.msi 安裝。

3、啟用ModSecurity
預設(shè)ModSecurity 是安裝在C:\Program Files\ModSecurity IIS 目錄。
3.1.到C:\inetpub\wwwroot 目錄建立一個modsecurity的目錄,
3.2.將C:\Program Files\ModSecurity IIS 目錄中的modsecurity.conf, modsecurity_iis.conf 及unicode.mapping 復制到C:\inetpub\wwwroot\modsecurity 目錄。
3.3.修改C:\inetpub\wwwroot\web.config ,啟用ModSecurity 的設(shè)定,如下:
-
<?xml version="1.0" encoding="UTF-8"?>
-
-
-
-
<ModSecurity enabled="true" configFile="c:\inetpub\wwwroot\modsecurity\modsecurity_iis.conf" />
-
-
預設(shè)ModSecurity 是偵測模式,所以請將它改成啟用,修改c:\inetpub\wwwroot\modsecurity\modsecurity.conf
將SecRuleEngine DetectionOnly 改成SecRuleEngine On,
并在最后一行加上驗證的Rule 如下:
SecRule ARGS:testparam "test" "id:1234,deny,status:403,msg:'Our test rule has triggered'"
Rule是說,如果QueryString的參數(shù)為 testparam 而且它的值為test,就會被ModSecurity 拒絕,并回傳403。
4、重啟IIS,查看事件檢視器中應用程式中的ModSecurity 是否有無錯誤(如果沒看到,可以直接用Browser 連http://localhost)。

5、測試Rule 1234 是否會被擋。
開啟Browser 連http://localhost/?testparam=test,就可以發(fā)現(xiàn),網(wǎng)頁會被ModSecurity 給擋住了

參考資源
ModSecurity 手冊
最新支持的 Visual C++ 下載
該文章在 2024/7/5 17:28:58 編輯過