Hoy vamos a evitar ataques DDos eliminando conexiones simultáneas a nuestro servidor nginx.
Primero tenemos que ir al archivo nginx.conf
Y añadimos lo siguiente:
http { limit_conn_zone $binary_remote_addr zone=addr:10m; server { location / { if ($http_user_agent ~* (curl|bot|crawler|spider)) { return 403; } limit_conn addr 10; ... } } }
La directiva limit_conn_zone
y el uso de limit_conn
en la configuración de Nginx son para controlar y limitar el número de conexiones simultáneas que un cliente puede hacer a tu servidor.
1. limit_conn_zone
limit_conn_zone $binary_remote_addr zone=addr:10m;
limit_conn_zone
define una «zona de memoria» donde se almacenan los estados de las conexiones. En este caso, está usando la variable$binary_remote_addr
, que representa la dirección IP del cliente en formato binario. Esto permite contar las conexiones por dirección IP.zone=addr:10m
asigna un área de memoria de 10MB para almacenar esta información, y la llamaaddr
. La cantidad de memoria utilizada depende de cuántas direcciones IP diferentes se conecten.
2. limit_conn
limit_conn addr 10;
limit_conn
se usa para limitar el número de conexiones simultáneas permitidas desde una única dirección IP (en este caso, representada por la variableaddr
que se definió antes). En este ejemplo, limita a 10 conexiones simultáneas por dirección IP.
Esto significa que si un cliente (con una IP específica) intenta hacer más de 10 conexiones simultáneas al servidor, Nginx rechazará las conexiones adicionales y podría devolver un error 503 (Service Unavailable) o similar.
¿Por qué usar estas directivas?
- Prevenir abusos: Limitar la cantidad de conexiones por IP puede ser útil para evitar ataques como el DDoS (Distributed Denial of Service), donde muchos clientes intentan sobrecargar el servidor con un número elevado de conexiones.
- Evitar sobrecarga de servidor: Si muchos usuarios intentan acceder a tu aplicación al mismo tiempo, estas directivas aseguran que tu servidor no se sobrecargue con un número infinito de conexiones desde una sola IP.
- Controlar tráfico no deseado: Si deseas evitar que ciertos bots o servicios automatizados hagan demasiadas solicitudes simultáneas, estas directivas pueden ayudar a limitar ese tráfico.
Ingeniero en Informática, Investigador, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.