Limitação de taxa de IP de origem em iptables: hashlimit vs recent

6

Eu quero realizar a limitação de taxa por IP de origem no iptables. Por exemplo, limite a taxa na qual um host pode estabelecer novas conexões SSH para 5 por minuto. Para meu conhecimento, existem duas maneiras de fazer isso:

Com o módulo hashlimit

iptables -A INPUT -p tcp --dport 22 -m state --state NEW \
  -m hashlimit --hashlimit-name SSH --hashlimit-above 5/min \
  --hashlimit-mode srcip -j REJECT
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT

Com o módulo recente

iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent \
  --rcheck --seconds 60 --hitcount 5 --name SSH --rsource -j REJECT
iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW \
  -m recent --set --name SSH --rsource -j ACCEPT

Minhas perguntas:

  • Existe alguma diferença em como esses dois se comportarão?
  • Com ênfase no desempenho, qual deles é preferível?
  • Existe uma desvantagem significativa em usar os dois módulos?
por Rapsey 11.04.2015 / 20:03

1 resposta

2

Is there any difference in how these two will behave?

Não, o que você escreveu funcionará da mesma forma.

With an emphasis on performance, which one is preferable?

Indiscutivelmente, recente tem melhor desempenho porque mantém uma tabela, mas não usa hash buckets.

Is there a significant downside to using both modules?

Não sei por que você usaria os dois. Você teria o impacto no desempenho de usar os dois módulos quando precisar de um só.

    
por 15.03.2017 / 20:42