- Diferencia crítica: Un ataque DoS proviene de una única IP (fácil de filtrar con iptables); un ataque DDoS proviene de miles de bots distribuidos globalmente que saturan ancho de banda o procesador.
- Vectores L3/L4 (UDP/SYN flood): Se mitigan activando SYN Cookies en el kernel (/proc/sys/net/ipv4/tcp_syncookies) y aplicando rate-limiting de paquetes con el módulo limit de iptables.
- Vectores L7 (HTTP flood): Se mitigan en el proxy inverso (Nginx) con directivas limit_req_zone y filtrado perimetral WAF Anycast.
- Arquitectura recomendada: Desacoplar la IP de origen tras un WAF perimetral y balanceadores Nginx con TLS 1.3.
Los ataques de Denegación de Servicio Distribuido (DDoS) buscan agotar la memoria, sockets de red o el ancho de banda del servidor objetivo. Para más detalles sobre fortificación inicial del sistema operativo, consulta nuestra guía de Hardening en Servidores VPS Linux.
1. Fundamentos: Diferencia Operativa entre DoS y DDoS
La diferencia fundamental radica en la procedencia y volumen del flujo de paquetes maliciosos hacia el servidor:
- DoS (Denegación de Servicio): Tráfico emitido desde un único punto o rango IP. Es mitigable de forma estática con DROP inmediato en netfilter.
- DDoS (Distribuido): Orquestado por botnets globales de dispositivos infectados. Requiere filtrado por comportamiento, umbral de peticiones y WAF perimetral.
2. Clasificación de Vectores y Estrategias de Mitigación
La siguiente tabla resume los principales vectores de ataque según el modelo OSI y su mecanismo de neutralización en entornos Linux:
Tabla 1: Comparativa de Vectores DDoS y Mecanismos de Mitigación
| Vector de Ataque | Capa OSI | Impacto Principal | Mitigación Recomendada en Linux |
|---|---|---|---|
| SYN Flood | Capa 4 (Transporte) | Agotamiento de tabla de conexiones incompletas (backlog) | Activar net.ipv4.tcp_syncookies = 1 en sysctl |
| UDP Reflection | Capa 3 / 4 (Red) | Saturación de ancho de banda por amplificación (DNS/NTP) | Reglas iptables con límite de paquetes o WAF perimetral |
| HTTP Flood / Slowloris | Capa 7 (Aplicación) | Agotamiento de hilos de procesamiento en servidor web | Rate limiting en Nginx y limitación de tiempos de espera |
3. Afinamiento del Kernel Linux (/etc/sysctl.conf)
El kernel de Linux puede optimizarse para resistir inundaciones SYN y descartar paquetes spoofed antes de que alcancen el espacio de usuario:
# Habilitar SYN Cookies para mitigar inundaciones SYN
net.ipv4.tcp_syncookies = 1
# Aumentar la cola de conexiones TCP pendientes (backlog)
net.ipv4.tcp_max_syn_backlog = 4096
net.core.somaxconn = 8192
# Reducir el tiempo de reintento de paquetes SYN-ACK
net.ipv4.tcp_synack_retries = 2
# Protección contra IP Spoofing (Reverse Path Filtering)
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
# Ignorar solicitudes broadcast ICMP (mitiga Smurf Attacks)
net.ipv4.icmp_echo_ignore_broadcasts = 14. Reglas de Filtrado con iptables
Las reglas en la tabla raw y filter permiten descartar paquetes maliciosos con un consumo mínimo de recursos de CPU:
# 1. Descartar paquetes TCP no válidos
iptables -t mangle -A PREROUTING -m conntrack --ctstate INVALID -j DROP
# 2. Descartar paquetes SYN con datos anómalos (SYN-FIN, etc.)
iptables -t mangle -A PREROUTING -p tcp ! --syn -m conntrack --ctstate NEW -j DROP
# 3. Limitar nuevas conexiones TCP por IP para frenar inundaciones
iptables -A INPUT -p tcp --dport 443 -m conntrack --ctstate NEW -m hashlimit --hashlimit-name HTTPS_LIMIT --hashlimit-above 25/sec --hashlimit-burst 50 --hashlimit-mode srcip -j DROP5. Interlinking de Infraestructura: Cluster de Seguridad
Un servidor resistente a DDoS requiere también el aseguramiento de los servicios de aplicación web. Consulta nuestra guía de Fortificación de Nginx y Cifrado TLS 1.3 o revisa el esquema completo en nuestro Diagrama Interactivo de Arquitectura.