Answers:
从理论上说,改变它/etc/passwd
与/etc/shadow
将所有你需要“重命名”根。出现问题是因为存在的几乎每一个Unix软件都假定用户名'root'存在并且它是超级用户-邮件别名,各种守护程序,cron ...
如果您真的想尝试一下,find /etc -type f -exec grep -l root {} +
应该为找到可能需要更改的每个配置文件的列表提供一个良好的开端-但就像您已经说过的那样,在几乎每种可能的情况下,这都是一个糟糕的主意。
编辑另一种想法-如果您还没有(应该拥有),请确保其中/etc/aliases
包含的条目root
和存在的用户名或评估正确的电子邮件地址。许多自动化的系统级任务(cron
例如)通过电子邮件将其输出发送到root
,传统上,别名是负责该系统操作的系统管理员的别名。
chown root …
Shell脚本亲自编写或类似的东西。
所有这些恐惧流浪,说:“不要做!” 是荒谬的。是的,一次可能确实破坏了许多写得不好的脚本,但是我怀疑那些脚本不再常见了。至少不在标准发行版中。
有人告诉我们在Linux服务器的子集上重命名root帐户。因此,在尝试研究如何正确执行此操作之后,我发现很多帖子都说“不要这样做!” 如果您选择这样做,就会有很多关于“坏东西”的可怕警告。但是,我还没有找到任何可能发生的“坏东西”的具体例子。
所以,让我备份并解释我在哪里,以及我们如何到达这里。我们正在构建一个符合PCI的环境,可以帮助我们满足这些“要求”的工具之一就是告诉我们,我们需要将root帐户,administrator和guest帐户重命名为其他名称。对于那些没有接受过PCI培训的人,您可以选择遵循准则或记录为什么您不能或选择不遵循该准则,以及必须采取哪些缓解策略来确保系统安全。因此,我想大多数地方都会说明为什么他们不打算重命名其根帐户,但是,我们小组决定,如果可以毫无问题地重命名Windows管理员帐户,那么他们也将重命名linux根帐户。
我精通“通过模糊获得安全”的论点;我知道只是更改root帐户名实际上并不能真正提高安全性,应该在SSH上禁用root等。我知道,这不是重点,我不希望听到更多信息。我也对更多的“天空会掉下来”的警告不感兴趣。我正在寻找这样的语句:“>这不好的事情<会与>此标准包<(除非您>执行此操作<)”一起发生。
到目前为止,我有3个CentOS(RHEL)系统,显然在重命名根帐户方面没有问题。这是我做的事情:我更改了/ etc / passwd,/ etc / shadow,/ etc / group和/ etc / gshadow中的帐户名。然后在/ etc /中grep输入名称root,并修改后缀别名文件,以使root是我们新帐户名的别名,将其称为rojotoro。(对于其他电子邮件系统,应该执行类似的操作)。我还发现,在描述谁应该拥有它将自动创建的文件时,我需要为logrotate更改一些配置。到目前为止,这就是我已经改变的一切。
我看过许多init.d脚本,但没有做任何更改,启动时一切似乎都正常。我必须在使用sudo时指定新帐户:“ sudo -u rojotoro vim / etc / passwd”作为示例,但实际上我不需要更改sudoers文件中的任何内容。我预计我们可能会遇到一些与selinux有关的问题,但我们至今仍不需要接触该系统。
我还可以看到可能需要调整mkdev或mkfs脚本,但是我不打算使用这些脚本,因此我没有仔细研究它们。
如果确实很容易在没有启用selinux的系统上进行更改且不会造成不良影响,那么为什么还要继续进行所有恐惧活动呢?
意见建议:不要那样做。
一些工具尝试通过uid与root对话,在那里您应该没有问题。一些工具假定您的root帐户称为root,并且会中断。除非您准备“出于乐趣”重新编译一半的系统,否则请不要尝试。
在我看来,最简单的方法是创建一个新用户(别名),其UID为0并/root
作为主目录。
为什么不将根的默认外壳程序切换为/bin/false
或/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不会被损坏。
/bin/false
否则/sbin/nologin
它将无法启动任何服务。因此,所有这些都必须重新配置。另外,整个目的是提高安全性,添加具有“ root”权限的第二个帐户几乎不会提高安全性。
Linux不是Windows,当前无法轻易重命名root,而不会造成未知的未来问题。
以root身份禁用远程甚至本地登录是一种更安全的方法,因为它会主动禁用帐户root!UBUNTU本质上是这样做的,并强制sudo而不是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要求,以禁用默认的admin / guest帐户并创建一个紧急用途admin帐户。
存档日志以进行审核的一种方法是,如果未实施集中式AAA,则从所有具有sudo帐户访问权限的用户收集终端历史记录。
实现仅管理员帐户的解决方案是创建一个仅用户帐户和一个启用了sudo的帐户,然后强制用户使用其启用了sudo的帐户进行管理访问。
如果您想获得更好的安全性,也可以实施智能卡身份验证。有些针对GNU / Linux的解决方案可以与美国通用访问卡CAC解决方案进行两因素身份验证。