[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: Ppolicy does not seem to work



Hello,

Clément OUDOT schrieb:
> 2011/2/13 Jan Kohnert <nospam001-lists@yyy.zzz.org>:
> > I have a problem with ppolicy and got stuck finding a solution. I
> > configured slapd using the information from [1] trying to be able to
> > lock users. But anyway, the lock seems to be ignored: As soon as one
> > tries to log in, the pwdLockedTime agument es removed from the entry and
> > I seem to be too blind or dumb to see the reason why.

[config stuff]

> can you tell us the OpenLDAP version you ar running? For example,
> 2.4.11 on Debian is known to have bugs on the password policy overlay.

Running Gentoo here:
b079 /etc/openldap # eix net-nds/openldap
[I] net-nds/openldap
     Available versions:  2.3.43-r1 2.4.19-r1 ~2.4.21 2.4.23 {(+)berkdb crypt 
-cxx debug experimental gdbm gnutls icu iodbc ipv6 kerberos minimal odbc 
overlays perl samba sasl selinux slp smbkrb5passwd ssl syslog tcpd}                                                       
     Installed versions:  2.4.23(06:58:54 18.11.2010)(berkdb crypt ipv6 
overlays perl sasl ssl tcpd -cxx -debug -experimental -gnutls -icu -iodbc -
kerberos -minimal -odbc -samba -selinux -slp -smbkrb5passwd -syslog)                                                          
     Homepage:            http://www.OpenLDAP.org/
     Description:         LDAP suite of application and development tools

b079 /etc/openldap #
 
> Then you should try to lock your account by failing authentication
> (use a bad password several times), you should see in your entry
> operational attributes pwdFailureTime and pwdAccountLockedTime.

This one works!

b079 /etc/openldap # ldapwhoami -x -e ppolicy -D "uid=jan, ou=xxx, dc=yyy, 
dc=zzz, dc=org" -W 
Enter LDAP Password: 
ldap_bind: Invalid credentials (49)
b079 /etc/openldap # ldapwhoami -x -e ppolicy -D "uid=jan, ou=xxx, dc=yyy, 
dc=zzz, dc=org" -W 
Enter LDAP Password: 
ldap_bind: Invalid credentials (49)
b079 /etc/openldap # ldapwhoami -x -e ppolicy -D "uid=jan, ou=xxx, dc=yyy, 
dc=zzz, dc=org" -W 
Enter LDAP Password: 
ldap_bind: Invalid credentials (49)
b079 /etc/openldap # ldapwhoami -x -e ppolicy -D "uid=jan, ou=xxx, dc=yyy, 
dc=zzz, dc=org" -W 
Enter LDAP Password: 
ldap_bind: Invalid credentials (49)
b079 /etc/openldap # ldapwhoami -x -e ppolicy -D "uid=jan, ou=xxx, dc=yyy, 
dc=zzz, dc=org" -W 
Enter LDAP Password: 
ldap_bind: Invalid credentials (49)
b079 /etc/openldap # ldapwhoami -x -e ppolicy -D "uid=jan, ou=xxx, dc=yyy, 
dc=zzz, dc=org" -W 
Enter LDAP Password: 
ldap_bind: Invalid credentials (49)
b079 /etc/openldap # ldapwhoami -x -e ppolicy -D "uid=jan, ou=xxx, dc=yyy, 
dc=zzz, dc=org" -W 
Enter LDAP Password: 
ldap_bind: Invalid credentials (49)
b079 /etc/openldap # ldapwhoami -x -e ppolicy -D "uid=jan, ou=xxx, dc=yyy, 
dc=zzz, dc=org" -W 
Enter LDAP Password: 
ldap_bind: Invalid credentials (49)
b079 /etc/openldap # ldapsearch -x -e ppolicy -b "ou=xxx, dc=yyy, dc=zzz, 
dc=org" "(uid=jan)" pwdFailureTime
# extended LDIF
#
# LDAPv3
# base <ou=xxx, dc=yyy, dc=zzz, dc=org> with scope subtree
# filter: (uid=jan)
# requesting: pwdFailureTime 
#

# jan, xxx, yyy.zzz.org
dn: uid=jan,ou=xxx,dc=yyy,dc=zzz,dc=org
pwdFailureTime: 20110214195244Z
pwdFailureTime: 20110214195246Z
pwdFailureTime: 20110214195247Z
pwdFailureTime: 20110214195249Z
pwdFailureTime: 20110214195250Z

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1
b079 /etc/openldap # ldapsearch -x -e ppolicy -b "ou=xxx, dc=yyy, dc=zzz, 
dc=org" "(uid=jan)" pwdAccountLockedTime
# extended LDIF
#
# LDAPv3
# base <ou=xxx, dc=yyy, dc=zzz, dc=org> with scope subtree
# filter: (uid=jan)
# requesting: pwdAccountLockedTime 
#

# jan, xxx, yyy.zzz.org
dn: uid=jan,ou=xxx,dc=yyy,dc=zzz,dc=org
pwdAccountLockedTime: 20110214195250Z

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1
b079 /etc/openldap # ldapwhoami -x -e ppolicy -D "uid=jan, ou=xxx, dc=yyy, 
dc=zzz, dc=org" -W 
Enter LDAP Password: 
ldap_bind: Invalid credentials (49)
b079 /etc/openldap # ldapsearch -x -e ppolicy -b "ou=xxx, dc=yyy, dc=zzz, 
dc=org" "(uid=jan)" pwdFailureTime
# extended LDIF
#
# LDAPv3
# base <ou=xxx, dc=yyy, dc=zzz, dc=org> with scope subtree
# filter: (uid=jan)
# requesting: pwdFailureTime 
#

# jan, xxx, yyy.zzz.org
dn: uid=jan,ou=xxx,dc=yyy,dc=zzz,dc=org
pwdFailureTime: 20110214195244Z
pwdFailureTime: 20110214195246Z
pwdFailureTime: 20110214195247Z
pwdFailureTime: 20110214195249Z
pwdFailureTime: 20110214195250Z

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1
b079 /etc/openldap #

> Try also to use -e ppolicy in ldapsearch or ldapwhoami commands, to
> get messages from paswword policy control.

That one does not seem to generate more precise error messages:

b079 /etc/openldap # ldapsearch -x -s base -e ppolicy -b "cn=default, 
ou=policies, dc=yyy, dc=zzz, dc=org"
# extended LDIF
#
# LDAPv3
# base <cn=default, ou=policies, dc=yyy, dc=zzz, dc=org> with scope baseObject
# filter: (objectclass=*)
# requesting: ALL
#

# default, policies, yyy.zzz.org
dn: cn=default,ou=policies,dc=yyy,dc=zzz,dc=org
cn: default
sn: dummy value
objectClass: pwdPolicy
objectClass: person
objectClass: top
pwdAttribute: userPassword
pwdMinAge: 0
pwdMaxAge: 0
pwdInHistory: 0
pwdCheckQuality: 0
pwdLockout: TRUE
pwdLockoutDuration: 900
pwdFailureCountInterval: 1800
pwdMustChange: FALSE
pwdAllowUserChange: TRUE
pwdSafeModify: TRUE
pwdExpireWarning: 604800
pwdMaxFailure: 5
pwdGraceAuthNLimit: 0
pwdMinLength: 8

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1
b079 /etc/openldap # ldapmodify -x -e ppolicy -D "cn=admin, dc=yyy, dc=zzz, 
dc=org" -W -f ldif/locked_users.ldif 
Enter LDAP Password: 
modifying entry "uid=jan,ou=xxx,dc=yyy,dc=zzz,dc=org"

b079 /etc/openldap # slapcat | grep -B 13 Locked | grep "uid: jan"uid: jan
b079 /etc/openldap # ldapwhoami -x -e ppolicy -D "uid=jan, ou=xxx, dc=yyy, 
dc=zzz, dc=org" -W 
Enter LDAP Password: 
dn:uid=jan,ou=xxx,dc=yyy,dc=zzz,dc=org
b079 /etc/openldap #

-- 
MfG Jan

Attachment: signature.asc
Description: This is a digitally signed message part.