![如何將 connlimit 與 IP 集結合?](https://rvso.com/image/36037/%E5%A6%82%E4%BD%95%E5%B0%87%20connlimit%20%E8%88%87%20IP%20%E9%9B%86%E7%B5%90%E5%90%88%EF%BC%9F.png)
connlimit
讓我限制每個客戶端/服務的連線數。我該如何將這樣的規則與最新版本的 Linux 核心和 netfilter 中可用的 IP 集結合?
答案1
假設我們有一個名為 的 ipset MYTESTSET
,而該 ipset 的類型為hash:ip
。它只會儲存 ip 位址。
connlimit
然後使用您想要的參數與您的 IPset 進行匹配,並在與匹配擴展進行匹配後進行匹配。
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
。-j ACCEPT
DROP
如果要考慮整套並允許1個連接對於 ipset 中的所有來源然後將--connlimit-mask
開關設定為0。