有人试图对我的服务器进行暴力 SSH 访问

Vin*_*oft 23 ssh hacking

巧合的是,我查看了我的服务器 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]
Run Code Online (Sandbox Code Playgroud)

这种情况每分钟发生几次,并且在我不知道的情况下已经持续了很长时间。

问题如果是,我是否应该担心这个问题:我该怎么办?

Sve*_*ven 63

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

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

  • 是的,一切照旧。我发现在我的日志中限制垃圾邮件的最好方法是更改​​ SSH 端口。其他措施可能对安全有帮助,例如确保禁用 root SSH 登录,最大限度地减少可以登录服务器的人数,并确保他们选择好的密码。如果只是您,并且您选择了好的密码,那么您就可以了:他们通常只是尝试常见的用户名/密码组合。但是,理想情况下,禁用密码身份验证并仅使用 ssh 密钥。然后垃圾邮件将完全停止。 (5认同)
  • 在我用 DDNS 设置树莓派并将端口转发到它之后,我真的很惊讶我在树莓派上遇到了多少蛮力……就像繁忙街道上的每个人都试图查看他们的密钥是否适用于您的车。 (2认同)

Mac*_*ity 22

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

    PermitRootLogin no
    
    Run Code Online (Sandbox Code Playgroud)

    就让他们随心所欲地敲打根部。他们永远不会那样做。


Mat*_*lis 10

除了像 Sven 所指出的那样保护服务器之外,最好的事情之一(特别是如果 ssh 只为您,管理员)就是将 sshd 端口从 default 更改22

它不仅简单(尤其是当您将新端口放入其中时,~/.ssh/config因此您不必每次都输入它),并且它会停止 99% 的自动扫描,因此您甚至看不到它们,而且它也会有所帮助即使发现了一些 0-day ssh 漏洞给你更多的时间,或者你的密钥被泄露等。

  • @MontyHarder 维基百科将*通过默默无闻* 定义为*“依赖设计或实现的保密性作为提供安全性的主要方法。”*。相比之下,这种方法实际上使用端口作为一个小的**附加**秘密。显然,这有成本(不便),而假设安全的 ssh 服务器几乎没有好处。但是,我确实遵循了关键的 0 天 ssh 漏洞的论点。有许多不太有效、更烦人的蛇油解决方案被广泛接受...... (10认同)
  • 通过默默无闻的安全不是。您所做的只是迫​​使有合法需求的人通过 SSH/SFTP 连接到您的服务器使用非标准端口,这可能需要他们要求他们的 InfoSec 团队批准允许该连接的防火墙规则。不要再让我的工作变得更加困难,以制造提高安全性的虚假错觉。 (3认同)
  • @MontyHarder 这甚至不是关于“默默无闻的安全”。如果我在非标准端口上运行我的服务器,我只需减少脚本小子的噪音,这使得更容易看到*真实*有针对性的攻击。 (2认同)

小智 7

这是很正常的行为。我每天都会收到数千份这样的邮件,我认为与大公司面临的情况相比,这甚至是微不足道的。

但是你需要担心吗?

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

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

  • 万维网数据
  • 测试
  • 行政

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