在 SSH 服务器上强力猜测密码不起作用?

在 SSH 服务器上强力猜测密码不起作用?

我在个人电脑上运行 SSH 服务器。日志显示许多人(或机器人?)反复尝试登录我的服务器(在我更改默认端口之前),这让我有点害怕。我担心他们会进行字典攻击或暴力破解密码。

但是如果你输入了错误的密码(或错误的用户名),服务器会等待大约 2 秒钟,然后再要求输入密码。因此攻击者每 2 秒钟可以尝试一个密码。所以我得出结论,这些攻击的威胁并不大(只要你的密码不是由字典中的单词组成)。我说得对吗?

答案1

其他答案中关于在使用 SSH 时进一步保护自己的建议非常明智。

但具体到您的问题,单个用户的暴力攻击不太可能有效,除非针对常见的用户名/密码组合或字典单词。一个随机的字母数字 9 个字母的密码强度需要大约 600 万年才能猜出。

但是,也可以使用大型协调僵尸网络进行攻击,这样您就可以将服务器对每个用户的 2 秒延迟的影响降至最低。一百万个机器人(显然不太可能)会将您的破解时间缩短到更可怕的 6.4 年

答案2

SSH 暴力破解那些并不容易的 root 密码(例如“god”;))可能永远不会成功。但是有这么多人在尝试,我想有足够多的人使用足够弱的密码,攻击者尝试是有意义的。

所以是的,如果您使用强密码,您可能是安全的,但是您可以采取一些措施来进一步提高安全性(并且可以每天在您的日志文件中嘲笑 50k 次登录尝试):

  • 使用 fail2ban 自动阻止暴力攻击者(我认为它会根据您的日志文件创建 iptables 规则)。
  • 使用“passwd -l”完全禁用 root 帐户,改用 sudo (确保启用并测试 sudo正在执行该命令!)
  • 甚至更好:在 sshd_config(PasswordAuthentication no)中完全禁用通过 SSH 进行密码登录,而改用密钥文件。

答案3

我安装拒绝主机在任何具有面向互联网的 ssh 服务器的机器上。它会自动将多次登录失败的源 IP 添加到 hosts.deny。

答案4

你还可以做更多BlockSSHd

BlockSSHD 是一个基于 BruteForceBlocker v1.2.3 的 Perl 脚本,可以动态添加IPTables 规则对于 Linux 和pf 防火墙规则适用于 BSD 的阻止 SSH 暴力攻击的软件。它还可以检测 ProFTPd 登录失败。

它非常简洁和灵活。

BlockSSHD 脚本可以在一段时间后解除对 IP 地址的阻止。此功能在 blocksshd.conf 配置文件中使用 unblock 选项启用,并使用 unblock_timeout 选项设置时间段。

BlockSSHD 脚本还可以将阻止的 IP 地址记录到文件中,并在重新启动脚本时重新应用这些阻止的 IP 地址。这允许您在重新启动或防火墙规则被刷新后恢复之前阻止的 IP 地址。

最近digg-6 种方法让你的 SSH 登录更安全

  1. 选择强密码
    • 禁用直接 root 登录
    • 禁用基于密码的登录
    • 在非标准端口上运行 SSH
    • 禁止屡教不改者(iptables 方式)
    • 基于 PerlBlockSSHd
    • 基于Python失败禁止
    • 限制连接速率(再次使用 iptables

仍然疑神疑鬼?用户双因素身份验证
使用 WiKID 双因素身份验证保护您的 SSH 部署

相关内容