linux – 如何使用PAM检查某些用户的LDAP密码,但始终使用本地文件中的UID / GID?

前端之家收集整理的这篇文章主要介绍了linux – 如何使用PAM检查某些用户的LDAP密码,但始终使用本地文件中的UID / GID?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
对于/ etc / passwd中我的用户的一部分,我想配置PAM(在 Linux上)对LDAP服务器进行密码检查部分登录,忽略这些用户实际上在/ etc /中被列为禁用passwd文件.特别是,/ etc / passwd和/ etc / group应该在所有情况下都用于UID和GID,这样就不需要将uidnumber和gidnumber等属性添加到目录(这里是Active Directory),这与通常在文档如 LDAP Implementation HOWTO.

这是否可行(没有自定义PAM模块开发)?向LDAP目录添加属性是不可行的.我不是Active Directory域管理员,升级到该级别的参与超出了本项目的范围.系统在大多数Windows服务器的环境中运行;如果指定的Windows用户可以在相关系统上使用他们的AD密码,那将是很好的.

根据用户的不同,应该通过UNIX auth或LDAP auth检查用户,但不能同时检查两者.我可能不会向Active Directory中的用户添加属性,但可能会将它们添加到安全组(实际上还希望进一步要求LDAP用户位于特定的LDAP安全组中).

解决方法

感谢您更新您的问题,该建议通常采取错误的方式.

您理解他们的要求:

>所有用户的UID / GID查找必须针对本地文件运行.
>特定用户的身份验证必须首先尝试LDAP(Active Directory).

简短的版本是肯定的,这是可能的,但它需要实际了解这些子系统如何工作而不依赖于在线HOWTO.我将把你作为入门书的现有答案推荐给你. https://serverfault.com/a/538503/152073

NSS是执行UID和GID查找的系统.如果不修改/etc/nsswitch.conf并告诉它使用ldap或sssd,则系统调用将依赖于本地文件.用于LDAP的大多数PAM插件与LDAP共享配置文件和NSS插件,但如果NSS没有使用NSS插件则无关紧要.

您只对特定用户执行此操作的要求比较棘手.配置PAM尝试pam_ldap.so(或pam_krb5.so,或者pam_winbind.so …取决于你使用的)取决于auth,在auth所需的pam_unix.so之前.足够的意思是“足够好,停在这里”.必需的意思是“如果我们到目前为止这个测试失败了,那么认证失败”.

这是最简单的方法,但存在问题:

>如果有人经常使用与其AD密码不匹配的本地密码进行身份验证(即,他们没有像其他系统那样成功地对AD进行身份验证),则会导致AD密码锁定.
>如果您不希望某些用户考虑使用有效的AD密码,这也不适用于您的要求.

如果您确实真的只需要针对特定​​用户列表对LDAP进行身份验证,请告诉我们.这绝对是可能的,但它会增加PAM配置的复杂性,而且我已经向你提供了相当多的信息.

根据需要扩展答案:

我建议严格控制谁对AD进行身份验证是使用pam_access.so.为此,AD和Unix PAM模块必须相邻,并且按此顺序.将以下行放在它们前面:

auth    [success=ignore default=1] pam_access.so accessfile=/etc/security/somefile.conf noaudit

success = ignore表示“如果此测试成功,则忽略此行并继续正常”. default = 1表示“在所有其他情况下,跳过下一行”.您需要创建somefile.conf并定义允许使用AD身份验证的用户列表.有关更多详细信息,请查看access.conf的联机帮助页.您将定义此文件中所有用户的列表,或创建本地组并测试成员资格.在所有情况下,第三个字段应为ALL. (即:无论如何:全部)

您的可选要求(使用AD安全组控制它)可以通过以下两种方式之一实现:

>如果您的PAM模块允许您指定将导致基于组成员身份跳过身份验证检查的LDAP查询,请使用该查询.如果密码成功,这与通过帐户拒绝用户不同!
>妥协GID查找命中活动目录.这意味着您将在/etc/nsswitch.conf中的ldap指向passwd查找,但是您可以将ldap行添加到group.必须配置安全组对象,以便通过应用适当的objectClass(即posixGroup)或配置NSS插件将其识别为一个来识别它为Unix组.除非你有强大的LDAP背景,否则你可能只想传递这个.

成功将事物配置到getent组显示AD组的位置后,您可以根据该组的成员身份修改访问文件以使其成功.

猜你在找的Linux相关文章