我使用以下实现了 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
数据:从
man 8 iptables-extensions
“最近”部分:这与可以使用 清除的每个规则数据包/字节计数器不同
iptables -Z
。这也与(
-m limit
用于限制日志记录的速率)或-m hashlimit
计数器不同。那些不提供这样的proc接口。可能的解决方法:xt_recent
//会丢弃各自关联的xt_limit
数据xt_hashlimit
--name
/--hashlimit-name
(附加一个数字就可以了)