前言
以前在 IIS 7 時(shí),有使用 UrlScan 這個(gè) WAF 來(lái)保護(hù)IIS,但目前 UrlScan 已無(wú)法用在 IIS 10 上面。
所以可以改使用 ModSecurity,以下介紹如何在 Windows 2019 有 IIS 的 Web Server 上安裝啟用 ModSecurity 。
實(shí)作
1、確定 IIS 已安裝。
2、安裝 ModSecurity
請(qǐng)到 ModSecurity Release
下載 ModSecurityIIS_2.9.4-64b.msi 安裝。
3、啟用ModSecurity
預(yù)設(shè)ModSecurity 是安裝在C:\Program Files\ModSecurity IIS 目錄。
3.1.到C:\inetpub\wwwroot 目錄建立一個(gè)modsecurity的目錄,
3.2.將C:\Program Files\ModSecurity IIS 目錄中的modsecurity.conf, modsecurity_iis.conf 及unicode.mapping 復(fù)制到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" />
-
-
預(yù)設(shè)ModSecurity 是偵測(cè)模式,所以請(qǐng)將它改成啟用,修改c:\inetpub\wwwroot\modsecurity\modsecurity.conf
將SecRuleEngine DetectionOnly 改成SecRuleEngine On,
并在最后一行加上驗(yàn)證的Rule 如下:
SecRule ARGS:testparam "test" "id:1234,deny,status:403,msg:'Our test rule has triggered'"
Rule是說(shuō),如果QueryString的參數(shù)為 testparam 而且它的值為test,就會(huì)被ModSecurity 拒絕,并回傳403。
4、重啟IIS,查看事件檢視器中應(yīng)用程式中的ModSecurity 是否有無(wú)錯(cuò)誤(如果沒(méi)看到,可以直接用Browser 連http://localhost)。
5、測(cè)試Rule 1234 是否會(huì)被擋。
開(kāi)啟Browser 連http://localhost/?testparam=test,就可以發(fā)現(xiàn),網(wǎng)頁(yè)會(huì)被ModSecurity 給擋住了
參考資源
ModSecurity 手冊(cè)
最新支持的 Visual C++ 下載
該文章在 2024/7/5 17:28:58 編輯過(guò)