1 votos

Mitigar la bomba 404 con Nginx

Recibo consultas 404 y esto hace que se me caiga la máquina. Cerca de todas mis páginas son http en caché y tengo algunos básicos Dos protección con

limit_conn_zone $http_x_forwarded_for zone=addr:10m;
limit_conn addr 8;

limit_req_zone $http_x_forwarded_for zone=one:10m rate=2r/s;
limit_req zone=one burst=50;

client_body_timeout 5s;
client_header_timeout 5s;
send_timeout 10s;

¿Qué puedo hacer para prevenir estos ataques 404 además de lo anterior?

4voto

papo Puntos 61

Después de fijar limit_req y limit_conn en nginx ¿los has habilitado en el virtualhost? Como en:

server {
    # ...
    location / {
        limit_req zone=one;
        limit_conn addr 10;

    # ...
    }
}

Además, fail2ban es un analizador de registros para la creación automática de reglas dinámicas en el cortafuegos (iptables). Puedes crear un filtro y una acción en fail2ban que filtre la IP de origen de los 404 y los bloquee después de un número de intentos, o puedes filtrar los logs limit_req y limit_conn para que puedas banear esas IPs en su lugar (bloquear la IP de los clientes 404 podría causar algunos bloqueos no deseados).

vim /etc/fail2ban/jail.d/nginx.conf

Entendido:

[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
  • findtime es el tiempo en segundos para las ocurrencias en maxretry En este caso, se activaría tras 10 eventos en 10 minutos (600 segundos).
  • bantime es el momento de poner la IP en la lista negra del cortafuegos. También en segundos. En este caso bloquearía la IP infractora durante 2 horas (7200 segundos).
  • logpath es el registro de errores que configuró para su virtualhost en nginx .

Asegúrese de que jail.conf incluye el jail.d/*.conf y reinicie el servicio:

service fail2ban restart

Esto debería ayudarle a evitar ataques DDoS.

Otra opción que vale la pena considerar es utilizar una CDN, como se indica en el comentario anterior. Cloudflare tiene una buena versión gratuita que puede ayudar mucho, tiene un Web Application Firewall que bloquea algunos de los malos bots y esas cosas. Las versiones pro/business tienen más opciones, pero cuestan dinero.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X