当我执行时,ps -efH
我看到很多以下内容,其中 14:24 基本上是当前系统时间。这些进程每分钟都会弹出。
root 6851 1 0 14:24 ? 00:00:00 sshd: root [priv]
sshd 6852 6851 0 14:24 ? 00:00:00 sshd: root [net]
root 6869 6851 1 14:24 ? 00:00:00 sshd: root [pam]
root 6861 1 0 14:24 ? 00:00:00 sshd: root [priv]
sshd 6863 6861 0 14:24 ? 00:00:00 sshd: root [net]
root 6874 6861 0 14:24 ? 00:00:00 sshd: root [pam]
root 6865 1 0 14:24 ? 00:00:00 sshd: root [priv]
sshd 6866 6865 0 14:24 ? 00:00:00 sshd: root [net]
root 6875 6865 0 14:24 ? 00:00:00 sshd: root [pam]
root 6872 1 1 14:24 ? 00:00:00 sshd: root [priv]
sshd 6873 6872 0 14:24 ? 00:00:00 sshd: root [net]
root 6876 6872 0 14:24 ? 00:00:00 sshd: root [pam]
这是否意味着有人试图通过 SSH 暴力破解此机器上的 root 密码?还是说这是些不那么险恶的事情?
答案1
这是否意味着有人试图通过 SSH 暴力破解此机器上的 root 密码?还是说这是些不那么险恶的事情?
这可能是通过 SSH 进行暴力破解的尝试,但即使这是“邪恶的”,我也不会为此而失眠。大多数在互联网上公开访问的服务器都会受到攻击者的探测。有人虚拟地“监视”服务器并不是什么值得失眠的事情;真正侵入系统才是值得失眠的事情。
哎呀,我刚刚auth.log
在我管理的公共服务器上检查了一下,当我运行以下命令时,过去 24 小时内有超过 2000 次“身份验证失败”尝试:
sudo grep "authentication failure;" /var/log/auth.log | wc -l
auth.log
听起来很可怕,但说实话,谁在乎呢?使用上述命令稍作修改的版本快速检查日志条目:
sudo grep "authentication failure;" /var/log/auth.log
…向我展示如下内容:
Mar 15 07:02:09 hostname sshd[2213]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=115.239.228.35 user=root
Mar 15 07:02:19 hostname sshd[2236]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=115.239.228.35 user=root
Mar 15 07:02:31 hostname sshd[2355]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=115.239.228.35 user=root
请注意,所有尝试访问的尝试都针对该root
帐户?在我设置的任何系统上,root
都会立即被禁用。所以在我看来,这些尝试都是徒劳的。因此,如果您检查系统auth.log
并看到大量ssh
通过帐户进入系统的尝试root
,请确保您的系统root
帐户已完全禁用,以消除该问题。
除了root
账户尝试之外,如果您看到看似随机的用户名访问您的系统,这也是另一种入侵系统的尝试。除非这些用户名等同于您系统上的某个用户名,否则我根本不会担心它们。
现在,一些系统管理员会说,解决这个问题的最佳方法是完全禁用 SSH 的密码验证,只使用 SSH 密钥对,但我倾向于认为这有点矫枉过正。并不是说 SSH 密钥对很弱——它们并不弱——但如果系统的访问方法从第一天起就合理而安全地设置,并且密码足够强大,不容易被黑客入侵,那么系统就相当安全。这是因为现代 Web 服务器上最大的漏洞是实际在服务器本身上运行的前端 Web 应用程序,而不是 SSH 之类的东西。
归根结底,我不会担心这些随机的“战争拨号”尝试,而是会先发制人地确保服务器本身已禁用root
用户帐户。如果您在 2015 年仍在启用帐户的情况下运营公共服务器root
,那么从长远来看,您基本上是在自找麻烦。