Usando iptables '-m limit' na direção oposta

0

Eu sei que posso usar iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT para limitar a aceitação de tcp syn pacotes.
Portanto, se os pacotes tcp syn não cruzarem essa taxa, eles passarão para ACCEPT .

Existe uma maneira de escrever essa regra na direção oposta?
Eu quero escrever regras da seguinte forma:

If ok (doesn't cross the rate), continue down. Else drop < - (1) ???
iptables -A INPUT -j OTHER_CHAIN_STUFF

Existe uma maneira de escrever (1) ?

Eu tentei iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j DROP , mas funciona como:
Largar até atingir a taxa, então, quando você passar o limite de taxa não apenas para DROP não mais, então ele continua para baixo - isso não é o que eu quero.

Existe uma maneira de escrever o que eu procuro?
Algo como: iptables -A INPUT -p tcp --syn ! -m limit --limit 1/s -j DROP
(preste atenção no ! )

    
por hudac 04.01.2017 / 22:49

2 respostas

1

Acabei de perceber uma solução simples:

  • iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
  • iptables -A INPUT -p tcp --syn -j DROP
  • Continue a fazer o que quiser
por 05.01.2017 / 13:14
1

Uma maneira simples pode ser usar o módulo hashlimit em vez disso, se você o tiver.

iptables -A INPUT -p tcp --syn -m hashlimit --hashlimit-name mylimit --hashlimit-above 1/s -j DROP

É um pouco menos eficiente que o módulo limit de acordo com man iptables-extensions no meu Fedora 23.

    
por 05.01.2017 / 11:58