使用 puppet 或 ldap 管理用户?

使用 puppet 或 ldap 管理用户?

多种的 答案这实际上表明应该使用 ldap 而不是 puppet 来管理实际用户。从扩展的角度来看,我倾向于同意这一观点。新员工的入职培训应该由支持团队来完成,而不是由系统管理员添加新的用户资源。

然而,管理 ssh 密钥和授权密钥(以及 sudo 访问和用户配置文件)似乎对于 puppet 来说是一项完美的工作。

管理每个用户的密钥和配置的标准方法是什么? Puppet 可以在这里增强 ldap 吗? 如果员工变得叛逆,我们需要从 1000 个不同的 authorized_keys 文件中撤销他们的密钥,会发生什么?

答案1

我不同意格雷格·沃森的观点。

创建帐户副本意味着您将遇到保持它们同步的问题。拥有单一的身份验证信息来源可以消除很多复杂情况,并且 LDAP 更容易集成到其他服务(网络、邮件等)中。

就 sudo 访问而言 - 如果您根据组而不是个人配置 sudoers,则可以通过 LDAP 轻松控制对设施的访问。它需要更多的前瞻性规划 - 但从长远来看更容易管理 - 您管理安全性政策不是数据文件。

使 ssh 密钥在其他机器上可用的最好方法是使用某种网络文件系统 - 它可能是 NF/Samba,但复制或共享文件系统提供相同的目标(具有不同的副作用)。

第一步应该始终是定义您的安全模型——允许本地配置会为破坏该模型提供巨大的空间。

答案2

事实上,我认为 Puppet 是比 LDAP 更好的解决方案,因为它没有 SPoF(登录是本地的,但集中管理)。

无论如何,对于您的“恶意用户”场景,您可以使用ssh_authorized_keyPuppet 资源及其ensure => absent密钥。然后使用 Mcollective/cron 来填充它。

参见文档:http://docs.puppetlabs.com/references/latest/type.html#sshauthorizedkey

困难在于让 Puppet 管理用户主目录中的文件(可能存在也可能不存在)。您可以通过在 SSH 配置中自定义 authorized_keys 文件位置(即/var/lib/ssh/authorized_keys/%u)来缓解此问题。

答案3

我很高兴:http://www.freeipa.org/page/Main_Page

它包含您需要的一切 - 用户、sudoers、ssh 密钥,甚至 selinux 配置。

相关内容