Aunque existen muchos trucos para limitar el número de conexiones por IP a un determinado servicio, cuando más a bajo nivel lo realicemos, mejor será el resultado. Si un paquete que debe ser "eliminado" sube a la capa de aplicación usará más recursos que si directamente lo eliminamos desde IPTables. Para ello, IPTables cuenta con el módulo connlimit, que limita el número máximo de conexiones que una IP puede establecer.
Se puede usar connlimit para limitar o mitigar el efecto de un ataque DDOS, y en general para limitar el número máximo de conexiones que una misma IP puede realizar a un equipo. Para hacer uso de este módulo, primeramente hay que cargarlo,
shell> modprobe xt_connlimitY a continuación escribir las reglas que hagan uso de dicho módulo.
shell> iptables -I INPUT -p tcp --syn --dport 80 \ -m connlimit --connlimit-above 10 \ -j DROP
En la regla anteriormente descrita se limita el número de conexiones de establecimiento (--syn) a 10 (--connlimit-above) por IP al servicio web (--dport). En caso de que una misma IP intente más de 10 conexiones simultáneas o en muy poco tiempo, el resto de conexiones que superen las 10 primeras será rechazadas.
Lógicamente connlimit trabaja también con IP's de entrada y de salida, así como con reglas más complejas de IPTables. La regla escrita únicamente sirve para demostrar el funcionamiento general.
La entrada IPTables, limitar número conexiones por IP la puedes leer en Puppet Linux.
No hay comentarios :
Publicar un comentario