禁用 root 登录是否可以增强安全性?

禁用 root 登录是否可以增强安全性?

我最近在以下网址发现了一个反对在 Linux 中禁用 root 用户登录的论点:http://archives.neohapsis.com/archives/openbsd/2005-03/2878.html

我认为,如果每个人都使用公钥认证,那么就不会有丢失 root 密码的风险。

禁用通过 ssh 的 root 登录总是更好吗?

答案1

简短的回答是,攻击配置文件越小越好。总是如此。如果您不需要它或可以使用 sudo 或 su 等替代方案,则不要启用 root 登录。

支持禁用 root 并使用 sudo/su 的一个重要理由是,您可以跟踪谁在做什么。一个用户 - 一个登录名。永远不要共享帐户。

该链接处的参数似乎特定于本地登录,而不是 ssh。

答案2

我同意丹尼斯的观点,另外:

允许 root 通过 SSH 登录也意味着 root 容易受到暴力密码猜测的攻击。

因为 root 总是存在,而且奖励很高,所以它是一个优先目标。首先必须猜出用户名,这增加了几个数量级的难度。

答案3

如果您没有控制台访问权限,切勿禁用 root 帐户。如果您的文件系统已满,并且在创建 /etc/nologin 时启动失败,则只有 root 帐户才允许登录机器。

也就是说,如果您有控制台访问权限来处理这些情况,关闭 root 帐户可能会为您省去一些麻烦,因为没有人能够使用字典攻击来访问 root 帐户(我的经验是,这些天这种情况很常见 - 总有人在尝试)。您可能考虑做的其他事情:

  • 安装一个像 fail2ban 这样的程序,当某个 IP 地址的身份验证失败次数超过一定次数时,该程序就会自动关闭该 IP 地址的访问(以主动防范字典攻击)。
  • 仅使用 ssh 密钥。
  • 如果您管理很多机器,请使用 cfengine 或其他工具来管理您授权进入机器的公钥(否则您很快就会发现这些公钥已经过时了)。

谨致问候,
若昂·米格尔·内维斯

答案4

我认为是的,为了便于审计,应禁用以 root 身份登录。如果您是这台机器上的唯一系统管理员,那么确定谁对谁做了什么很简单,但如果有十个人被授权管理该机器,并且他们都知道 root 密码,那么我们就有麻烦了。

无论是否启用了 root 权限,都不应允许 root 或任何其他用户使用密码进行远程登录。fail2ban 对缓慢的暴力破解僵尸网络无能为力,并且对 IPv6 根本不起作用。(ssh 协议版本 1 和版本 2 的旧实现容易受到针对 ssh 会话中的交互式密码提示的密码猜测攻击,但对于足够新的 ssh 实现,这种情况似乎不再存在。)

相关内容