巧合的是,我查看了我的服务器 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]
这种情况每分钟发生几次,并且在我不知道的情况下已经持续了很长时间。
问题如果是,我应该对此感到担忧: 我应该怎么做?
不幸的是,这绝对是正常的,并且每个 SSH 服务器都会遇到。欢迎来到互联网。
只要您正确保护您的服务器(例如保持更新,仅允许基于密钥的登录,禁用 root SSH 访问),这应该不是问题,但您可以使用
fail2ban
类似 IP 等其他方法进一步限制这一点在可能和适当的情况下,将端口列入白名单、更改端口和类似的东西。禁用 root 登录。将此添加到
/etc/ssh/sshd_config
让他们随心所欲地从根本上敲下来。那样他们就永远不会那样做了。
除了像 Sven 指出的那样保护服务器之外,最好的事情之一(特别是如果 ssh 适合您,管理员)就是将 sshd 端口从 default 更改
22
。它不仅简单(尤其是当您将新端口放入您的端口时,
~/.ssh/config
因此您不必每次都键入它)而且它会停止 99% 的自动扫描,因此您甚至不会看到它们,而且它也会有所帮助即使发现一些 0-day ssh 漏洞给您更多时间,或者您的密钥泄露等。这是很正常的行为。我每天都会收到几千个,我认为与大公司面临的情况相比,这甚至是微不足道的。
但是你需要担心吗?
fail2ban
吗?如果是,那么您无需担心。这些攻击通常是基于字典的对常见 unix 用户名的攻击。例如,我经常看到那些“用户”尝试登录:
我真的建议安装
fail2ban
,因为它会限制任何尝试根据他们的 ip 登录的用户,仅此一项就可以过滤掉大部分恶意流量。与其他人所说的相反,我不是基于 ip 的阻塞的支持者。对于一个非常精细的问题,这似乎是一个非常粗略的解决方案。此外,这些攻击者通常控制多个 ip,因此即使您阻止了多个(甚至几个 ip 块),也不能保证您会全部阻止。然而,Fail2ban 对于这些场景非常灵活。