在SLES 10.4-> 11.4升级后,PAM + LDAP不再工作

在通过推荐方法(从DVD引导)升级到SLES 11.4后,通过LDAP进行的身份validation已停止运行。 不幸的是,对于SLES,我不能给你任何有意义的日志输出,因为PAM和ldap客户端都不会给你任何提示,而pam_debug在SLES上不可用。

我们怀疑归结为需要userfilter inetOrgPerson。 当然,我们在/etc/ldap.conf中设置了这个filter。 它在10.4工作得很好,但现在你只能得到“无效的密码”。

使用tcpdump我可以确定,与10.4不同,ldap客户端现在首先使用筛选器inetOrgPerson(它工作并返回结果)查询服务器,但随后(!)使用filterposixAccount查询服务器。 现在,这最后一个不起作用,因为LDAP服务器(IBM Tivoli Directory Server)不使用此属性。 由于现在使用不正确的用户filter进行密码查询 – 没有密码对LDAP进行检查(从我可以告诉),因此login失败。

有没有办法强制LDAP客户端坚持使用configuration的userfilter(inetOrgPerson)而不是切换到(硬编码?)不正确的查询有关密码和shell? 事情是,我们不使用密码通过sshlogin系统,所以我们只需要这个PAM + LDAP就可以工作,所以应用程序可以再次检查用户密码(应用程序没有自己的LDAP支持)。 因此,我们不需要LDAP中的用户shell和任何其他通常分配给posixAccount的条目。

据我所知 – 修改生产LDAP服务器不是一个选项。

FWIWtesting这个方法的方法是将ssh放入方框(带有pubkey),然后尝试将su取入我们自己的用户以提供密码。 / var / log / messages只会说“失败su …”而没有任何进一步的细节