En el mundo de la tecnología, pocas cosas dan más miedo que ver tu sitio web, tu API o todo tu servidor caerse sin que puedas hacer nada. De repente, el tráfico se dispara, el CPU se pone al 100% y el 'Error 503' se vuelve el rey. Esto es la cara más cruel de un ataque DDoS.
Entender esto a fondo no es solo una habilidad técnica, es un arte. En esta guía, vamos a destripar cada aspecto de estos ataques: desde las herramientas de ataque como hping3 hasta las defensas más profundas con iptables, pasando por los proveedores y las configuraciones para proteger hasta tu contenedor de Docker.
1. El Embudo Invertido: ¿Qué Rayos es un Ataque DDoS?
Imagina que tienes un restaurante de moda. Solo tienes 50 mesas. Un día, llegan 10,000 personas de golpe, no para comer, solo para pararse en la puerta y no dejar entrar a nadie más. Eso es un ataque de Denegación de Servicio Distribuido (DDoS).
- Denegación de Servicio (DoS): Es una sola persona (o una sola computadora) bloqueando la puerta. Es más fácil de detener.
- Denegación de Servicio Distribuida (DDoS): Son miles de personas (una botnet o ejército de computadoras 'zombie') bloqueando la puerta. Es una guerra.
El objetivo es simple: saturar los recursos de tu servidor (ancho de banda, memoria RAM, CPU) para que los usuarios legítimos no puedan acceder.
2. El Corazón del Engaño: El Spoofing y Cómo te Enredan
Aquí viene uno de los conceptos clave que pocos explican bien: el spoofing. Es el arte del engaño digital. Básicamente, el atacante falsifica su identidad para que no lo atrapen o para que el ataque sea más destructivo.
- IP Spoofing: El atacante envía un paquete de datos, pero pone una dirección de origen falsa. Es como si enviaras una carta con el nombre y dirección de tu peor enemigo en el remitente. Cuando el servidor responda, le responderá a él, no a ti.
- Amplificación: Este es el truco sucio favorito de los atacantes. Usan el spoofing para pedirle a un servidor legítimo (como uno de DNS) una tonelada de información, pero diciendo que quien la pidió fuiste tú. El servidor, obediente, le manda toda esa avalancha de datos... a tu IP. Pequeña petición, gran desastre.
3. El ABC de los Ataques: Tipos que Debes Conocer
Los ataques DDoS se clasifican por la capa del modelo OSI a la que atacan. Para que sea fácil, imagina que tu servicio es una torre de edificio: Capa 3 y 4 (Red y Transporte) atacan los cimientos y la estructura. Capa 7 (Aplicación) atacan el departamento del último piso con una fiesta interminable.
3.1. Ataques Volumétricos (Los que tapan la tubería)
- Ataque de Amplificación DNS: El atacante miente (spoofing) y le pide a cientos de servidores DNS información pesada, usando tu IP. Zas, te llueven datos.
- Ataque Smurf: Usa el protocolo ICMP (ping). El atacante hace ping a la dirección de broadcast de una red grande, haciéndose pasar por ti. Todos los equipos te responden a la vez.
- UDP Flood: Envían una avalancha de paquetes UDP a puertos aleatorios. Tu máquina se vuelve loca tratando de ver si alguien espera esos paquetes, y colapsa.
3.2. Ataques de Protocolo (Los que cuelgan la línea)
SYN Flood: Para conectar por TCP, se hace un 'apretón de manos' de tres pasos (SYN, SYN-ACK, ACK). El atacante envía miles de primeros saludos (SYN) con direcciones falsas. El servidor espera la respuesta final que nunca llega, dejando la conexión 'medio abierta'. Al llenar la memoria de 'saludos no respondidos', el servidor ya no puede atender a nadie más.
3.3. Ataques de Capa 7 (Los más zorros y difíciles de detectar)
- HTTP Flood: Es como tener 10,000 personas dándole a 'F5' en tu web al mismo tiempo. Peticiones en masa. Para un ojo no entrenado, es tráfico 'normal'.
- Slowloris: El atacante abre conexiones y manda los datos muy despacio. El servidor mantiene la conexión abierta esperando el resto, y al final tiene tantas abiertas que no puede aceptar más.
- Ataques a APIs: Atacar endpoints específicos que requieren mucho proceso (como una búsqueda pesada en base de datos). Con pocas peticiones bien hechas, tumban el back-end.
4. El Arsenal del Hacker: Herramientas como hping3
hping3 es una navaja suiza para moldear paquetes. Existen también frameworks como LOIC o HOIC que son más fáciles de usar, y con una botnet de 10,000 PCs corriendo LOIC pueden ser devastadores.
# Ataque SYN Flood (el clásico)
hping3 -S --flood -p 80 <IP_DE_TU_SERVIDOR>
# Ataque UDP Flood
hping3 -2 --flood -p 53 <IP_DE_TU_SERVIDOR>
# Ataque ICMP (Ping of Death)
hping3 -1 --flood <IP_DE_TU_SERVIDOR>
# Ataque con Spoofing (falseando el origen)
hping3 -S -a <IP_QUE_QUIERES_SUPLANTAR> --flood -p 80 <IP_DE_TU_SERVIDOR>5. La Fortaleza: Cómo Protegerse (Defensa en Profundidad)
La defensa no es una sola cosa, es un traje de capas. Las buenas prácticas incluyen aumentar el ancho de banda (es un colchón, no solución), balanceadores de carga para repartir el tráfico, y redundancia en varios centros de datos.
5.2. El Rey de la Defensa en Linux: IPTables a Fondo
iptables es el cortafuegos del núcleo de Linux. No es 'un firewall', es EL firewall. Las tablas son donde viven las reglas (filter, nat, mangle) y las cadenas (INPUT, OUTPUT, FORWARD) son los puntos de control.
# 1. Limitar conexiones SSH a 3 por minuto por IP (anti-fuerza bruta)
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 3 --name SSH -j DROP
# Limitar peticiones HTTP a 50 por segundo con un pico inicial de 100
iptables -A INPUT -p tcp --dport 80 -m limit --limit 50/second --limit-burst 100 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j DROP
# 2. Bloqueo por País (Necesitas el módulo xt_geoip)
iptables -A INPUT -m geoip --src-cc RU,CN,KP -j DROP
# 3. Protección contra Escaneo de Puertos XMAS
iptables -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -m limit --limit 5/m -j LOG --log-level 7 --log-prefix "XMAS Scan:"
iptables -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
# 4. Módulo connlimit (evitar >20 conexiones al puerto 80)
iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 20 --connlimit-mask 32 -j REJECT
# 5. Módulo hashlimit (10 conexiones por segundo a HTTPS)
iptables -A INPUT -p tcp --dport 443 -m hashlimit --hashlimit-name https --hashlimit 10/sec --hashlimit-burst 20 --hashlimit-mode srcip -j ACCEPT5.3. Firewalls de Aplicación (WAF) y Monitoreo
iptables mira la red, pero un WAF mira el contenido de la web. ModSecurity es el estándar con reglas para bloquear inyecciones SQL y ataques DDoS web. ModEvasive actúa como 'portero neurótico', bloqueando IPs que piden la misma página muchas veces por segundo.
<IfModule mod_evasive24.c>
DOSHashTableSize 3097
DOSPageCount 2 # Máximo 2 peticiones a la misma página por intervalo
DOSSiteCount 50 # Máximo 50 peticiones totales al sitio por intervalo
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10 # Segundos de bloqueo
</IfModule>Para monitorear: nload/iftop (ancho de banda en tiempo real), netstat o ss -tan (conexiones establecidas), tcpdump (olfateador de paquetes) y vnstat (estadísticas históricas). Además, herramientas como Snort/Suricata husmean el tráfico en busca de patrones maliciosos.
6. Proveedores: Cuándo Dejar de Pelear Solo
Llega un punto donde tu servidor no puede aguantar. Servicios como Cloudflare, AWS Shield o Google Cloud Armor absorben el golpe por ti. Tip de pro: puedes crear reglas en iptables para ACEPTAR tráfico web solo de los rangos de Cloudflare y DENEGAR todo lo demás.
# Ejemplo: Aceptar tráfico web SOLO de Cloudflare
iptables -A INPUT -p tcp --dport 80 -s 173.245.48.0/20 -j ACCEPT # Rango de Cloudflare
iptables -A INPUT -p tcp --dport 80 -j DROP7. Defendiendo lo Moderno: Docker y Contenedores
Los contenedores añaden complejidad. Nunca corras un contenedor sin límites. Además, Docker modifica las reglas de iptables por ti para publicar puertos. Si tienes reglas personalizadas, ponlas en la cadena DOCKER-USER para que se procesen antes.
# Limitar Recursos en Docker
docker run -d --name mi_app --cpus="0.5" --memory="512m" --restart always mi_imagen
# Bloquear todo el tráfico entrante a los contenedores desde una IP específica
iptables -I DOCKER-USER -i eth0 -s 192.168.1.100 -j DROP8. Conclusión y Checklist de Supervivencia
Los ataques DDoS no son un mito, son una realidad cotidiana. Este viaje demuestra que la seguridad no es un producto, es un proceso.
- Conoce tu tráfico: Usa netstat y iftop regularmente.
- Configura el Kernel: Ajusta parámetros de red (ej. net.ipv4.tcp_syncookies = 1 para SYN Flood).
- IPTables es tu amigo: Implementa rate limiting y bloqueo por IP.
- Capa 7: Si tienes web, necesitas ModSecurity o un WAF.
- Acepta ayuda: Para ataques grandes, un proveedor (Cloudflare, AWS) es la única salida.
- Protege tus contenedores: Siempre con límites de CPU y RAM.
“Solo hay dos tipos de empresas: las que han sido hackeadas y las que aún no lo saben.”