web-dev-qa-db-ja.com

iptables connlimit:複数のIPアドレスを除外します

私は現在この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でどのように可能ですか?

1
GPointer

そのようにしないでください。人々は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 ]
3
MadHatter