connlimit
me permite limitar el número de conexiones por cliente/servicio. ¿Cómo podría combinar dicha regla con los conjuntos de IP disponibles en versiones más recientes del kernel de Linux y netfilter?
Respuesta1
Digamos que tenemos un ipset llamado MYTESTSET
y que este ipset es de tipo hash:ip
. Almacenará solo direcciones IP.
Luego compare con su IPset y luego compare contra connlimit
la extensión de coincidencia, con los parámetros que desee.
iptables -A INPUT -p tcp -m set --match-set MYTESTSET src -m connlimit --connlimit-above 1 --connlimit-saddr --connlimit-mask 32 -j DROP
Esto hará lo siguiente: para cada fuente dentro del conjunto de IP, se contarán las conexiones y si hay más de una (--connlimit-above 1), se eliminará, limitando así el número de conexiones.por fuente en el ipseta 1. (También puedes hacer coincidir al revés, usando --connlimit-upto xxx
y -j ACCEPT
en lugar de DROP
)
Si desea considerar el conjunto completo y permitir 1 conexiónpara todas las fuentes en el ipsetluego coloque el --connlimit-mask
interruptor en 0.