许多失败的 SSH 登录尝试 - 我应该担心吗?

Udo*_*o G 7 ssh login

可能的重复:
阻止失败的登录尝试是否值得努力每天进行数百次闯入尝试
是否正常?

我在不同的数据中心管理着许多完全不同的根服务器,我注意到其中大多数失败的 SSH 登录尝试次数相当多。这是过去三天的快照:

SSHD 登录尝试图

没有规律的模式,但通常我每天记录几百次尝试。对我来说,这似乎是僵尸网络随机尝试进入外国服务器。我使用相当安全的密码,但仍然:我应该担心还是对此做些什么?

最好的方法可能是更改 SSH 端口,但这并非在所有情况下都是可行的。

无论如何,这正常吗?

注意:公钥登录符合预期。

Adr*_* P. 13

你可以做的事情:

  1. 可以设置 iptables 规则来阻止 ssh 攻击,这些规则每分钟最多允许来自任何主机的 3 个连接,如果超过此速率,将阻止主机另一分钟。

    iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m 最近 --set --name SSH -j 接受 iptables -A INPUT -p tcp --dport 22 -m 最近 --update --秒 60 --hitcount 4 --rttl --name SSH -j LOG --log-prefix "SSH_brute_force " iptables -A INPUT -p tcp --dport 22 -m 最近 --update --seconds 60 --hitcount 4 - -rttl --name SSH -j DROP

  2. 通过系统日志阻止

    2.1 sshdfilter : 使用 iptables 进行拦截(即动态添加自定义防火墙规则以拦截特定攻击者)。

    2.2 Fail2Ban:是一个 Python 脚本,它添加了自定义防火墙规则来阻止攻击者。

    2.3 DenyHosts:不使用防火墙规则来阻止攻击。相反,它将阻止规则写入 /etc/hosts.deny。

  3. 使用端口敲门(如Knockd

  4. 最好的解决方案,使用 RSA AUTHENTICATION:

    如果您不使用密码而仅使用 RSA 密钥进行身份验证,那么暴力搜索有效密码显然是无用的。

注意:您可以结合一些这些技巧,但简单的 Rsa 身份验证 + 端口敲门是一种坚如磐石的解决方案。


Ken*_*ert 5

阻止这些尝试的一个好方法是设置端口敲门
一些工具来做到这一点的knockd(C),fwknop(C),KnockKnock(蟒蛇)和 KnockKnockServer(渣),仅举几例。

端口敲门可以让你的 SSH 端口对外关闭,直到收到“秘密敲门”或单包授权。

在您的服务器收到秘密敲门声后,防火墙允许新的 SSH 连接几秒钟,让您建立连接。

港口敲门图片

这可能会造成一些不便,但您将不再有来自僵尸网络的登录尝试失败的情况。

图片来源:cipherdyne.org


小智 5

您应该担心并采取措施来加固您的服务器。

跟进 cop1152 的回答:

  1. 你可以改变端口。但是,如果您的客户端经常使用 ssh,并且希望使用默认端口,则这不是一个选项。
  2. 您可以使用诸如fail2ban ( http://www.fail2ban.org/ ) 之类的软件包来暂时禁止在短时间内多次尝试登录失败的 IP。
  3. 如果您知道客户端登录的 IP,则可以使用 fail2ban 阻止除已知 IP 之外的所有 IP(AKA 白名单:http : //www.fail2ban.org/wiki/index.php/Whitelist)。


cop*_*152 2

更改端口,但也有规则禁止多次尝试登录但失败的 IP。此外,请考虑仅允许从某些 IP 登录,而不允许 root 登录。确保用户必须提升为管理员才能执行任何操作。

而且你可能可以做得比“相当安全的密码”更好。Google 搜索将向您展示一些相当简单的方法,使您的 SSH 连接更加安全。

无意冒犯,但如果您负责管理这些服务器,您应该已经了解这些事情。我没有提到任何具体的下载包,但它们很容易找到。