阻止失败的登录尝试是否值得

阻止失败的登录尝试是否值得

值得跑步吗失败2bansshd过滤器 或者类似的工具,将尝试登录但登录失败的 IP 地址列入黑名单?

我见过有人争论这是“安全措施得当”的服务器上的安全剧场。但是,我觉得这可能会让脚本小子转向他们列表中的下一个服务器。

假设我的服务器“得到了适当的保护”,并且我并不担心暴力攻击会成功——这些工具只是保持我的日志文件干净,还是我在阻止暴力攻击尝试方面获得了任何有价值的好处?

更新:关于暴力猜测密码的评论很多 - 我确实提到过我并不担心这个。也许我应该更具体一点,问问 fail2ban 对只允许基于密钥的 ssh 登录的服务器是否有好处。

答案1

限制登录尝试的速率是防止某些高速密码猜测攻击的简单方法。但是,很难限制分布式攻击,许多攻击会在数周或数月内以较低的速度运行。我个人倾向于避免使用 fail2ban 等自动响应工具。这有两个原因:

  1. 合法用户有时会忘记密码。我不想禁止合法用户访问我的服务器,迫使我再次手动启用他们的帐户(或者更糟的是,试图找出 100/1000 个被禁止的 IP 地址中哪一个是他们的)。
  2. 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

相关内容