我们是一个相对较小的商店(就系统管理员数量而言),拥有 RHEL、Solaris、Windows 2003 和 Windows 2008 服务器;总共约 200 台服务器。
对于我们的管理员帐户(root
在 Linux 和admnistrator
Windows 中),我们有一个取决于数据中心位置和服务器的其他几个记录属性的密码方案。
在 Linux 上,我们目前的做法是创建一个共享的非特权帐户,我们可以在其中su
。root
在基于 Windows 的系统上,我们创建一个具有管理员权限的附加帐户。这两个帐户共享相同的密码。
事实证明,这种做法非常低效。当有人离开我们的商店时,我们必须:
- 更改管理员帐户的密码方案
- 为每个服务器生成新的管理员密码
- 想出一个新的非管理员帐户密码
- 接触每台服务器并更改密码
我想知道是否有人在类似的环境中可以建议一种更合理的方式来管理这些凭据。一些相关信息:
- 虽然我们的大多数服务器都是 AD 域的一部分,但并非所有服务器都是。
- 我们使用 Puppet 管理所有 Linux 服务器(密钥认证是我想到的一个选项,但它只能解决上面的#3 个问题)。
- 我们使用 Cobbler 提供 Linux 服务器。
- 我们大约有 10% 的硬件专用于 VMWare。在这些情况下,我们使用 VMWare 模板来构建服务器。
任何想法或建议都将不胜感激。这个问题已经困扰了我一段时间,我终于想解决它了。
答案1
我的几点建议是:
连接 Windows AD 的服务器可以使用组策略首选项 (GPP) 或计算机启动脚本通过组策略设置本地管理员密码。请参阅http://social.technet.microsoft.com/Forums/en-US/winserverGP/thread/b1e94909-bb0b-4e10-83a0-cd7812dfe073/
除非必要,否则限制在 Windows 服务器上创建本地帐户。尽可能使用 AD 帐户。
使用 Linux 计算机的 LDAP 向 AD 验证管理员帐户。这在一定程度上简化了帐户管理。当管理员在一个地方禁用并且没有访问权限时,您可以随意清理 Linux 端。
在 Linux 上对特定管理员帐户使用 /etc/sudoers 文件,那么管理员就不需要 root 密码了。这在您的实例中可能很有用,因为这样他们就很少需要 root 密码,因此可以将其锁定。更新
将 root 和本地管理员密码保存在密码保险箱中,而不是一般知识中。一些密码保险箱具有委托和日志记录功能,因此如果该人从未访问过密码,您甚至可能不需要重置密码。
自动重置 root 和 admin 帐户的密码。Linux 和 Windows 都可以编写脚本来执行此操作,因此可以节省您的时间,而不会造成太大的负担。
希望有所帮助。
答案2
你可以尝试看看免费IPA为您工作。
您可以从中央位置管理用户对主机的访问。根据其他人的建议,您可以查看 sudo 是否适合您的 root 级别访问。Freeipa 在 LDAP 中支持 sudoers,因此您不必在每台服务器上或通过 puppet 等进行维护。
Freeipa 支持 Linux、Solaris 和 Windows 客户端。您可能会失去某些 AD 功能,而且我不确定 Windows 客户端还会有哪些其他限制。
它具有复制功能,因此您可以避免 SPOF。后端是 LDAP,因此您可以重复使用人们用于 LDAP 的许多工具,例如备份脚本。
它支持基于主机的访问控制,因此您可以说“用户 X 只能登录到 Y 服务器”。
它还提供AD 同步。我不是 Windows 用户,所以我不知道那是什么意思。
答案3
不要使用标准管理员帐户。在 Windows 方面,为每个需要管理员访问权限的用户创建一个用户帐户和一个管理员帐户。您可以使用任何工具同步到 UNIX。
如果有人离开,那么您只需删除他们的用户和管理员帐户。
为了保护标准管理员帐户,请为其设置一个非常长且复杂的密码,然后确保每个人只拥有一半。如果他们需要使用整个帐户,那么他们需要去找拥有另一半的人。
这是我能想到的最安全的方式。