Como combinar connlimit com conjuntos de IP?

Como combinar connlimit com conjuntos de IP?

connlimitpermite-me limitar o número de conexões por cliente/serviço. Como eu combinaria essa regra com os conjuntos de IP disponíveis nas versões mais recentes do kernel Linux e do netfilter?

Responder1

Digamos que temos um ipset chamado MYTESTSETe que esse ipset é do tipo hash:ip. Ele armazenará apenas endereços IP.

Em seguida, compare com o seu IPset e depois com connlimita extensão de correspondência, com os parâmetros desejados.

iptables -A INPUT -p tcp -m set --match-set MYTESTSET src -m connlimit --connlimit-above 1 --connlimit-saddr --connlimit-mask 32 -j DROP

Isso fará o seguinte: para cada fonte dentro do conjunto de IPs, as conexões serão contadas e se houver mais de uma (--connlimit-above 1), ela será descartada, limitando assim o número de conexõespor fonte no ipsetpara 1. (Você também pode combinar de outra forma, usando --connlimit-upto xxxe -j ACCEPTem vez de DROP)

Se quiser considerar todo o conjunto e permitir 1 conexãopara todas as fontes no ipsetem seguida, coloque a --connlimit-maskchave em 0.

informação relacionada