Revision history for IPTablesRulesToBlockDDOSTrafficES
Additions:
iptables -D INPUT -p udp -m state --state NEW -m udp --dport 53 -j filtrodns
iptables -F filtrodns
(Elimina todas las reglas de la cadena filtrodns)
iptables -X filtrodns
(Borra la cadena filtrodns)
Para borrar no solo estas, sino todas las reglas del iptables y dejarlo limpio y abierto de par en par:
iptables -F
iptables -F filtrodns
(Elimina todas las reglas de la cadena filtrodns)
iptables -X filtrodns
(Borra la cadena filtrodns)
Para borrar no solo estas, sino todas las reglas del iptables y dejarlo limpio y abierto de par en par:
iptables -F
Deletions:
iptables -F filtroDNS
(Elimina todas las reglas de la cadena filtroDNS)
iptables -X filtroDNS
(Borra la cadena filtroDNS)
Additions:
La primera linea crea una cadena de nombre filtrodns donde vamos a meter el resto de reglas.
La segunda linea simplemente abre el puerto 53 al trafico UDP entrante y lo desvia a la cadena de reglas filtrodns.
'--hashlimit-name filtrodns' genera el archivo /proc/net/ipt_hashlimits/filtrodns con la lista de los bloques de IP bloqueados.
La segunda linea simplemente abre el puerto 53 al trafico UDP entrante y lo desvia a la cadena de reglas filtrodns.
'--hashlimit-name filtrodns' genera el archivo /proc/net/ipt_hashlimits/filtrodns con la lista de los bloques de IP bloqueados.
Deletions:
La segunda linea simplemente abre el puerto 53 al trafico UDP entrante y lo desvia a las cadena de reglas filtroDNS.
'--hashlimit-name filtroDNS' genera el archivo /proc/net/ipt_hashlimits/filtroDNS con la lista de los bloques de IP bloqueados.
Additions:
iptables -N filtrodns
iptables -A INPUT -p udp -m state --state NEW -m udp --dport 53 -j filtrodns
iptables -A filtrodns -p udp -m hashlimit --hashlimit-srcmask 24 --hashlimit-mode srcip --hashlimit-upto 30/m --hashlimit-burst 10 --hashlimit-name filtroDNS --dport 53 -j ACCEPT
iptables -A filtrodns -p udp -m udp --dport 53 -j DROP
iptables -A INPUT -p udp -m state --state NEW -m udp --dport 53 -j filtrodns
iptables -A filtrodns -p udp -m hashlimit --hashlimit-srcmask 24 --hashlimit-mode srcip --hashlimit-upto 30/m --hashlimit-burst 10 --hashlimit-name filtroDNS --dport 53 -j ACCEPT
iptables -A filtrodns -p udp -m udp --dport 53 -j DROP
Deletions:
iptables -A INPUT -p udp -m state --state NEW -m udp --dport 53 -j filtroDNS
iptables -A filtroDNS -p udp -m hashlimit --hashlimit-srcmask 24 --hashlimit-mode srcip --hashlimit-upto 30/m --hashlimit-burst 10 --hashlimit-name filtroDNS --dport 53 -j ACCEPT
iptables -A filtroDNS -p udp -m udp --dport 53 -j DROP
Additions:
Los tres hemos visto ritmos de 20-50 paquetes entrantes por segundo desde varias IPs simultaneamente y de forma continuada.
Deletions:
Additions:
La segunda linea simplemente abre el puerto 53 al trafico UDP entrante y lo desvia a las cadena de reglas filtroDNS.
'-m hashlimit' para especificar filtrado por resumen de contenido (hash)
'-m hashlimit' para especificar filtrado por resumen de contenido (hash)
Deletions:
'-m hashlimit' para especificar filtrado por contenido (hash)
Additions:
Para ver el estado de nuestras reglas iptables vigentes usen:
iptables -L
iptables -L
Additions:
iptables -N filtroDNS
La primera linea crea una cadena de nombre filtroDNS donde vamos a meter el resto de reglas.
La segunda linea simplemente abre el puerto 53 al trafico UDP y lo desvia a las reglas siguientes.
La tercera linea tiene:
La cuarta línea es necesaria para bloquear (DROP) todos los paquetes entrantes que no satisfacen la regla precedente.
Para borrar las reglas y dejar el iptables limpio usen:
iptables -D INPUT -p udp -m state --state NEW -m udp --dport 53 -j filtroDNS
(Borra la referencia a filtroDNS de la cadena estandar "INPUT")
iptables -F filtroDNS
(Elimina todas las reglas de la cadena filtroDNS)
iptables -X filtroDNS
(Borra la cadena filtroDNS)
La primera linea crea una cadena de nombre filtroDNS donde vamos a meter el resto de reglas.
La segunda linea simplemente abre el puerto 53 al trafico UDP y lo desvia a las reglas siguientes.
La tercera linea tiene:
La cuarta línea es necesaria para bloquear (DROP) todos los paquetes entrantes que no satisfacen la regla precedente.
Para borrar las reglas y dejar el iptables limpio usen:
iptables -D INPUT -p udp -m state --state NEW -m udp --dport 53 -j filtroDNS
(Borra la referencia a filtroDNS de la cadena estandar "INPUT")
iptables -F filtroDNS
(Elimina todas las reglas de la cadena filtroDNS)
iptables -X filtroDNS
(Borra la cadena filtroDNS)
Deletions:
La segunda linea tiene:
La tercera línea es necesaria para bloquear (DROP) todos los paquetes entrantes que no satisfacen la regla precedente.
Additions:
en "bloques de red" con una mascara de /24 bits. Esto permite procesar juntas multiples IPs que vienen del mismo bloque de red,
pero de diferentes hosts.
pero de diferentes hosts.
Deletions:
pero diferentes hosts.
Additions:
Igual que en el modelo iptables, esta regla admite 30 paquetes por minuto de una IP, con un "arranque libre" de 10 paquetes.
Deletions:
Additions:
[[IPTablesRulesToBlockDDOSTraffic English]]
(Original Brianko, traducción alex24)
Traducido de la lista de correo:
Aquí hay algunas reglas iptables que Jeff, Brianko y alex24 han testeado para
determinar su efectividad en reducir trafico DNS abusivo.
Los tres hemos visto ritmos de 20-50 paquetes entrantes por minuto desde varias IPs.
La carga en mi propio T2 en ciertos momentos fue de 4-5.
Despues de implementar las reglas siguientes, la carga de mi T2 cayó
hasta un 1.0 estable, con una disminución dramática de trafico DNS "malo".
Aqui están las reglas que hemos estado probando:
iptables -A INPUT -p udp -m state --state NEW -m udp --dport 53 -j filtroDNS
iptables -A filtroDNS -p udp -m hashlimit --hashlimit-srcmask 24 --hashlimit-mode srcip --hashlimit-upto 30/m --hashlimit-burst 10 --hashlimit-name filtroDNS --dport 53 -j ACCEPT
iptables -A filtroDNS -p udp -m udp --dport 53 -j DROP
Explicación básica (tengan en cuenta que no soy experto en iptables, de forma que
mi entendimiento puede no ser preciso):
La primera linea simplemente abre el puerto 53 al trafico UDP y lo desvia a las reglas siguientes.
La segunda linea tiene:
'-m hashlimit' para especificar filtrado por contenido (hash)
'--hashlimit-scrmask 24' trabaja en conjunto con '--hashlimit-mode srcip' para agrupar las IPs entrantes
en "bloques de red" con una mascara de /24. Esto permite procesar multiples IPs que vienen del mismo bloque de red,
pero diferentes hosts.
'--hashlimit-upto 30/m' junto a '-j ACCEPT' permite el paso del trafico que tiene un ritmo promedio menor que 30 paquetes por minuto.
'--hashlimit-burst 10' permite 10 paquetes "gratis" antes de empezar el calculo del promedio.
'--hashlimit-name filtroDNS' genera el archivo /proc/net/ipt_hashlimits/filtroDNS con la lista de los bloques de IP bloqueados.
Se puede usar cualquier nombre para esta opción.
La tercera línea es necesaria para bloquear (DROP) todos los paquetes entrantes que no satisfacen la regla precedente.
Los usuarios de Shorewall pueden meter las siguientes lineas en su archivo "rules" para limitar el trafico de igual manera:
Estas dos lineas se deben incluir antes de cualquier otra regla DNS que acepte paquetes.
La segunda linea solo bloquea (dejar caer = drop = ignorar) aquellos paquetes que no entran en los limites.
Igual que en el modelo iptables, esta regla admite 20 paquetes por minuto de una IP, con un "arranque libre" de 10 paquetes.
(Original Brianko, traducción alex24)
Traducido de la lista de correo:
Aquí hay algunas reglas iptables que Jeff, Brianko y alex24 han testeado para
determinar su efectividad en reducir trafico DNS abusivo.
Los tres hemos visto ritmos de 20-50 paquetes entrantes por minuto desde varias IPs.
La carga en mi propio T2 en ciertos momentos fue de 4-5.
Despues de implementar las reglas siguientes, la carga de mi T2 cayó
hasta un 1.0 estable, con una disminución dramática de trafico DNS "malo".
Aqui están las reglas que hemos estado probando:
iptables -A INPUT -p udp -m state --state NEW -m udp --dport 53 -j filtroDNS
iptables -A filtroDNS -p udp -m hashlimit --hashlimit-srcmask 24 --hashlimit-mode srcip --hashlimit-upto 30/m --hashlimit-burst 10 --hashlimit-name filtroDNS --dport 53 -j ACCEPT
iptables -A filtroDNS -p udp -m udp --dport 53 -j DROP
Explicación básica (tengan en cuenta que no soy experto en iptables, de forma que
mi entendimiento puede no ser preciso):
La primera linea simplemente abre el puerto 53 al trafico UDP y lo desvia a las reglas siguientes.
La segunda linea tiene:
'-m hashlimit' para especificar filtrado por contenido (hash)
'--hashlimit-scrmask 24' trabaja en conjunto con '--hashlimit-mode srcip' para agrupar las IPs entrantes
en "bloques de red" con una mascara de /24. Esto permite procesar multiples IPs que vienen del mismo bloque de red,
pero diferentes hosts.
'--hashlimit-upto 30/m' junto a '-j ACCEPT' permite el paso del trafico que tiene un ritmo promedio menor que 30 paquetes por minuto.
'--hashlimit-burst 10' permite 10 paquetes "gratis" antes de empezar el calculo del promedio.
'--hashlimit-name filtroDNS' genera el archivo /proc/net/ipt_hashlimits/filtroDNS con la lista de los bloques de IP bloqueados.
Se puede usar cualquier nombre para esta opción.
La tercera línea es necesaria para bloquear (DROP) todos los paquetes entrantes que no satisfacen la regla precedente.
Los usuarios de Shorewall pueden meter las siguientes lineas en su archivo "rules" para limitar el trafico de igual manera:
Estas dos lineas se deben incluir antes de cualquier otra regla DNS que acepte paquetes.
La segunda linea solo bloquea (dejar caer = drop = ignorar) aquellos paquetes que no entran en los limites.
Igual que en el modelo iptables, esta regla admite 20 paquetes por minuto de una IP, con un "arranque libre" de 10 paquetes.
Deletions:
Here are some iptables rules that Jeff and I have been testing to
determine their effectiveness in reducing DNS abuse traffic. Both of
us have been seeing hit rates of 20-50/second from various IP's. On
my own T2, loads were as high as 4-5. After implementing the
following rules, my T2 load dropped to a steady 1.0, with a dramatic
decrease in "bad" DNS traffic.
Here are the rules we have been testing with:
-A RH-Firewall-1-INPUT -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m hashlimit --hashlimit-srcmask 24 \
--hashlimit-mode srcip --hashlimit-upto 30/m --hashlimit-burst 10 \
--hashlimit-name DNSTHROTTLE --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 53 -j DROP
Basic explanation (please note I am not an iptables expert, so my
understanding may or may not be accurate):
The first line might or might not be needed, and simply opens up port
53 to UDP traffic.
The second line uses:
'-m hashlimit' to specify hashlimit filtering.
'--hashlimit-scrmask 24' works in conjunction with '--hashlimit-mode
srcip' to group incoming IPs in "net blocks" using a netmask of /24.
This allows processing of multiple IPs that come from the same
netblock but different hosts.
'--hashlimit-upto 30/m' in conjunction with '-j ACCEPT' permits traffic to pass that has an average rate of less than 30 packets per minute.
'--hashlimit-burst 10' allows for 10 "free" packets before averaging begins
'--hashlimit-name DNSTHROTTLE' provides access via /proc/net/ipt_hashlimits/DNSTHROTTLE to the list of all blocked IP subnets at any given moment in time. You can use any name for this option.
The third line is necessary to drop any packets that don't satisfy the
preceding rule.
Shorewall users may enter the following lines in their 'rules' file to perform the same rate limiting:
These two lines should be placed //before// any other DNS accept rules. The second line only drops those packets that fall outside of the rate limits. As above, this rule allows up to 30 packets per minute from an IP address, with a burst of 10 packets.