web-dev-qa-db-ja.com

connlimitをIPセットと組み合わせる方法は?

connlimitを使用すると、クライアント/サービスごとの接続数を制限できます。このようなルールを、Linuxカーネルとnetfilterのより新しいバージョンで利用可能なIPセットとどのように組み合わせるのですか?

4
0xC0000022L

MYTESTSETという名前のipsetがあり、このipsetのタイプがhash:ipであるとします。 IPアドレスだけを保存します。

次に、IPsetと照合し、connlimitと照合した後、必要なパラメーターを使用して拡張子を照合します。

iptables -A INPUT -p tcp -m set --match-set MYTESTSET src -m connlimit --connlimit-above 1 --connlimit-saddr --connlimit-mask 32 -j DROP

これにより、次のことが行われます。IPセット内のソースごとに接続がカウントされ、複数ある場合(--connlimit-above 1)はドロップされるため、接続数が制限されますper ipsetのソースから1。(DROPの代わりに--connlimit-upto xxx-j ACCEPTを使用して、他の方法で一致させることもできます)

セット全体を検討し、1つの接続を許可する場合ipset内のすべてのソースに対して次に、--connlimit-maskスイッチを0に設定します。

3
Zimmi