多pipe理员根权限的最佳实践

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

在过去的公司,我的解决scheme是只允许RSA密钥,并为每个用户提供自己的密钥。

为了授予root权限,我把UID设置为0.这个否定需要设置sudo或者su似乎sudo su – 或者sudo / bin / bash。 这也让我做下面的事情。

我修补Bashlogginggetlogin()的返回值和命令到syslog。 然后,我logging了所有在服务器上运行的日志以及与用户绑定的用户名。 如果我使用su或者sudo,我只会得到root用户。

我现在正处于一个新的公司,并且想知道是否有人有他们使用和喜欢的政策。

我们使用sudoconfiguration来允许组中的命令。 为了防止sudo -i或sudo bash,我设置了一个别名,包括我不允许使用的所有已知的shell! 在这个团队可以做什么的定义。 这样,所有使用sudo运行的命令都会logging到syslog中。 我已经安装和允许的唯一的shell是rootsh ,它logging了所有的事情。

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

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

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

为了绕过这个安全,但是你仍然给他们根权利,你必须信任他们。

我没有任何build议给你提供日志或权限,因为我不明白你为什么要这样做。 要么你信任你的pipe理员,并给他们访问权限,或者你没有 – 并获得新的pipe理员。

有了root权限,我经常喜欢采用pauska的方法。 我会经常为pipe理员设置sudo all ,这使得他们可以sudo su以及通过它运行命令。 .bash_history仍然在范围之内,允许在未来出现问题时进行审查。

正如其他人所指出的,skinp的解决scheme比其他任何方面都更像一个pipe理政策,这不是一个安全的解决scheme。 要求通过sudo运行所有root命令是最近的一项常见策略。

根据您的要求,我会经常使用像rootsh这样的中央日志logging。 在过去,shell有function性问题,这阻止了它始终是理想的。 我喜欢你的解决scheme打补丁。

给用户帐户UID 0是绝对凌乱的。 该系统面临简单的错误,更有可能压制系统约定。 在任何情况下,我都会劝阻。

如果您有商业上的理由,要求非IT或非pipe理员工拥有完全的root访问权限,让他们访问rootsh或从sudologin是绝对必要的。

最终,任何获得root权限的人都可能拥有一个简单的攻击向量。 审计线索确实是一个最佳实践,但实施过多的限制对安全性影响不大,同时使pipe理员难以完成工作。