“PermitRootLogin no”如何增加安全性

“PermitRootLogin no”如何增加安全性

该主题已讨论过这里但我不太明白答案

我在设置 VPS 时尝试满足一些良好的安全标准。我在 AWS EC2 上使用 Ubuntu18,我通过 ssh 进入ssh -i <myfile.pem> <user@IPv4>

PermitRootLogin no那么在 sshd_config 中考虑的技术背景是什么?正如所讨论的,它将禁用通过 SSH 直接以 root 身份登录的选项,但sudo -s无论如何,当我可以这样做时,我不明白这有什么意义。

我听到一些解释说,即使我的私钥泄露,我仍然需要使用密码进行 root 登录,但是在我当前的 EC2 设置中,当我这样做时没有密码验证sudo -s

冗余:在 sshd_config 中写入默认设置后#PermitRootLogin prohibit-password(注释掉,因此默认设置为是)即使我将其更改为否,我仍然可以无需密码登录到 root。

答案1

禁用 root 帐户的 ssh 登录可以提高机器的安全性,因为任何试图暴力破解 ssh 系统的人现在也必须猜测一个有效的用户名。

这就是原因,即使您可以从用户帐户使用 sudo 获得 root 级别访问权限。

顺便说一句,我建议通过使用 visudo 命令编辑 /etc/sudoers 文件将 sudo 设置为需要密码。

答案2

我认为最让您感到困惑的是,您试图根据特定系统其余部分的配置方式(例如已安装和配置 sudo)来合理化设置。SSH 用于各种系统,从重量级的 ubuntu 桌面到无头服务器,再到小型嵌入式 busybox 实例。所有这些平台都没有通用的默认配置。发行版维护者通常会根据他们的目标自定义配置。

因此,需要考虑的另一件事是 root 不仅仅是一个管理员帐户。与 Windows 相比,它比预定义的管理员帐户更接近系统帐户,而后者对操作系统的访问权限比 root 少得多。

由于 Root 权限太强大,因此最好不要使用 Root(例如 ubuntu 就有),而是使用具有更好安全性的帐户。Sudo 等工具可以协助完成此操作,但大多数发行版都让您自行锁定。

对 root 的另一个担忧是,就像 Windows 内置的管理员一样,它是一个每个人都拥有的命名帐户,因此容易受到暴力攻击。您无法像重命名管理员那样重命名 root,因此禁用它或限制远程用户尝试破解它的能力是有价值的。至少对于另一个帐户,他们必须正确猜出用户名和密码才能进入。

相关内容