ModSecurity no funciona en IIS

ModSecurity no funciona en IIS

Instalé el módulo ModSecurity IIS en una máquina virtual con Windows Server 2012. Tengo una aplicación de prueba sencilla que se ejecuta en su propio grupo de aplicaciones.

predeterminado.aspx-- Sólo una página simple que muestra la fecha/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'"

Cuando navego por el sitio (p. ej.http://localhost?testparam=prueba), se me presenta mi página de prueba en lugar de un 403. No hay nada registrado en el Visor de eventos.

Respuesta1

Parece probable que seas víctima de este problema:https://github.com/SpiderLabs/ModSecurity/issues/787

La respuesta de Broco es cercana, pero no llama la atención sobre la parte más importante: overrideModeDefault="Allow". Si revisa su archivo C:\Windows\System32\inetsrv\Config\applicationHost.config, probablemente verá

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

Esto debe cambiarse a "Permitir" o, de lo contrario, agregarlo <ModSecurity ...>al archivo de configuración de su sitio web esencialmente deshabilitará ModSecurity.

Respuesta2

¿Editaste C:\Windows\System32\inetsrv\config? Tienes que habilitar modsecurity allí agregando

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

Además, sus archivos de configuración nunca deberían,ALGUNA VEZestar en su wwwroot. Ponlo en un lugar seguro, por ejemplo:

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

También tenga en cuenta que, según la documentación, el archivo debería llamarse modsecurity_iis.conf en Windows.

información relacionada