Inicio » Linux » Guía para Proteger Nginx con Fail2ban, DDoS

Guía para Proteger Nginx con Fail2ban, DDoS

Loading

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