ModSecurity funktioniert nicht auf IIS

ModSecurity funktioniert nicht auf IIS

Ich habe das ModSecurity IIS-Modul auf einer Windows Server 2012-VM installiert. Ich habe eine einfache Testanwendung, die in ihrem eigenen App-Pool ausgeführt wird.

Standardmäßig.aspx– Nur eine einfache Seite, die Datum/Uhrzeit ausgibt.

web.config

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

modsecurity.conf

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

Wenn ich die Site aufrufe (z. B.http://localhost?testparam=test), wird mir statt einer 403-Meldung meine Testseite angezeigt. In der Ereignisanzeige wird nichts protokolliert.

Antwort1

Es ist wahrscheinlich, dass Sie von diesem Problem betroffen sind:https://github.com/SpiderLabs/ModSecurity/issues/787

Brocos Antwort ist nah dran, aber sie lenkt die Aufmerksamkeit nicht auf den wichtigsten Teil: overrideModeDefault="Allow". Wenn Sie Ihre Datei C:\Windows\System32\inetsrv\Config\applicationHost.config überprüfen, werden Sie wahrscheinlich sehen

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

Dies muss auf „Zulassen“ geändert werden. Andernfalls <ModSecurity ...>wird durch das Hinzufügen zur Konfigurationsdatei Ihrer Website im Wesentlichen nur ModSecurity deaktiviert.

Antwort2

Hast du C:\Windows\System32\inetsrv\config bearbeitet? Dort musst du Modsecurity aktivieren, indem du

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

Auch Ihre Konfigurationsdateien sollten niemalsIMMERmuss in Ihrem wwwroot sein. Legen Sie es an einen sicheren Ort, z. B.:

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

Beachten Sie auch, dass die Datei unter Windows gemäß Dokumentation „modsecurity_iis.conf“ heißen sollte.

verwandte Informationen