有人试图强行通过 SSH 访问我的服务器

有人试图强行通过 SSH 访问我的服务器

偶然间,我查看了我的服务器的 ssh 日志(/var/log/auth.log),发现有人在不断尝试获取访问权限:

Sep  7 13:03:45 virt01 sshd[14674]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.31.116.42  user=root
Sep  7 13:03:48 virt01 sshd[14674]: Failed password for root from 116.31.116.42 port 13423 ssh2
Sep  7 13:03:52 virt01 sshd[14674]: message repeated 2 times: [ Failed password for root from 116.31.116.42 port 13423 ssh2]
Sep  7 13:03:52 virt01 sshd[14674]: Received disconnect from 116.31.116.42: 11:  [preauth]

这种情况每分钟就会发生几次,并且已经持续了很长时间而我却对此毫不知情。

问题如果是,我应该担心这个问题吗?我应该怎么做?

答案1

不幸的是,这是绝对正常的,每个 SSH 服务器都会遇到这种情况。欢迎来到互联网。

只要您正确地保护您的服务器(例如,保持更新,只允许基于密钥的登录,禁用根 SSH 访问),这应该不是问题,但您可以使用类似方法fail2ban和其他方法(例如 IP 白名单、更改端口等)进一步限制这一点(在可能和适当的情况下)。

答案2

  1. 使用防火墙(iptables 或您的服务提供的任何防火墙)阻止 IP。是的,他们可能会更改 IP,但让他们自己做
  2. 如果您有外部防火墙(例如 AWS 控制台允许您通过网页设置访问规则),请考虑将端口 22 限制为您的 IP。在这种情况下,无需摆弄 fail2ban
  3. 正如评论中提到的,切换到基于密钥的身份验证并关闭密码验证
  4. 禁用 root 登录. 将其添加到/etc/ssh/sshd_config

    PermitRootLogin no
    

    让他们尽情地挖掘根部吧。这样他们就再也不会来捣乱了。

答案3

除了像 Sven 指出的那样确保服务器安全之外,最好的办法之一(特别是如果 ssh 只为你,管理员,而存在)就是将 sshd 端口从默认端口改掉22

它不仅简单(特别是当您在端口中输入新端口时~/.ssh/config,您不必每次都输入它),而且它会阻止 99% 的自动扫描,所以您甚至看不到它们,但即使发现一些 0 天 ssh 漏洞,为您提供更多时间,或者您的密钥泄露等,它也会有所帮助。

答案4

这是很正常的行为。我得到了几个每天都会有这样的问题,我想这与大公司面临的问题相比也是微不足道的。

但你需要担心吗?

  • 你安裝了fail2ban嗎?
  • 您是否已禁用 root ssh 登录?
  • 您是否阻止了用户 www-data 的 ssh 登录?
  • (可选)您是否禁用基于密码的登录赞成公钥登录吗?
  • (可选)您是否已将 SSH 端口从 22 更改为其他端口?
  • (可选)您是否添加了TOTP pam 模块登录?

如果是,那您不必担心。这些攻击通常是针对常见 unix 用户名的基于字典的攻击。例如,我经常看到这些“用户”尝试登录:

  • www-数据
  • 测试
  • 行政

真的建议安装fail2ban,因为它将根据用户的 IP 对任何尝试登录的用户进行速率限制,仅此一项就应该可以过滤掉大部分恶意流量。与其他人所说的相反,我并不支持基于 IP 的阻止。这似乎是对一个非常精细的问题的一个非常粗略的解决方案。此外,这些攻击者通常控制多个 IP,因此即使您阻止几个(甚至几个 IP 阻止),也不能保证您会阻止所有 IP。然而,Fail2ban 对这些场景非常灵活。

相关内容