多管理员根访问的最佳实践

多管理员根访问的最佳实践

我正在尝试为一组 Linux 服务器制定安全策略。我的组织中有 8 个人需要通过 SSH 进行 root 级别访问。

在过去的一家公司,我的解决方案是只允许使用 RSA 密钥,并为每个用户提供拥有自己密钥的用户。

为了授予 root 权限,我将 UID 设置为 0。这样就无需设置 sudo 或 su,而人们似乎总是使用 sudo su - 或 sudo /bin/bash。它还允许我执行以下操作。

我修补了 Bash,将 getlogin() 的返回值和命令记录到 syslog。然后,我得到了服务器上运行的所有操作的日志以及与用户绑定的用户名。如果我使用 su 或 sudo,我只会获得 root 用户。

我现在在一家新公司,处于全新状态,想知道是否有人有他们使用并喜欢的政策。

答案1

我们使用配置为允许来自组的命令的 sudo。为了防止 sudo -i 或 sudo bash,我设置了一个别名,其中包括我禁止使用 ! 的所有已知 shell,这些 shell 在该组可以执行的操作的定义中。这样,所有使用 sudo 运行的命令都会记录到 syslog 中。我安装并允许的唯一 shell 是根什,它记录了所做的一切。

Cmnd_Alias SHELLS= /bin/sh, /bin/ksh, /bin/bash, /bin/zsh, /bin/csh, /bin/tcsh, /bin/login, /bin/su
%admin ALL = (ALL) ALL, !SHELLS

显然,没有什么可以阻止管理员

cp /bin/bash /tmp/shell
sudo /tmp/shell

为了绕过这种安全性,但你仍然给予他们 root 权限,无论如何你都必须信任他们......

答案2

关于日志记录或权限,我没有任何建议给你,因为我不明白你为什么要这么做。要么你信任你的管理员并授予他们访问权限,要么你不信任他们 - 然后聘请新的管理员。

答案3

对于 root 访问权限,我经常喜欢采用 pauska 的方法。我经常sudo all为管理员设置,这样他们就可以sudo su通过它运行命令。 .bash_history仍在范围内,这样可以在将来出现问题时进行审查。

skinp 的解决方案更像是一种管理策略,正如其他人指出的那样,它不是一个安全的解决方案。如今,要求所有 root 命令都通过 sudo 运行是一种常见的策略。

根据您的要求,我经常会使用类似的东西rootsh来进行中央日志记录。过去,shell 存在功能问题,这使其无法始终保持理想状态。我喜欢您修补 bash 的解决方案。

向用户帐户提供 UID 0 绝对是一件麻烦事。系统很容易出现简单错误,而且更有可能破坏系统惯例。我在任何情况下都不鼓励这样做。

如果您的业务理由需要非 IT 或非管理人员拥有完全的根访问权限,那么授予他们 sudo 访问权限rootsh或从 sudo 登录是绝对必要的。

最终,任何拥有 root 权限的人都可能拥有一个容易受到攻击的媒介。审计跟踪确实是一种最佳实践,但实施过多的限制对安全性没有多大帮助,同时还会使管理员难以完成工作。

相关内容