Ubuntu
將 ufw 規則映射到 iptables
我正在從 ufw 轉移到 iptables。
ufw 中有一個預設的“限制”規則,如果一個 IP 地址在 30 秒內啟動了 6 個以上的連接(
sudo ufw limit ssh
),該規則就會生效。我對 SSH 流量(埠 22)使用該限制規則。我已經在 iptables 中閱讀了很多不同的方法來做到這一點,這只是令人困惑。我不確定是否使用
connlimit
orlimit
或其他一些模組。將此規則 1:1 映射到 iptables 的最簡單方法是什麼?
使用
recent
擴展基於@Tomasz 的想法,我在 ufw 中創建了規則,並在 iptables 中檢查了結果。似乎 ufw 使用
recent
副檔名::LOG_REJECT - [0:0] -A INPUT -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -m recent --set -A INPUT -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -m recent --update --seconds 30 --hitcount 6 -j LOG_REJECT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A LOG_REJECT -m limit --limit 3/min -j LOG --log-prefix "[LIMITED SSH]" -A LOG_REJECT -j REJECT --reject-with icmp-port-unreachable
使用
limit
擴展哪個更整潔/更簡單:
:LOG_REJECT - [0:0] -A INPUT -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -m limit --limit 12/minute -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -j LOG_REJECT -A LOG_REJECT -m limit --limit 3/minute -j LOG --log-prefix "[LIMITED SSH]" --log-level 7 -A LOG_REJECT -j REJECT --reject-with icmp-port-unreachable
(雖然我不確定
icmp-port-unreachable
在這種情況下是否是正確的拒絕消息。)使用
connlimit
擴展…也許其他人可以添加。:)
ufw
在 iptables 上進行操作,所以既然你是從 ufw 搬來的,我想你可以擷取你的 iptables 並查看 ufw 在那裡做了什麼。