ModSecurity не работает на IIS

ModSecurity не работает на IIS

Я установил модуль ModSecurity IIS на виртуальную машину Windows Server 2012. У меня есть простое тестовое приложение, работающее в собственном пуле приложений.

по умолчанию.aspx-- Просто простая страница, которая выдает дату/время.

веб-конфигурация

<?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'"

Когда я захожу на сайт (например,http://localhost?testparam=test), вместо страницы 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.

Связанный контент