【问题标题】:OpanLdap password policiesOpenLdap 密码策略
【发布时间】:2013-02-18 16:12:57
【问题描述】:

我已经在 windows xp 上安装了 openldap 版本 2.4.23 并使用 apache DS 作为客户端。我可以在我为测试设置的客户端服务器上验证用户。

我的下一步是打开密码策略。这就是事情对我来说有点模糊的地方,我希望有人可以帮助我。

我还使用以下命令添加了密码策略

ldapadd -x -c -f -D "cn=Manager,dc=maxcrc,dc=com" -w 秘密

但在添加密码策略后,我如何使它们生效。

openldap 文档说密码策略模块应该使用默认策略的 DN 进行配置。

我在 slapd.conf 文件中添加了以下几行

# invokes password policies for this DIT only
overlay ppolicy
# Default ppolicy
ppolicy_default "cn=passwordDefault,ou=policies,dc=maxcrc,dc=com"

但不知何故它没有被加载,我已经在这方面花费了更多时间,但我没有得到正确的指南。

任何人都可以用通俗易懂的术语来阐明这一点吗?

提前致谢。

我的ldif文件如下。

dn: cn=passwordDefault,ou=policies,dc=localdomain,dc=com
objectClass: pwdPolicy
objectClass: person
objectClass: top
cn: passwordDefault
sn: passwordDefault
pwdAttribute: userPassword
pwdCheckQuality: 1
pwdMinAge: 1
pwdMaxAge: 90
pwdMinLength: 6
pwdInHistory: 4
pwdMaxFailure: 3
pwdFailureCountInterval: 0
pwdLockout: TRUE
pwdLockoutDuration: 0
pwdAllowUserChange: TRUE
pwdExpireWarning: 604800
pwdGraceAuthNLimit: 3
pwdMustChange: TRUE
pwdSafeModify: TRUE

添加此策略并重新启动服务器后,我尝试更改现有用户和新添加用户的密码。 服务器允许我将密码更改为长度小于 6 的字符串 而我在 ldif 中提到了 pwdMinLength: 6。

以及我多次尝试更改密码,但它允许我将密码更改为最近使用的密码,而 pwdInHistory: 4 in ldif.

【问题讨论】:

  • 您的ldapadd 命令看起来不正确,-f 采用文件名(通常是 LDIF 文件)。
  • 这也有助于向我们展示 LDIF 文件中的内容,以及您有哪些证据表明该政策无效。
  • @mr.spuratic : 我只是错过了这里的文件名,完整的 ldapadd 命令是 ldapadd -c -f passwordpolicy.ldif -D "cn=Manager,dc=maxcrc,dc=com" -x -w 秘密

标签: openldap ldap-query


【解决方案1】:

如果您使用 rootDN 执行更新,密码策略将不起作用。您必须使用现有的管理员帐户或用户自己的帐户。

【讨论】:

  • 我没明白“修改密码的扩展操作”是什么意思,请您详细说明一下。谢谢
【解决方案2】:

不清楚您在测试时如何设置密码,但我会检查您是否以正确的格式传递密码,这意味着服务器需要以明文形式接收密码。一些客户端会在将值发送到 OpenLDAP 服务器之前对该值进行哈希处理,在这种情况下,OpenLDAP 服务器将无法确定密码的长度。通信可以而且应该被加密,但不应该被预先散列。哈希可以由服务器处理:

pwdCheckQuality

如果值为 1 并且提供的密码是明文形式,则用户提供的函数(使用 pwdCheckModule 定义 - 如果已定义 - 将被调用以检查密码质量。如果此函数不可用,则密码将被接受(假设它通过了各种 pwdPolicy 属性定义的所有其他测试)。

参考:http://www.zytrax.com/books/ldap/ch6/ppolicy.html

【讨论】:

    【解决方案3】:

    rootdn 绕过密码策略,所以不要在你的 ldappasswd 命令。

    https://www.openldap.org/lists/openldap-technical/201102/msg00262.html

    如果使用 ldappasswd 设置密码并与 rootdn 绑定,您基本上可以输入任何密码(不是空的)。 这是一个有点棘手的情况,因为您也无法使用“passwd”命令为用户更改密码。在这种情况下,密码策略将生效。

    如果你知道rootdn密码,就可以绕过一切。

    【讨论】:

      猜你喜欢
      • 2011-08-17
      • 2015-01-14
      • 2014-01-18
      • 2020-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多