Firewall
限制每秒全域連接數
我想限制埠上所有傳入新連接的數量,而不僅僅是來自一個 IP,例如:
iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m limit --limit 3/s -j DROP
但我不明白出了什麼問題。它工作了一次/兩次,嘗試了不同的限制,之後它現在丟棄了所有新連接。(是的,在以各種形式添加規則之前,我每次都刷新了 iptables)。
EDIT1:我試過了
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 5 --hitcount 5 --name SSH -j DROP
它似乎工作。這會影響所有連接還是僅影響來自同一 IP 的連接?
如果要將新連接的數量限制為
3/s
,則必須將規則目標更改ACCEPT
為DROP
:iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m limit --limit 3/s -j ACCEPT
您可以閱讀
man iptables
:limit This module matches at a limited rate using a token bucket filter. A rule using this extension will match until this limit is reached
因此,您的規則將丟棄所有新連接,直到達到限制!!!