很多失败的SSHlogin尝试 – 我应该担心吗?

可能重复:
值得努力阻止失败的login尝试
每天有几百次闯入企图是否正常?

我在不同的数据中心pipe理了许多完全不同的根服务器,而且我注意到其中大多数失败的SSHlogin失败次数相当多。 以下是过去三天的快照:

SSHD登录尝试图

没有固定的模式,但是通常我每天logging几百次。 对我来说,这似乎是随机的尝试进入国外服务器的僵尸networking。 我使用相当安全的密码,但仍然:我应该关心或做这件事?

最好的可能是更改SSH端口,但这在所有情况下都是不可能的。

无论如何, 这是正常的吗?

注意:PublicKeylogin如预期的那样。

你可以做的事情:

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

    iptables -Ainput-p tcp –dport 22 -m状态–state新-m最近–set –name SSH -j ACCEPT iptables -A INPUT -p tcp –dport 22 -m最近–update – 秒60 –hitcount 4 –rttl –name SSH -j LOG – 日志前缀“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进行阻止(即dynamic添加自定义防火墙规则来阻止特定的攻击者)。

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

    2.3拒绝主机:不使用防火墙规则来阻止攻击。 而是将阻塞规则写入/etc/hosts.deny。

  3. 使用端口敲击(如敲 )

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

    如果您不使用密码,而只使用RSA密钥进行身份validation,则powershellsearch有效的密码显然是无用的。

注意:您可以结合这些提示,但简单的Rsa auth +端口敲击是一个坚如磐石的解决scheme。

你应该关心并采取措施来加强你的服务器。

继续cop1152的答案:

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

阻止这些尝试的一个好方法是设置Port knocking 。
有些工具是敲 (C), fwknop (C), KnockKnock (Python)和KnockKnockServer (Java)等等。

端口敲kan保持您的SSH端口closures,直到收到“秘密敲门”,或单个数据包授权。

在你的服务器得到秘密敲门之后,防火墙允许新的SSH连接几秒钟,让你build立连接。

港口敲门的形象

这可能会造成一些不便,但是您将不再有僵尸networking的login尝试失败。

图片来源: cipherdyne.org

改变端口,但也有禁止IP的企图login和失败无数次的规则。 此外,请考虑只允许从某些IPlogin,并且不允许rootlogin。 确保用户必须提升pipe理员才能执行任何操作。

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

没有冒犯,但如果你负责pipe理这些服务器,你应该知道这些事情。 我没有提到任何具体的软件包下载,但他们很容易find。

运行在默认的SSH端口和公共IP上,并可能打开来自每个人的连接。 是的,这些东西是经常的。 如果你使用安全和强大的密码,你可能会在一定程度上安全,但你永远不知道。

有几件事要做:

  1. 使用基于公钥的authentication,如果可能的话禁用基于密码的authentication。
  2. 禁用rootlogin。
  3. 改变一些随机的SSH端口,如果改变它在所有的服务器,有一些机制来记住它们。
  4. 使用fail2ban或其他类似软件包,使用一些自动阻止这种入侵IP。
  5. 部署一个RAS服务器(OpenVPN),只允许sshclosures这台服务器的RAS服务器。 并不总是可行的,但确实减less了探究的机会。

你可以/应该做的一些事情:

  • 更改端口
  • tigthen iptables(最大连接数/分钟,选定的IP,…)
  • 禁用root ssh-login
  • 禁用明文密码
  • 使用密钥authentication
  • 使用端口敲击(也许有点超过顶部)

只要你有一台可以上网的服务器,你就会遇到这个问题。 他们中的大多数只是尝试几个组合的脚本。 我把这个命令放在我的MOTD中来跟踪它。

echo -ne "Total failed attempts: $(grep 'Failed password' /var/log/auth.log* | wc -l) failed attempts"