Como combinar connlimit com conjuntos de IP?

3

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

    
por 0xC0000022L 07.01.2015 / 15:44

1 resposta

2

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

Em seguida, combine com o seu IPset e após a correspondência com a extensão de correspondência connlimit , 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 IP, 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ões por origem no ipset para 1. (Também é possível fazer a correspondência de outra forma, usando --connlimit-upto xxx e -j ACCEPT em vez de DROP )

Se você quiser considerar todo o conjunto e permitir 1 conexão para todas as fontes no ipset , defina a opção --connlimit-mask como 0.

    
por 12.01.2015 / 11:29