Evitar ataques DoS con IPTables
Continuando con la serie de articulos de ayudas y tips para IPTables, en esta oportunidad vamos a ver de que manera podemos evitar un ataque de Denegación de Servicio (DoS).
# Creacion de una cadena personalizada
$IPTABLES -t nat -N SYN-FLOOD# Limitar la cantidad de conexiones
$IPTABLES -t nat -A SYN-FLOOD -m limit --limit 12/s --limit-burst 24 -j RETURN
$IPTABLES -t nat -A SYN-FLOOD -j DROP
# Chequear ataque DoS
$IPTABLES -t nat -A PREROUTING -i $WAN -d $IP_DEST -p tcp --syn -j SYN-FLOOD
Donde $WAN es la interface conectada a internet; $IP_DEST es la direccion IP que se proteje (puede ser la misma IP de la interface WAN o un servicio publicado).

February 9th, 2008 at 12:18 pm
Buenisio… ya lo estoy probando.
Gracias Mey!
October 16th, 2008 at 1:52 pm
Muy buen post, si señor!
February 3rd, 2009 at 2:51 am
[...] como menciona un loco arriba Distribuyed Denial Of Service Mira te tengo 2 Formas de evitarlo 1′ Por IP tables 2′ Por Apache PD deberian poner este post como fijo asi los q sufren de esto saben como evitarlo [...]
March 26th, 2010 at 6:12 pm
Gracias por tu aporte!!!
Una pregunta:
veo que hay un ataque en mi server que se da cada 3 segundos…
Que debo hacer, bajar por ej el limit a 1 segundo (–limit 1/s) ?? O sea, debe ser siempre menor el tiempo de espera que el de llegada del syn??
Y en el caso del –limit-burst como lo arreglo segun el tiempo del –limit 1/s??
Porque con la regla que diste siguen los ataques…
Tengo activado el SYN cookies y en sysctl.conf tengo estas dos lineas:
# Aumentar el “baclog queuee”
net.ipv4.tcp_max_syn_backlog= 2048
#
# Disminuir el tiempo de espera
net.ipv4.tcp_synack_retries= 2
Por ejemplo me parece que deberia igualar los tiempos porque en el fw tengo una regla en INPUT con espera de syn en 3/m, otra (la tuya) en 12/s y en las lineas del sysctl.conf tengo 2 segundos…. Por eso no funcionara?? Lo pruebo y comento… Si hay algo mas te agradezco si me lo respondes…
Gracias, cappo laboro!!!!