私は現在このIPTABLESコマンドを持っています:
iptables -A INPUT -s ! 192.168.0.2 -p tcp --syn -m connlimit [...] -j DROP
私の知る限り、このようなルールは、さまざまなパラメータに従う接続の数を制限します。ただし、192.168.0.2は無制限の数のTCP接続を自由に開くことができます。
私の懸念は、次のような/ 32 IP(特定の範囲パターンなし)をさらに除外することです。
iptables -A INPUT -s ! IP1 IP2 ... IPN -p tcp --syn -m connlimit [...] -j DROP
Iptablesでどのように可能ですか?
そのようにしないでください。人々はiptables
の除外をカスタマイズしようとあらゆる種類の結び目を結びますが、それは問題を処理する正しい方法ではありません。
代わりに、iptables
のfirst-dispositive-match-winsロジックを使用してください。最初に例外をリストします。
iptables -A INPUT -s 192.168.1.1 -p tcp [...] -j ACCEPT
iptables -A INPUT -s 192.168.2.2 -p tcp [...] -j ACCEPT
iptables -A INPUT -s 192.168.3.3 -p tcp [...] -j ACCEPT
そしてルール:
iptables -A INPUT -p tcp --syn -m connlimit [...] -j DROP
これらの特権ソースIPからのパケットを盲目的にACCEPT
したくないが、それ以上のレート制限制御からそれらを単に免除したい場合は、レート制限ロジックをそれ自体のチェーンに移動し、RETURN
をメインのINPUT
チェーンに移動できます。 (さらに処理するために)レート制限制御から除外したいソースからのパケット:
iptables -N ratelimiter
iptables -A ratelimiter -s 192.168.1.1 -j RETURN
iptables -A ratelimiter -s 192.168.2.2 -j RETURN
iptables -A ratelimiter -s 192.168.3.3 -j RETURN
iptables -A ratelimiter --syn -m connlimit [...] -j DROP
#
iptables -A INPUT -p tcp [...] -j ratelimiter
iptables -A INPUT [ further business-appropriate checks ]