ModSecurity não funciona no IIS

ModSecurity não funciona no IIS

Instalei o módulo ModSecurity IIS em uma VM do Windows Server 2012. Eu tenho um aplicativo de teste simples em execução em seu próprio pool de aplicativos.

padrão.aspx- Apenas uma página simples que exibe a data/hora.

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

Quando navego no site (por exemplohttp://localhost?testparam=teste), minha página de teste é apresentada em vez de 403. Não há nada registrado no Visualizador de Eventos.

Responder1

Parece provável que você seja vítima deste problema:https://github.com/SpiderLabs/ModSecurity/issues/787

A resposta de Broco está próxima, mas não chama atenção para a parte mais importante: overrideModeDefault="Allow". Se você verificar seu arquivo C:\Windows\System32\inetsrv\Config\applicationHost.config, provavelmente verá

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

Isso precisa ser alterado para “Permitir” ou então adicionar <ModSecurity ...>ao arquivo de configuração do seu site basicamente desativará o ModSecurity.

Responder2

Você editou C:\Windows\System32\inetsrv\config? Você tem que habilitar o modsecurity adicionando

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

Além disso, seus arquivos de configuração nunca devem,SEMPREesteja em seu wwwroot. Coloque-o em um local seguro, por exemplo:

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

Observe também que de acordo com a documentação o arquivo deve se chamar modsecurity_iis.conf no Windows.

informação relacionada