Guía para Proteger Nginx con Fail2ban, DDoS

Artículos Guías Manuales Sistemas Linux Windows Binario 0

Fail2ban es una herramienta eficaz para proteger tu servidor Nginx contra ataques de denegación de servicio (DDoS) y fuerza bruta. A continuación, se detallan los pasos para instalar y configurar Fail2ban con Nginx.

Instalación de Fail2ban

En Ubuntu/Debian, ejecuta:

apt-get install fail2ban

Configuración

Configuración de Nginx

Configura Nginx para limitar el número de solicitudes por dirección IP y registrar la información de las IP bloqueadas en el log de errores.

Configuración de Fail2ban

Filtro de Fail2ban

Crea el archivo de filtro en /etc/fail2ban/filter.d/nginx-req-limit.conf con el siguiente contenido:

[Definition]
failregex = limiting requests, excess:.* by zone.*client: <HOST>
ignoreregex =

Jail de Fail2ban

Crea o edita el archivo jail.local en /etc/fail2ban/jail.local y añade la siguiente configuración:

[nginx-req-limit]
enabled = true
filter = nginx-req-limit
action = iptables-multiport[name=ReqLimit, port="http,https", protocol=tcp]
logpath = /var/log/nginx/*error.log
findtime = 600
bantime = 7200
maxretry = 10

Reiniciar Fail2ban

Después de guardar los archivos de configuración, reinicia Fail2ban:

service fail2ban restart

Pruebas y Monitoreo

Para asegurarte de que Fail2ban está funcionando correctamente, monitorea el archivo de log de Fail2ban:

tail -f /var/log/fail2ban.log

También puedes verificar el estado de una jail específica:

fail2ban-client status nginx-req-limit

Depuración

Para depurar configuraciones de Fail2ban, usa:

fail2ban-client -d

Y para probar los filtros:

fail2ban-regex /var/log/nginx/example.com.error.log /etc/fail2ban/filter.d/nginx-req-limit.conf