ModSecurity 無法在 IIS 上運行

ModSecurity 無法在 IIS 上運行

我已在 Windows Server 2012 VM 上安裝了 ModSecurity IIS 模組。我有一個簡單的測試應用程式在自己的應用程式集區上運行。

預設.aspx-- 只是一個顯示日期/時間的簡單頁面。

網路設定

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <ModSecurity enabled="true" configFile="C:\inetpub\wwwroot\modsecurity.conf" />
    </system.webServer>
</configuration>

修改安全設定檔

SecRuleEngine On
SecRule ARGS:testparam "test" "id:1234,deny,status:403,msg:'Our test rule has triggered'"

當我瀏覽該網站時(例如http://localhost?testparam=測試),我看到的是我的測試頁面而不是 403。

答案1

您很可能是此問題的受害者:https://github.com/SpiderLabs/ModSecurity/issues/787

Broco 的答案很接近,但它沒有引起人們對最重要部分的注意:overrideModeDefault="Allow"。如果您檢查 C:\Windows\System32\inetsrv\Config\applicationHost.config 文件,您可能會看到

<section name="ModSecurity" overrideModeDefault="Deny" allowDefinition="Everywhere" /></sectionGroup>

需要將其更改為“允許”,否則添加<ModSecurity ...>到網站的設定檔實際上只會停用 ModSecurity。

答案2

您是否編輯了 C:\Windows\System32\inetsrv\config?您必須透過新增來啟用 modsecurity

<section name="ModSecurity" overrideModeDefault="Allow" allowDefinition="Everywhere" /></sectionGroup>

另外你的設定檔不應該,曾經位於您的 wwwroot 中。將其放在安全的地方,例如:

configFile="C:\Program Files\ModSecurity IIS\modsecurity_iis.conf"

另請注意,根據文檔,該文件在 Windows 上應稱為 modsecurity_iis.conf。

相關內容