La seguridad en entornos web es crucial para proteger los sistemas contra ataques cibernéticos. Fail2Ban y ModSecurity son herramientas populares que trabajan juntas para fortalecer la defensa de un servidor web contra amenazas potenciales. Sin embargo, es esencial verificar que las reglas de Fail2Ban para ModSecurity funcionen correctamente para garantizar una protección efectiva. Aquí te mostramos cómo realizar esta verificación.
Paso 1: Instalación y Configuración de ModSecurity
Antes de verificar las reglas de Fail2Ban, asegúrate de que ModSecurity esté instalado y configurado correctamente en tu servidor web. Asegúrate de que ModSecurity esté generando registros de eventos y que estos se almacenen en un archivo de registro específico.
Paso 2: Creación de un Filtro Fail2Ban para ModSecurity
En el directorio de filtros de Fail2Ban, generalmente ubicado en /etc/fail2ban/filter.d/
, crea un nuevo archivo para tu filtro de ModSecurity, si no existe (a veces puede aparecer como apache-modsecurity.conf). Este archivo contendrá la expresión regular que identifica los eventos relevantes en los registros de ModSecurity.
La regla que viene por defecto:
failregex = ^%(_apache_error_client)s ModSecurity:\s+(?:\[(?:\w+ \"[^\"]*\"|[^\]]*)\]\s*)*Access denied with code [45]\d\d
no funciona correctamente y es necesario ajustar una nueva expresión regular. Pero para ello verifiquemos primero con el siguiente comando:
sudo fail2ban-regex /ruta/a/tu/archivo/de/registro /etc/fail2ban/filter.d/modsecurity.conf
Si todo está configurado correctamente, deberías ver un resultado que muestra las líneas del registro que coinciden con tu expresión regular. Esto confirma que Fail2Ban puede identificar las entradas relevantes en los registros de ModSecurity. En caso contrario, la regla que suele funcionar es la siguiente:
failregex = ^.*\[client <HOST>\] ModSecurity: Warning