ppolicy与pam_ldap – pwdReset从Ubuntulogin时没有效果

我们在我们的ldap服务器上安装ppolicy覆盖。 密码策略在X密码尝试错误后locking用户正常工作,但是我们无法强制用户更改密码。

当我们为用户设置pwdReset = TRUE属性时 – 用户可以照常从Ubuntu客户端机器login。

Ldap服务器和客户端是根据Ubuntu的设置: https : //help.ubuntu.com/12.10/serverguide/openldap-server.html

客户机使用pam_ldap

configuration文件/etc/ldap.conf有“pam_lookup_policy yes”行

但pwdReset属性被忽略。

根据我在网上阅读的内容,pam_ldap应该遵循ppolicy并且要求用户在pwdReset被设置时改变他的密码。 但它不适合我们..

如何使ubuntu客户端荣誉pwdReset属性?

也许我可以打开pam_ldap的debugging日志logging? 但我找不到如何去做

您必须确保在用户的有效密码策略pwdMustChange设置为TRUE

有关更多信息,请参见slapo-ppolicy联机帮助页 。

我遇到了这个 – 我的特别问题是,虽然一些第三方应用程序(在我们的例子Okta)寻找pwdReset ,但是pam_ldap插件没有。

在看过pam_ldap的源代码之后,请看https://github.com/wfhu/pam_ldap – 我得出的结论是, pam_ldap完全忽略了pwdReset ,它是OpenLDAP的ppolicy.schema一部分。 您可以在这里findOpenLDAP使用的模式: http : //www.zytrax.com/books/ldap/ape/ppolicy.html

注意:我认为问题在于OpenLDAP策略属性与使用的LDAP服务器实现(Netscape?/ UniversityOfMichigan?/ Sun?)的原始模式不同,这是pam_ldap期望的。

什么工作正确的是shadowAccount objectClass的一部分的shadow*属性。

[步骤是为Ubuntu]

  1. 通过检查pwdPolicySubentry确保您的用户在LDAP中设置了密码策略:

     ldapsearch (...) -b dc=example,dc=org "(uid=testinguser)" pwdPolicySubentry 
  2. 检查你的用户的shadow*信息

     slapcat -a uid=testinguser 
  3. shadowLastChange设置为0以允许pam_ldap识别到期的密码

    这可以通过检查pwdReset并更新shadowLastChange的脚本完成。

当这是设置PAM将正确强制用户在login时更改密码。

另见: http : //www.openldap.org/lists/openldap-technical/201210/msg00044.html