ppolicy 与 pam_ldap - 从 Ubuntu 登录时 pwdReset 无效

ppolicy 与 pam_ldap - 从 Ubuntu 登录时 pwdReset 无效

我们在 ldap 服务器上安装了 ppolicy overlay。密码策略可以在 X 次错误密码尝试后正确锁定用户,但我们无法强制用户更改密码。

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

Ldap 服务器和客户端根据 Ubuntu 操作指南进行设置:https://help.ubuntu.com/12.10/serverguide/openldap-server.html

客户端机器使用 pam_ldap

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

但是 pwdReset 属性被忽略。

根据我在互联网上看到的内容,pam_ldap 应该遵守 ppolicy 并要求用户在设置 pwdReset 时更改密码。但这对我们来说不起作用。

如何让 ubuntu 客户端尊重 pwdReset 属性?

也许我可以打开 pam_ldap 的调试日志?但我不知道该怎么做...

答案1

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

slapo-ppolicy 手册页了解更多信息。

答案2

我也遇到了这个问题——我的特殊问题是,虽然一些第三方应用程序(在我们的例子中是 Okta)会查找pwdReset,但pam_ldap插件却不会。

看完pam_ldap此处托管的源代码后:https://github.com/wfhu/pam_ldap-- 我得出的结论是pam_ldap完全忽略了pwdResetOpenLDAP 的一部分ppolicy.schema。您可以在此处找到 OpenLDAP 使用的架构:http://www.zytrax.com/books/ldap/ape/ppolicy.html

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

什么正常工作是objectClassshadow*的一部分的属性shadowAccount

[步骤适用于 Ubuntu]

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

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

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

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

设置完成后,PAM 将正确地强制用户在登录时更改密码。

也可以看看: http://www.openldap.org/lists/openldap-technical/201210/msg00044.html

相关内容