并不是说改变它是一个好主意,而是为了好玩。根据这/etc/passwd
post,即使更改了、/etc/shadow
和中的条目后仍然存在一些问题/etc/sudoers
。有什么建议么?
答案1
从理论上讲, “重命名”根所需的/etc/passwd
只是更改它。/etc/shadow
之所以会出现这个问题,是因为几乎所有现有的 Unix 软件都假设用户名“root”存在并且它是超级用户——邮件别名、各种守护进程、cron...
如果你真的一心想尝试它,find /etc -type f -exec grep -l root {} +
那么找到你可能需要更改的每个配置文件的列表应该是一个好的开始 - 但就像你已经说过的,在几乎所有可以想象的情况下,这都是一个非常糟糕的主意。
编辑另一个想法——如果你还没有(你应该有),请确保/etc/aliases
包含存在的条目root
和用户名或正确评估的电子邮件地址。例如,许多自动化的系统范围任务cron
通过电子邮件将其输出发送到root
,而传统上该电子邮件是负责该系统操作的系统管理员的别名。
答案2
所有这些都是在散布恐惧,说“不要这样做!”太荒谬了。是的,它曾经一度可能破坏了很多写得不好的脚本,但我怀疑这些已经不再常见了;至少在标准发行版中不是这样。
我们被告知要重命名 Linux 服务器子集上的 root 帐户。因此,在尝试研究如何正确执行此操作后,我发现很多很多帖子都说“不要这样做!”如果你选择这样做,就会有很多可怕的警告“坏事”发生。但是,我还没有找到任何可能发生的“坏事”的具体例子。
那么,让我备份并解释一下我在哪里,以及我们是如何到达这里的。我们正在构建一个符合 PCI 的环境,帮助我们满足这些“要求”的工具之一告诉我们需要将根帐户、管理员帐户和来宾帐户重命名为其他帐户。对于那些未受过 PCI 教育的人,您可以选择遵循这些准则,或者记录为什么您不能或选择不遵循该准则,以及您必须采取哪些缓解策略来保证系统安全。因此,我想大多数地方都会记录为什么他们不打算重命名 root 帐户,但是,我们的小组已经决定,如果我们可以毫无问题地重命名 Windows 管理员帐户,我们也将重命名 linux root 帐户。
我深谙“通过默默无闻实现安全”的论点;我知道仅仅更改 root 帐户名称实际上并不能提高很多安全性,root 应该在 SSH 上禁用,等等。我知道,这不是重点,我没有兴趣听到更多。我对更多“天塌下来”的警告也不感兴趣。我正在寻找这样的陈述:“>这个坏事<将发生在>这个标准包<(除非你>这样做<)”。
到目前为止,我有 3 个 CentOS (RHEL) 系统,显然在重命名 root 帐户时没有任何问题。这就是我所做的:我更改了 /etc/passwd、/etc/shadow、/etc/group 和 /etc/gshadow 中的帐户名。然后在 /etc/ 中查找名称 root 并修改 postfix 别名文件,使 root 成为我们新帐户名的别名,称之为 rojotoro。 (对于其他电子邮件系统也应该执行类似的操作)。我还发现,在描述谁应该拥有它将自动创建的文件时,我需要更改 logrotate 的一些配置。到目前为止,这就是我所做的一切改变。
我查看了许多 init.d 脚本,但没有更改任何内容,并且一切似乎在启动时都运行良好。使用 sudo 时我必须指定新帐户:“sudo -u rojotoro vim /etc/passwd”作为示例,但实际上我不需要更改 sudoers 文件中的任何内容。我预计我们所使用和执行的 selinux 可能会出现一些问题,但到目前为止我还不需要触及该系统。
我还可以看到 mkdev 或 mkfs 脚本可能需要调整,但我不打算使用它们,所以我没有对它们进行应有的审查。
如果真的这么容易改变,并且对支持 selinux 的系统没有不良影响,为什么还要继续散布恐惧呢?
答案3
在我看来,最简单的事情就是创建一个新用户(别名),UID 为 0,并/root
作为 home。
为什么不将 root 的默认 shell 切换为/bin/false
or /sbin/nologin
(这样就没有人可以登录它,但系统仍然使用它)并登录到创建的新别名?
razvan@naboo ~ $ head -2 /etc/passwd
root:x:0:0:root:/root:/bin/nologin
root2:x:0:0:root:/root:/bin/bash
razvan@naboo ~ $ su -
Password:
su: Authentication failure
razvan@naboo ~ $ su root2
Password:
naboo razvan # whoami
root
如果将 root 的 shell 更改为 nologin,则 sudo、mail 或 ftw 不会被损坏。
答案4
Linux 与 Windows 不同,目前无法轻松重命名 root,否则会造成未来未知的问题。
禁用远程甚至本地 root 登录是一种更安全的方法,因为它会主动禁用帐户 root! UBUNTU 本质上就是这样做的,并强制使用 sudo 而不是 root 访问。
基本上没有人可以使用 root 帐户来攻击您的系统,因为它不再可以用于登录系统!
如果创建一种标准方法来轻松修改 root 帐户名称并在安装时随机生成其 UID(如果可能的话)在每次冷启动时防止 UID 定位,那就太好了,但目前还不存在。
调整 /etc/passwd 修改 root:x:0:0:root:/root:/bin/nologin
创建一个后备管理员帐户仅供紧急使用! Fallbackadmin:x:0:0:root:/root:/bin/bash
为所有管理员实施 sudo,以便可以实施更改日志审核,以准确跟踪谁进行了更改以承担责任!
这实现了 PCI US Gov 的要求,以禁用默认管理员/来宾帐户并创建单个紧急使用管理员帐户。
如果未实施集中式 AAA,归档日志以进行审核的一种方法是从所有具有 sudo 帐户访问权限的用户收集终端历史记录。
实现仅限管理员帐户的一种解决方案是创建一个仅限用户的帐户和一个启用 sudo 的帐户,然后强制用户 su 到其启用 sudo 的帐户以获得管理访问权限。
如果您想要更好的安全性,您还可以实施智能卡身份验证,有适用于 GNU/Linux 的解决方案,与美国通用访问卡 CAC 解决方案的两因素身份验证相比。