我们有一个由 60 多台主机(solaris 和 linux)组成的设置。我们想开发/安装一个工具来帮助我们进行密码重置、帐户创建/删除和其他常见的用户帐户管理任务。
我们已经将 webmin、puppet 和 AD 集成视为潜在的解决方案。但要么它们太昂贵,有太多漏洞(漏洞),要么我们的架构不允许这样的部署。所以我们还在寻找。
我们的要求是 - 1. 免费且最好是 oss。2. 不需要网页界面。可以是一个简单的库/api,我们可以用它来编写用户管理工具的脚本。3. 适用于 linux 和 solaris 主机。
您是否希望为所有机器访问的信息建立一个集中的数据存储,或者您希望在每台机器上本地(并且可能独立地)配置它?
如果是前者,您可能想要调查 LDAP 或 Active Directory 集成;这将确保在中央目录中更改的密码会立即反映在与其连接的所有机器上。
如果是后者,那么像puppet或cfengine这样的东西将是你最好的选择。特别是 cfengine 几乎可以在任何地方运行(肯定在 Linux 和 Solaris 主机上),并且可以让您轻松地创建和管理用户。这是熟悉 cfengine 的快速入门指南。
此外,在提问时说明你的约束条件将有助于你获得更具建设性的答案。您的架构如何阻止使用哪些潜在的解决方案?如果你列出你已经尝试过的方法以及为什么它不起作用,那么人们就会知道避免引导你走上毫无结果的道路,或者也许能够帮助你解决你遇到的问题。
你基本上有两个选择:
1 可以通过使用Puppet、Chef、CFEngine等工具来完成。
这些工具允许您创建应用于所有节点的配置,但是使用这些工具来管理用户的缺点是您无法集中设置密码(每个节点都有自己的用户,有自己的密码和自己的有效期),而且您不能轻易更改用户组 - 您可以添加到组但不一定通过配置删除组。
2 通常通过创建 LDAP 基础结构(可选择使用 Kerberos)来实现。
集中式身份验证意味着用户在任何地方都拥有相同的密码,并且可以轻松更改组。
您可以重新使用现有基础设施(例如 Active Directory)或设置新的 LDAP 基础设施。一个值得考虑的系统是FreeIPA。这集成了 LDAP、Kerberos 和可选的 DNS。对于 Linux 客户端,它通过脚本提供简单的设置,而对于 Solaris 客户端,您只需将它们设置为 LDAP(以及可选的 Kerberos)客户端。FreeIPA 实施策略,因此您可以设置密码/帐户到期时间和密码复杂性。
FreeIPA 还可以提供与 Active Directory 的单向或双向同步。