Los ataques DDoS (Denegación de Servicio Distribuido) , a través de tácticas abusivas de comunicación digital, sobrecargan los recursos del servidor. Este tipo de ataques son incursiones organizadas en el mundo informático. Innumerables actos de oposición desagradable se combinan para crear una amenaza lo suficientemente formidable como para obligar a un servidor a detenerse.
Lo peor de todo es que existen muchos medios para librar “guerras” de guerrilla en la red contra dichos hosts. Afortunadamente, los servidores se pueden configurar para resistir este tipo de ataques.
Nginx, un sistema de servidor muy popular para máquinas Unix, viene con suficiente funcionalidad integrada para limitar significativamente la efectividad de los ataques DDoS.
Aquí hay algunas opciones efectivas para manejar este tipo de amenazas con Nginx.
¿Cómo prevenir ataques DDoS con Nginx?
Archivos de configuración de copia de seguridad
Antes de cambiar cualquier configuración, asegúrese de realizar una copia de seguridad rápida de la configuración de su servidor. El siguiente comando funciona para este propósito:
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup-original

Una vez completado, estará listo para continuar.
comprobar el tráfico
Monitorear el tráfico en su servidor facilita optimizar la seguridad e implementar estrategias adicionales. Nginx tiene un módulo creado específicamente para este propósito.
Configurar página de estado
Nginx generalmente viene con un módulo llamado “stub status” (http_stub_status_module), que permite integrar este tipo de funcionalidad en el entorno del servidor con bastante facilidad. Primero, pruébelo usando el siguiente comando:
nginx -V
![Cómo prevenir ataques DDoS con Nginx Cómo prevenir ataques DDoS con Nginx]()
O utilice el siguiente comando para encontrarlo más rápido:
nginx -V 2>&1 | grep -o with-http_stub_status_module
![Cómo prevenir ataques DDoS con Nginx Cómo prevenir ataques DDoS con Nginx]()
Si su resultado se parece al de arriba, entonces todo está bien. De lo contrario, deberá instalar o recompilar su instalación de Nginx con el módulo incluido.
Configurar una página de estado que puedas verificar es simple, pero también necesitas limitar el acceso a un mínimo (solo computadora) para mantener la seguridad. Comience abriendo el archivo de configuración principal del servidor que se encuentra en /etc/nginx/nginx.conf.
Ábralo y agregue el siguiente código a la “directiva http” para habilitar el módulo, reemplazando su propia información en “localhost”, “/status_page” y “127.0.0.1”.
server {
listen 80;
listen [::]:80;
server_name localhost;
##
# Status Page Settings
##
location /status_page {
stub_status on;
allow 127.0.0.1;
allow ::1;
deny all;
}
}
Nota : necesitará privilegios sudo para modificar este archivo.
![Cómo prevenir ataques DDoS con Nginx Cómo prevenir ataques DDoS con Nginx]()
Ahora, prueba tu configuración:
sudo nginx -t
![Cómo prevenir ataques DDoS con Nginx Cómo prevenir ataques DDoS con Nginx]()
Si todo está bien, envía al servidor una señal de recarga:
sudo systemctl reload nginx
![Cómo prevenir ataques DDoS con Nginx Cómo prevenir ataques DDoS con Nginx]()
Para acceder a su página de estado, visite la ubicación nombre_servidor seguido de "/página_estado" en un navegador web o utilizando una herramienta de línea de comandos como curl. (Esto es útil si la memoria caché de su navegador no se actualiza automáticamente). Aquí está el comando curl para acceder a la página en los ejemplos:
curl localhost/status_page
![Cómo prevenir ataques DDoS con Nginx Cómo prevenir ataques DDoS con Nginx]()
En el navegador, el resultado del comando anterior se parece a la siguiente imagen.
![Cómo prevenir ataques DDoS con Nginx Cómo prevenir ataques DDoS con Nginx]()
Verificar registros de acceso
Si nota tráfico inusual al verificar la página de estado configurada anteriormente, es posible que desee verificar el registro de acceso del servidor. El registro de acceso al servidor se puede encontrar en “/var/log/nginx/access.log”. El registro enumera los métodos HTTP utilizados, la fecha/hora de los intentos de acceso, el agente de usuario y las páginas a las que se accedió.
![Cómo prevenir ataques DDoS con Nginx Cómo prevenir ataques DDoS con Nginx]()
Límites de conexión
Entre las muchas tácticas útiles para prevenir ataques DDoS que vale la pena probar, una de las más simples y efectivas es limitar la tasa de tráfico entrante.
Lo ideal sería limitar el acceso lo suficiente para evitar que bots maliciosos abrumen su servidor y, al mismo tiempo, mantener tarifas razonables. En Nginx, esto se puede hacer con las directivas limit_req_zone y limit_req . El siguiente código establece las limitaciones de memoria y velocidad para su uso en cualquier ubicación que su servidor esté configurado para mostrar:
limit_req_zone $binary_remote_addr zone=speedbump:10m rate=10r/s;
“Zona” especifica el nombre y la capacidad (en Megabytes en este caso) del espacio de memoria donde se almacenan las solicitudes de los usuarios. "Tasa" establece el número total de solicitudes que Nginx aceptará por segundo (10 solicitudes en este ejemplo). Piense en este código como una regla y lo que sigue es el uso de esa regla:
limit_req zone=speedbump burst=20;
El código anterior en realidad hace algo más que implementar una regla de límite. También agrega una pequeña cola de hasta 20 solicitudes para manejar correctamente las conexiones legítimas, que se procesan un poco más rápido de lo normal, excediendo tanto las reglas como la cola, lo que genera un error 503 para el cliente. Ambas directivas se ven así en nginx.conf:
![Cómo prevenir ataques DDoS con Nginx Cómo prevenir ataques DDoS con Nginx]()
Crear una lista negra de direcciones IP
Si obtiene la dirección IP que está realizando el ataque DDoS en su servidor, simplemente puede incluirla en la lista negra y eliminar cualquier conexión que se origine desde esta dirección IP.
Agregue el siguiente código a la directiva de su servidor:
location / {
deny 123.123.123.0/28;
# ...
}
Bloquear solicitudes para ciertos archivos
Si el ataque DDoS tiene como objetivo ciertos archivos en el servidor, por ejemplo el archivo xmlrpc.php en WordPress (este es un archivo comúnmente atacado en la mayoría de los servidores de WordPress), puede bloquearlos todos, cumpliendo todos los requisitos para ello. Agregue este código a la directiva de su servidor:
location /xmlrpc.php {
deny all;
}
Siga el proceso anterior y podrá limitar la mayoría de los ataques DDoS. Asegúrese de consultar la documentación de Nginx para conocer las opciones de seguridad adicionales que puede aplicar.
Espero que tengas éxito.