![EC2 实例中没有 SSH 根登录——真正的意义是什么?](https://linux22.com/image/1588710/EC2%20%E5%AE%9E%E4%BE%8B%E4%B8%AD%E6%B2%A1%E6%9C%89%20SSH%20%E6%A0%B9%E7%99%BB%E5%BD%95%E2%80%94%E2%80%94%E7%9C%9F%E6%AD%A3%E7%9A%84%E6%84%8F%E4%B9%89%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
我的问题不是如何获取它,我知道可以通过将密钥从 ubuntu-user 的文件夹复制到 root 的文件夹来完成。
我的问题是关于了解默认限制之后的动机。
我读过的每一篇文章、帖子、教程等都解释说这样配置是由于安全问题,为了改进它,但由于 EC2s 同时建议不要为 root 用户分配密码,任何以 ubuntu 用户身份访问系统的人都可以立即以 root 身份访问,所以我不明白这种动机。
我想这也可能是因为许多攻击可能使用 root 作为默认用户,因此使用另一个不太常见的用户可能是个好主意,但同样,由于每个 EC2(显然是带有 Ubuntu 的 EC2)中的默认用户都是 ubuntu,这似乎也不是这样做的好动机。
最后,我猜使用 ubuntu 用户而不是直接使用 root 可能更安全,就像一个“个人防火墙”,我的意思是,只要一个人必须执行“sudo -i”才能成为 root,他就可以避免犯一些错误,因为在那 2 秒钟内他可以有机会思考“等等,我要运行的这个命令可能不是一个好主意......”,而这一点我确实理解,但这对我来说是唯一真正真实的。
总而言之,我的问题是,如果我允许通过 SSH 进行 root 登录,或者在允许 SSH root 登录时我是否遗漏了任何重要/真正的安全点,那么最后一点是否是我唯一应该担心的?
答案1
是的,你忽略了要点。也就是说,没有密码的用户无法登录,因此取消设置 root 密码将禁止任何人以 root 身份登录,但 sudoers 仍然可以访问 root shell 并以 root 权限执行命令。禁止 root 从 ssh 登录是个好主意,因为许多攻击都尝试对用户进行字典攻击,因此 root/admin/public 非常容易受到攻击。
答案2
大多数 VM 映像都以这种方式配置实际上有几个原因。
一是用户经常将默认用户配置为使用密码登录,即使他们最初没有这样设置,许多机器人会尝试对 root 用户进行字典攻击。如果默认用户不是 root,攻击者还必须尝试猜测默认用户的名称和密码,这需要更多资源,因此攻击者在使用时更容易被发现fail2ban
。限制 root 登录会使事情变得更加困难,而安全的关键在于纵深防御。
另一个原因是,最好尽可能不要以 root 身份运行。长期使用 Unix 的用户总是希望以非特权用户身份运行,并且只在需要时才使用 sudo 以 root 身份运行。这样可以减少错误带来的麻烦,并且当有多个用户时,审计会变得更容易,因为您可以看到谁登录了以及做了什么。因此,为默认的非特权用户提供 sudo 权限会以大多数用户想要使用的方式默认配置系统。
如果你配置节点供个人使用和如果您只使用 SSH 密钥(即在配置中完全禁用密码和质询-响应身份验证),那么以 root 身份使用 SSH 是可以的。但请注意,对于具有多个用户的系统或企业环境,这不是一个好的做法。