Desactivar modsecurity para un directorio específico


11

¿Cómo deshabilita la seguridad de mods solo para un directorio específico? Recibo errores en phpMyAdmin causados ​​por un disparo de seguridad basado en reglas. Tengo los siguientes archivos configurados:

# /etc/httpd/modsecurity.d/modsecurity_crs_15_customrules.conf
<LocationMatch "^/phpMA/">
    SecRuleEngine Off
</LocationMatch>

# /etc/httpd/modsecurity.d/modsecurity_crs_60.custom.conf
<LocationMatch '^/phpMA/*'>
    SecRuleRemoveById 950004
    SecRuleRemoveById 950005
    SecRuleRemoveById 950006
    SecRuleRemoveById 960010
    SecRuleRemoveById 960012
</LocationMatch>

Por lo que puedo encontrar, el primer archivo debería deshabilitarlo, pero aún así se dispara, así que traté de agregar las ID de regla que se está disparando al archivo 60, pero aún se queja.

Estoy ejecutando los siguientes paquetes en CentOS 5.3:

  • mod_security-2.5.0-jason.2
  • httpd-2.2.8-jason.3
  • mod-php5-apache2-zend-ce-5.2.10-65

La respuesta aprobada no es segura. Consulte: serverfault.com/a/766395/345813
SherloxFR

Respuestas:


17

SecRuleEngine Off debe funcionar. ¿Has intentado poner SecRuleEngine dentro del directorio:

<Directory /var/www/site/phpMA>
SecRuleEngine Off
</Directory>

en lugar de LocationMatch?


1
Intentado añadir que en el fichero 15 y sigue recibiendo los mismos errores que se ven atrapados en modsecurity_audit.log
dragonmantank

¿Los archivos modsecurity_crs_15_customrules.conf y modsecurity_crs_60.custom.conf están incluidos (no comentados) en su /etc/httpd/conf.d/mod_security.conf?
hdanniel

facepalm No, no lo fueron. Eso lo cuidó.
dragonmantank

3

En algunos servidores y servidores web, es posible deshabilitar ModSecurity a través de .htaccess, pero solo en su totalidad (no en reglas individuales).

Para limitar esto a URL específicas, puede especificar una expresión regular en la <If>siguiente declaración ...

### DISABLE mod_security firewall
### Some rules are currently too strict and are blocking legitimate users
### We only disable it for URLs that contain the regex below
### The regex below should be placed between "m#" and "#" 
### (this syntax is required when the string contains forward slashes)
<IfModule mod_security.c>
  <If "%{REQUEST_URI} =~ m#/admin/#">
    SecFilterEngine Off
    SecFilterScanPOST Off
  </If>
</IfModule>

2

¡Nunca deshabilite todas las reglas! ¡Esto podría causar serios problemas de seguridad!

Debe verificar el archivo de registro de modsecurity con

tail -f /var/log/apache2/modsec_audit.log

y excluya cada regla una por una reproduciendo los errores en la interfaz phpmyadmin.

A continuación, agregue:

<Directory /path/to/phpmyadmin>
    <IfModule security2_module>
        SecRuleRemoveByTag "WEB_ATTACK/SQL_INJECTION"
        {And other rules you need to disable ...}
    </IfModule>
</Directory>

a /etc/apache2/mods-enabled/modsecurity.conf

La etiqueta que necesita eliminar estará en el archivo de registro de esta manera . Para obtener una descripción completa de la eliminación de reglas para una carpeta en particular, consulte el wiki de Github del proyecto .

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.