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

dun*_*nxd 15 security ssh fail2ban

是否值得运行fail2bansshdfilter 或类似工具,将尝试登录和登录失败的 IP 地址列入黑名单?

我已经看到有人认为这是“适当保护”服务器上的安全剧院。但是,我觉得这可能会让脚本小子移动到他们列表中的下一个服务器。

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

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

peh*_*hrs 19

速率限制登录尝试是防止一些高速密码猜测攻击的简单方法。然而,很难限制分布式攻击,而且许多攻击在数周或数月内以低速运行。我个人更喜欢避免使用像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
Run Code Online (Sandbox Code Playgroud)

它可以防止在任何 60 秒内从单个 IP 到 ssh 的连接尝试超过 4 次。其余的可以通过确保密码足够强来处理。在高安全性服务器上强制用户使用公钥认证是另一种停止猜测的方法。


pit*_*itr 7

像fail2ban这样的工具有助于减少不必要的网络流量并使日志文件更小更干净。这不是一个大的安全治疗,但让系统管理员的生活更轻松一些;这就是为什么我建议在您负担得起的系统上使用fail2ban。