我们应该禁用 root 用户吗?

我们应该禁用 root 用户吗?

我们是否应该删除 root 密码、禁用远程登录并要求管理员使用 sudo 来执行管理操作?

替代文本

答案1

我的所有服务器都禁用了 root 帐户(sp_pwdp设置为*)。这是要求sudo所有 root 访问权限。[1] 这样做的目的是审核所有超级用户活动,以便人们可以看到对系统做了什么。

对于更硬核的选项,您可以将其sudo写入日志文件(而不是syslog),并使文件仅可追加(chattr在 Linux 或chflagsBSD 上使用)。这样,事后就没有人可以编辑审计。

[1] 我还有一个原则,就是不运行 root shell,也不从 root 进程中退出 shell。(sudo sh -c '...'不过,用它来做管道或重定向是没问题的。)

答案2

强调地建议不要禁用 root 用户。禁用或限制 root 登录(通过 securetty通过 sshd_config通过 PAM通过你所拥有的)如果你的系统允许,限制 root 的权限或拆分 root 角色(类似于反渗透反应器)但是请,不要通过删除密码来禁用 root 帐户,否则将无法通过 登录系统suloginsulogin据我所知,所有 initscripts 都会在 fsck 报告严重错误时使用它 - 这意味着如果根文件系统损坏,您将被锁定在系统之外。

澄清一下:“通过删除密码来禁用 root 帐户”是指在 /etc/shadow 的密码字段中以 ! 或 * 结尾的各种机制,或类似内容。我的意思不是“更改 root 登录机制,这样您就不会被提示输入密码。”

答案3

我认为禁用 root 密码是一个错误的“好主意”。当你需要它的时候,你会真的需要它。(根据您的配置,您可能需要它来登录单用户模式)

禁用 root 远程登录可能是相关的,但前提是您能够在本地登录。

是的,sudo 应该安装在您的每台服务器上。它很有用,而且易于配置。您为什么不使用它呢?

答案4

我只是禁用 root 的 SSH 访问,并要求用户(通常只是开发人员)使用 ssh 密钥。字典攻击太多了,更改 SSH 端口对我们来说不是一个选择。

这样你就不必相信任何人能写出好的密码。一旦进入,只有管理员才有 sudo 权限。

相关内容