connlimit
クライアント/サービスあたりの接続数を制限します。これらのルールを、最新バージョンのLinuxカーネルおよびネットフィルタで利用可能なIPセットとどのように組み合わせますか?
ベストアンサー1
という名前のipsetがあり、MYTESTSET
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)削除され、接続数を制限します。ipsetの各ソース1として。 (他の方法で一致させることもできます。代わりに--connlimit-upto xxx
andを使用してください)-j ACCEPT
DROP
セット全体を考慮して1つの接続を許可したい場合ipsetのすべてのソースについてその後、--connlimit-mask
スイッチを0に設定します。