Iptables
如何重置 iptables 速率限制計數器?
我使用以下實現了 SSH 連接速率限制。
iptables -N SSH_BRUTE_FORCE_MITIGATION iptables -A SSH_BRUTE_FORCE_MITIGATION -m recent --name SSH --set iptables -A SSH_BRUTE_FORCE_MITIGATION -m recent --name SSH --update --seconds 300 --hitcount 10 -m limit --limit 1/second --limit-burst 100 -j LOG --log-prefix "iptables[ssh-brute-force]: " iptables -A SSH_BRUTE_FORCE_MITIGATION -m recent --name SSH --update --seconds 300 --hitcount 10 -j DROP iptables -A SSH_BRUTE_FORCE_MITIGATION -j ACCEPT
如何重置速率限制計數器?
**編輯:**嘗試過
sudo iptables -Z
,但引發以下錯誤。$ sudo iptables -Z [sudo] password for pi: iptables v1.8.2 (nf_tables): RULE_REPLACE failed (Invalid argument): rule in chain INPUT
要重置
-m recent --name SSH
數據:echo / | sudo tee /proc/net/xt_recent/SSH
從
man 8 iptables-extensions
“最近”部分:/proc/net/xt_recent/* are the current lists of addresses and information about each entry of each list. Each file in /proc/net/xt_recent/ can be read from to see the current list or written two using the following commands to modify the list: echo +addr >/proc/net/xt_recent/DEFAULT to add addr to the DEFAULT list echo -addr >/proc/net/xt_recent/DEFAULT to remove addr from the DEFAULT list echo / >/proc/net/xt_recent/DEFAULT to flush the DEFAULT list (remove all entries).
這與可以使用 清除的每個規則數據包/字節計數器不同
iptables -Z
。這也與(
-m limit
用於限制日誌記錄的速率)或-m hashlimit
計數器不同。那些不提供這樣的proc介面。可能的解決方法:
- 解除安裝模組
xt_recent
//會丟棄各自關聯的xt_limit
數據xt_hashlimit
- 只有在目前沒有規則使用它時才有可能
- 需要建構為模組 - 不支持解除安裝內置函式
- 更改規則以使用不同的
--name
/--hashlimit-name
(附加一個數字就可以了)
- 不是原子事務
- 根據更換順序,可能暫時意味著意外行為