如何使用Ansible playbook为SSH访问添加LDAP组

86次阅读
没有评论

问题描述

想要创建一个Ansible playbook,用于将LDAP组添加到主机的SSH访问中。他已经有了一个LDAP组,组名为superproduct1,组中包含一些用户:developer1, tester1, analitic1, project1。用户在Ansible文档中找到了group模块,但不知道如何使用它来添加LDAP组以实现SSH访问。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

你不需要编辑/etc/groups文件,因为LDAP组已经存在于LDAP数据库中。你只需要让SSH知道如何使用它,可以尝试在/etc/ssh/sshd_config文件中使用AllowGroups设置。
根据manpage的说明:”如果指定了AllowGroups,则只允许那些主组或附加组列表与其中一个模式匹配的用户登录。只有组名是有效的;不识别数字组ID。默认情况下,允许所有组的登录。”
以下是如何配置AllowGroups的步骤:
1. 使用文本编辑器打开/etc/ssh/sshd_config文件。
2. 找到AllowGroups行(如果不存在,请添加)。
3. 在AllowGroups行中添加superproduct1
4. 保存并关闭文件。
5. 重启SSH服务以使更改生效。
请注意,这种方法假设你的LDAP服务器已正确配置,并且可以通过PAM进行身份验证。如果你的LDAP账户没有posixAccount对象,你将无法登录到Ubuntu主机上。

方案2

使用自定义脚本或PAM来管理SSH访问LDAP组可能更加灵活和可靠。
另一种方法是使用自定义脚本或PAM来管理SSH访问LDAP组。这种方法可能更加灵活和可靠,但需要更多的配置和管理。
以下是一个示例脚本,可以在SSH配置中添加自定义脚本以实现LDAP组的访问:
1. 创建一个名为ldap_ssh_access.sh的脚本文件。
2. 在脚本中添加逻辑来检查用户是否属于superproduct1组。
3. 如果用户属于superproduct1组,则返回true,否则返回false
4. 在/etc/ssh/sshd_config文件中添加以下配置:

Match Group superproduct1
    ForceCommand /path/to/ldap_ssh_access.sh
  1. 保存并关闭文件。
  2. 重启SSH服务以使更改生效。
    请注意,这种方法需要你编写自定义脚本,并确保脚本的逻辑正确。你还需要确保脚本具有执行权限,并将脚本路径替换为实际的脚本路径。
    以上是两种常见的方法来实现SSH访问LDAP组的添加。你可以根据自己的需求选择适合你的方法。

正文完