Ataque SYN-Flood: Es el ataque que manda deliberadamente paquetes SYN, sin respuesta. Al no mandar respuesta el sistema se queda esperando por ACK lo que sigue al SYN+ACK (3 way handshake), al no recibir respuesta SYN+ACK, la cola de paquetes del sistema se desborda y una vez sucedido esto, el sistema es incapaza de reconocer peticiones de red de usuarios legítimos, lo que inutiliza este recurso. Entonces la solución es dropear toda conexión de esta ip.
# iptables -A INPUT -d 190.15.150.2 -j DROP
Chequear paquetes SYN: Nos debemos asegurar que las nuevas conexiones tcp son paquetes SYN, sino, debemos dropearlas.
# iptables -A INPUT -p tcp ! –syn -m state –state NEW -j DROP
Paquetes fragmentados: Los paquetes fragmentados debemos dropearlos, pues este ataque nos puede dar errores en nuestro server asi como perdida de datos.
# iptables -A INPUT -f -j DROP
Paquetes malformados: Siempre se deben dropear.
# iptables -A INPUT -p tcp –tcp-flags ALL ALL -j DROP
Paquetes nulos[Null packets]: Paquetes entrantes malformados.
# iptables -A INPUT -p tcp –tcp-flags ALL NONE -j DROP
Bloqueando direcciones erróneas o spoofeadas: Toda dirección sospechosa, debemos dropearla.
Por ejemplo: 0.0.0.0/8, 127.0.0.0/8, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 224.0.0.0/3
Todas estas direcciones debemos dropearlas, por lo que:
# iptables -A INPUT -i eth0 -s 0.0.0.0/8 -j DROP
# iptables -A INPUT -i eth0 -s 127.0.0.0/8 -j DROP
# iptables -A INPUT -i eth0 -s 10.0.0.0/8 -j DROP
# iptables -A INPUT -i eth0 -s 172.16.0.0/12 -j DROP
# iptables -A INPUT -i eth0 -s 192.168.0.0/16 -j DROP
# iptables -A INPUT -i eth0 -s 224.0.0.0/3 -j DROP
Y hacemos lo mismo para OUTPUT:
# iptables -A OUTPUT -o eth0 -s 0.0.0.0/8 -j DROP
# iptables -A OUTPUT -o eth0 -s 127.0.0.0/8 -j DROP
# iptables -A OUTPUT -o eth0 -s 10.0.0.0/8 -j DROP
# iptables -A OUTPUT -o eth0 -s 172.16.0.0/12 -j DROP
# iptables -A OUTPUT -o eth0 -s 192.168.0.0/16 -j DROP
# iptables -A OUTPUT -o eth0 -s 224.0.0.0/3 -j DROP
Donde eth0 es la interfaz conectada a internet…
Y recuerden, para que esto funcione, se debe añadir lo siguiente a nuestro archivo /etc/sysctl.conf:
net.ipv4.conf.all.rp_filter=1
net.ipv4.conf.all.log_martians=1
net.ipv4.conf.default.log_martians=1
La entrada net.ipv4.conf.all.rp_filter=1 la verificación de la dirección de destino de los paquetes, esto viene incluido en el kernel del sistema y las últimas dos líneas loguean toda la información de los paquetes spoofeados.
Una vez «securizado» nuestro sistema podemos hacerle pruebas con nmap o hping. Este tema tiene tela por donde cortar, en futuras entradas iré publicando detalles referentes a este tema.
Un saludo y espero les sea de ayuda.



