Imagen de Ayuda dinahosting

Qué es mod_security y cuáles son sus excepciones

Programación, Seguridad

Categorías


Estás en
Inicio > Seguridad > Qué es mod_security y cuáles son sus excepciones

Qué es mod_security y cuáles son sus excepciones

mod_security es un módulo de seguridad de Apache, actúa como firewall de aplicaciones web (WAF) y su trabajo es filtrar y bloquear las solicitudes HTTP sospechosas, pudiendo bloquear ataques de fuerza bruta, vulnerabilidades de cross scripting (XSS), ataques por inyección SQL (SQLi), etc.

mod_security está activo en todos nuestros servidores Linux por defecto. Aunque no es posible deshabilitarlo completamente por razones de seguridad, este módulo permite añadir excepciones mediante el fichero .htaccess en el caso de que trate de un falso positivo.

 

¿Cómo identificar un bloqueo de mod_security?

Si al efectuar alguna tarea en nuestra web, tal como actualizar un formulario, añadir una entrada en WordPress o cualquier otro CMS o realizar un pago a través de un TPV  y te encuentras con un error 406, posiblemente estemos ante un bloqueo de mod_security.

mod_security 406

 

Para confirmar que el bloqueo es debido a una regla de modsecurity, lo más efectivo sería comprobar el log de errores de Apache disponible en nuestro hosting.

Puedes acceder al log de errores de Apache usando el explorador de ficheros disponible en el apartado FTP de tu hosting, o conectándote mediante FileZilla. El fichero que debes descargar se llama apache.error.log y está ubicado en el directorio logs de tu hosting.

apache error log

Una vez descargado el log, abre el fichero con cualquier editor de texto de tu equipo y revisa las últimas peticiones realizadas, si el log es muy grande puedes buscar las palabras ModSecurity o simplemente las que contengan tu IP.

Si se trata de un bloqueo de mod_security verás úna línea similar a esta:

[Mon Apr 26 13:24:15.571708 2021] [:error] [pid 8xxx:tid 1401138623xxxxx] [client 123.456.789.012:49500] [client 123.456.789.012] ModSecurity: Access denied with code 406 (phase 2). Pattern match "^POST$" at REQUEST_METHOD. [file "/etc/modsecurity/custom/20_bruteforce.conf"] [line "43"] [id "210"] [msg "Accept header required"] [hostname "ejemplo.com"] [uri "/"] [unique_id "YIai31JimwwAAB9Mo7EAAA"]

En este mensaje podrás identificar fácilmente las siguientes etiquetas:

  • Fecha y hora de la petición: [Mon Apr 26 13:24:15.571708 2021]
  • IP del visitante: [client 123.456.789.012]
  • Tipo de error: ModSecurity: Access denied with code 406 (phase 2)
  • Identificador de error de ModSecuriy: [id "210"]
  • Nuestra web: [hostname "ejemplo.com"]

Añadir excepción

Una vez identificado y confirmado que el problema se trata de mod_security, que la petición se realiza desde nuestra IP o en su defecto la IP de un equipo o servidor de nuestra confianza, podemos añadir una excepción de seguridad para esta regla, añadiendo el siguiente código en el fichero .htaccess de nuestro hosting.

<IfModule mod_security2.c>
SecRuleRemoveById 210
</IfModule>

Importante: Asegúrate que el código que añades después de la línea SecRuleRemoveById se corresponda con el identificador de error que has visto en tu log de errores de Apache.

El fichero .htaccess lo podrás editar desde el explorador de ficheros en la sección FTP del hosting, este fichero se encontrará en el directorio www de tu hosting o en el directorio donde tengas instalada tu aplicación.

htaccess







    Valóranos

    ¿Te ha ayudado este artículo?










    ¿Has encontrado este artículo con facilidad?










    ¿No das tu opinión sobre el artículo?