Aquí traigo un script a modo de tutorial de como protegerse de ataques de denegación de servicio
#!/bin/bash
# Limpiar reglas anteriores
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
##########################################################
# Se crea el archivo donde estan las ip bloqueadas se actualiza cada 200 segundos
iptables -A listanegra -m recent --name lista_negra --rcheck --seconds 200 -j DROP
# Detener ataques de ICMP flood #
# Creamos la cadena icmp-flood
iptables -N icmp-flood
# Saltar a la cadena cuando el ICMP es detectado
iptables -A INPUT -p icmp -j icmp-flood
# Evitar si supera los 4 por segundo
iptables -A icmp-flood -m limit --limit 4/s --limit-burst 8 -m comment --comment "Limite de ICMP alcanzado" -j RETURN
# Registrar en el log cuando es muy alto
iptables -A icmp-flood -m limit --limit 6/h --limit-burst 1 -j LOG --log-prefix "Detectado ICMP flood "
# Mandar a lista negra la IP por 200 segundos
iptables -A icmp-flood -m recent --name lista_negra --set -m comment --comment "Lista negra IP" -j DROP
##########################################################
# Detener el UDP flood #
# Creamos la cadena udp-flood
iptables -N udp-flood
# Saltar a la cadena cuando el UDP es detectado
iptables -A INPUT -p udp -j udp-flood
# UDP maximo 10 por segundo limitar a 20
iptables -A udp-flood -m limit --limit 10/s --limit-burst 20 -m comment --comment "Limite UDP superado" -j RETURN
# Añadir al log si es muy alto
iptables -A udp-flood -m limit --limit 6/h --limit-burst 1 -j LOG --log-prefix "Detectado UDP flood "
# Mandar a lista negra la IP por 200 segundos
iptables -A udp-flood -m recent --name lista_negra --set -m comment --comment "Lista negra IP" -j DROP
##########################################################
# Detener SYN flood #
# Más de lo mismo
iptables -N syn-flood
iptables -A INPUT -p tcp --syn -j syn-flood
iptables -A syn-flood -m limit --limit 2/s --limit-burst 6 -j RETURN
iptables -A syn-flood -m limit --limit 6/h --limit-burst 1 -j LOG --log-prefix "Detectado SYN flood "
iptables -A syn-flood -m recent --name lista_negra --set -j DROP
iptables -A INPUT -p tcp ! --syn -m state --state NEW -m comment --comment "Lista negra IP" -j DROP
##########################################################
# Paquetes mal formados #
iptables -N paquetes_malformados
iptables -A paquetes_malformados -m state --state INVALID -j DROP
iptables -A paquetes_malformados -p tcp --tcp-flags ALL ACK,RST,SYN,FIN -j DROP
iptables -A paquetes_malformados -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
iptables -A paquetes_malformados -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A paquetes_malformados -p tcp ! --syn -m state --state NEW -j DROP
iptables -A paquetes_malformados -f -j DROP
iptables -A paquetes_malformados -j RETURN
##########################################################
# Cortafuegos por v4char #
Si hay algun error o algún ataque que se me pase decirlo en los comentarios espero que sirva de ayuda para protejer routers, servidores y equipos.
Puedes ver la lista negra con el comando cat /proc/net/xt_recent/lista_negra
Muy bueno @v4char (https://underc0de.org/foro/index.php?action=profile;u=47377), personalmente prefiero usar fail2ban + iptables que me va bastante bien.
Por si te interesa te dejo mi artículo: http://www.incibe.es/blogs/post/Seguridad/BlogSeguridad/Articulo_y_comentarios/DDoS_VSS_persistente
You are not allowed to view links.
You are not allowed to view links.
Register or Login or You are not allowed to view links.
Register or Login
Muy bueno @v4char (https://underc0de.org/foro/index.php?action=profile;u=47377), personalmente prefiero usar fail2ban + iptables que me va bastante bien.
Por si te interesa te dejo mi artículo: http://www.incibe.es/blogs/post/Seguridad/BlogSeguridad/Articulo_y_comentarios/DDoS_VSS_persistente
Esta muy bien, no conocia fail2ban aun asi me falta pulir un par de cosas con iptables, pero muchas gracias