A solução encontrada está correta:
iptables -A OUTPUT -m limit --limit 10/s -j ACCEPT
Mas está assumindo uma política padrão de DROP ou REJECT, que não é usual para o OUTPUT. Você precisa adicionar:
iptables -A OUTPUT -j REJECT
Certifique-se de adicionar esta regra após o ACEITAR. Execute-os nesta ordem ou use -I
em vez de -A
para o ACCEPT.
Além disso, dependendo da aplicação, isso pode matar a conexão. Nesse caso, tente com DROP em vez de REJECT ou tente com um% diferente% co_de (o padrão é icmp-port-unreachable).
Acabei de testar com o telnet em um servidor de DVR e ele não eliminou a conexão. Naturalmente, como uma nova conexão é um pacote de saída, tentar reconectar logo após atingir o limite falhará imediatamente se você usar REJECT.
Eu concluo dos comentários que seu ISP também espera que você limite seus pacotes de INPUT ... você não pode fazer isso. No momento em que você for capaz de impedi-los, eles já acessaram seu NIC, o que significa que eles já foram contabilizados pelo seu ISP. A contagem de pacotes INPUT também aumentará consideravelmente quando você limitar seu OUTPUT porque a maioria do ACK não conseguirá, causando muitas retransmissões.
10 pacotes por segundo é insano.