を使用してパケットの受け入れをiptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
制限できることを知っています。したがって、パケットがこの速度を超えない場合にジャンプします。tcp syn
tcp syn
ACCEPT
このルールを反対方向に作成する方法はありますか?
私は次のようなルールを作成したいと思います。
If ok (doesn't cross the rate), continue down. Else drop
<-- (1)
???
iptables -A INPUT -j OTHER_CHAIN_STUFF
書く方法はありますか(1)
?
試しましたが、iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j DROP
次のように動作します。
速度に達するまで減少し、速度制限を超えると、それ以上減少しないため、DROP
減少し続けます。これは私が望むものではありません。
私が欲しいものを書く方法はありますか?
同様:(iptables -A INPUT -p tcp --syn ! -m limit --limit 1/s -j DROP
注!
)
答え1
hashlimit
可能であれば、このモジュールを使用するのは簡単な方法です。
iptables -A INPUT -p tcp --syn -m hashlimit --hashlimit-name mylimit --hashlimit-above 1/s -j DROP
limit
man iptables-extensions
私のFedora 23のモジュールよりもやや効率が悪いです。
答え2
ただ簡単な解決策に気づきました。
iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p tcp --syn -j DROP
- やりたいことを続けて