防止 SSH 攻击

MGP*_*MGP 9 ssh iptables brute-force-attacks

我正在尝试将 iptables 规则设置为每分钟仅允许 3 次 IP 尝试通过 SSH 连接到 servir,然后断开所有连接以防止 SSH 攻击;但似乎我做错了什么!

-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name DEFAULT --rsource
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 3 --name DEFAULT --rsource -j DROP
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

谢谢

Gre*_*SAT 10

我认为您最好使用fail2ban,因为您的 ipfilter 规则也会阻止合法连接。fail2ban只会在连接失败后阻止 IP。

接下来,一种常见的做法是在尝试连接到端口 22 时禁止 IP,并将您的 ssh 服务器绑定到另一个端口。如果您的计算机不是众所周知的目标,那么您每周只会面临几个非法连接。

对于您提出的确切问题:

iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP
Run Code Online (Sandbox Code Playgroud)


use*_*517 7

您可以使用以下 2 条规则实现您想要的

iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set

iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 3 -j DROP
Run Code Online (Sandbox Code Playgroud)

请注意,使用-Awhich 将规则添加到链的末尾可能会违反 iptables 规则的处理方式,即按顺序处理,因此如果在达到您的规则之前有一般的 DROP 或允许规则,那么它们将永远不会被执行。

话虽如此,您可能还会发现fail2ban是实现此类块的更好方法。