
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.