![阻止失败的登录尝试是否值得](https://linux22.com/image/534123/%E9%98%BB%E6%AD%A2%E5%A4%B1%E8%B4%A5%E7%9A%84%E7%99%BB%E5%BD%95%E5%B0%9D%E8%AF%95%E6%98%AF%E5%90%A6%E5%80%BC%E5%BE%97.png)
答案1
限制登录尝试的速率是防止某些高速密码猜测攻击的简单方法。但是,很难限制分布式攻击,许多攻击会在数周或数月内以较低的速度运行。我个人倾向于避免使用 fail2ban 等自动响应工具。这有两个原因:
- 合法用户有时会忘记密码。我不想禁止合法用户访问我的服务器,迫使我再次手动启用他们的帐户(或者更糟的是,试图找出 100/1000 个被禁止的 IP 地址中哪一个是他们的)。
- IP 地址并不是一个好的用户标识符。如果多个用户使用同一个 IP(例如,一所学校在 500 台学生机器上运行 NAT),单个用户几次错误的猜测就可能让你陷入困境。同时,我看到的大多数密码猜测尝试都是分布式的。
因此,我认为 fail2ban(以及类似的自动响应工具)并不是保护服务器免受暴力攻击的好方法。一个简单的 IPTables 规则集可以减少日志垃圾邮件(我的大多数 Linux 服务器上都有),如下所示:
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 4 -j DROP
它可以防止在 60 秒内单个 IP 尝试连接 ssh 超过 4 次。其余问题可以通过确保密码足够强来解决。在安全性较高的服务器上,强制用户使用公钥身份验证是阻止猜测的另一种方法。
答案2
像 fail2ban 这样的工具有助于减少不必要的网络流量,并使日志文件更小更干净。它不是万能的安全解决方案,但可以让系统管理员的工作更轻松一些;这就是为什么我建议在可以负担得起的系统上使用 fail2ban。
答案3
这不仅仅是为了减少噪音——大多数 ssh 攻击都试图暴力猜测密码。因此,虽然您会看到很多失败的 ssh 尝试,但也许在第 2034 次尝试时,他们可能会获得有效的用户名/密码。
与其他方法相比,fail2ban 的优点在于它对有效连接尝试的影响极小。
答案4
抱歉,但如果您的 sshd 拒绝尝试使用密码进行身份验证,我想说您的服务器是安全的。
PasswordAuthentication no