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


15

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

我已经看到它认为这是“适当安全”服务器上的安全区。但是,我认为这可能会使脚本小子移到列表中的下一个服务器。

假设我的服务器是“适当安全的”,并且我不担心暴力攻击实际上会成功-这些工具是否只是保持日志文件干净,还是我可以从阻止暴力攻击尝试中获得任何有价值的好处?

更新:关于暴力破解密码的很多评论-我确实提到我并不为此担心。也许我应该更具体一些,并问一下fail2ban是否对仅允许基于密钥的ssh登录的服务器有任何好处。


2
这个答案不是一个正确的论点,也不是说Fail2Ban是安全剧院。Fail2Ban是一层,它既不是万能药,本身也不是必须的。任何登录机制都应具有一种限速方法,以防止暴力破解和类似攻击(没有借口允许使用当今的安全知识对互联网连接的服务器进行暴力破解)。您选择如何获得速率限制是您的选择。
克里斯·S

Answers:


18

限速登录尝试是防止某些高速密码猜测攻击的简便方法。但是,很难限制分布式攻击,并且许多攻击在数周或数月内运行缓慢。我个人更喜欢避免使用诸如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次以上的连接尝试。其余的可以通过确保密码合理可靠来处理。在高安全性服务器上,强制用户使用公共密钥身份验证是另一种停止猜测的方法。


1
+1表示其他机制。
dunxd 2011年

7

诸如fail2ban之类的工具有助于减少不必要的网络流量,并使日志文件更小,更整洁。这并不是什么大的安全问题,但是可以使sysadmin的工作更轻松一些。这就是为什么我建议您在负担得起的系统上使用fail2ban的原因。


4

这不仅是为了减少噪音-大多数ssh攻击都试图对密码进行暴力猜测。因此,尽管您会看到很多失败的ssh尝试,但也许到2034年尝试时,他们可能会获得有效的用户名/密码。

与其他方法相比,fail2ban的优点在于,它对有效连接尝试的影响最小。


1

好吧,它可以使您的网络免受拒绝攻击,并节省处理故障的开销。

不在脚本小子列表上成为最弱的服务器总是一件好事。


0

抱歉,但是如果您的sshd拒绝使用密码进行身份验证的尝试,那么您的服务器将受到适当保护。

PasswordAuthentication no

1
-1,首先禁用密码身份验证并非总是一种选择。其次,Fail2Ban不仅可以覆盖SSHd,还可以覆盖更多内容。我将其用于SMTP / IMAP,DNS,HTTP登录和其他一些服务。这不是万能药,当然不是必须的,但是它非常有用。
克里斯·S

:-)我没有说“如果且仅当”。是的,fail2ban确实非常有用。但是它不能防止这样的密码被盗用。而且,的确是!-当然,禁用pw auth并非总是一种选择。但我建议找到一种方法使其成为一种选择。
Brownian 2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.