Tutorial Iptables (protegerse de denegación de servicio)

Iniciado por v4char, Noviembre 16, 2015, 08:21:42 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Noviembre 16, 2015, 08:21:42 PM Ultima modificación: Noviembre 17, 2015, 08:37:18 PM por v4char
Aquí traigo un script a modo de tutorial de como protegerse de ataques de denegación de servicio

Código: bash
#!/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
Código: php
cat /proc/net/xt_recent/lista_negra

Muy bueno @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, personalmente prefiero usar fail2ban + iptables que me va bastante bien.

Por si te interesa te dejo mi artículo: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta




No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Muy bueno @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, personalmente prefiero usar fail2ban + iptables que me va bastante bien.

Por si te interesa te dejo mi artículo: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Esta muy bien, no conocia fail2ban aun asi me falta pulir un par de cosas con iptables, pero muchas gracias