I have installed and configured the ppolicy overlay software on a Red Hat V5.4 
server
along with the openldap server software and the following components:

openldap-servers-2.3.43-3.el5
python-ldap-2.2.0-2.1
openldap-devel-2.3.43-3.el5
checkpassword-ldap-0.01-1.2.el5.rf
mozldap-6.0.5-1.el5
openldap-2.3.43-3.el5
openldap-debuginfo-2.3.43-3.el5
openldap-servers-overlays-2.3.43-3.el5
nss_ldap-253-22.el5_4
openldap-clients-2.3.43-3.el5

PROBLEM:

I have notice that when an ldap users' password expires, and pwdGraceAuthNLimit 
is set to
a non-zero value...in my case it is set to 1 for testing purposes,  the user is 
allowed
to login one time.   The next login forces a password change.

On the first login, allowed via pwdGraceAuthNLimit, there is no announcement 
sent to the
user telling them that the password has expired.  Nor that they will have to 
change their
password on the next login.     I have to wonder if there is also a missing 
announcement that
might tell the user how many more logins they are permitted given the value of 
pwdGraceAuthNLimit

 It was suggested that the problem may be in the pam configuration.

I am using the following /etc/pam.d/system-auth file that is autogenerated by 
authconfig:

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 500 quiet
auth        sufficient    pam_ldap.so use_first_pass
auth        required      pam_deny.so

account     required      pam_unix.so broken_shadow
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     [default=bad success=ok user_unknown=ignore] pam_ldap.so
account     required      pam_permit.so

password    requisite     pam_cracklib.so try_first_pass retry=3
password    sufficient    pam_unix.so md5 shadow nis nullok try_first_pass 
use_authtok
password    sufficient    pam_ldap.so use_authtok
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
session     optional      pam_mkhomedir.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet 
use_uid
session     required      pam_unix.so
session     optional      pam_ldap.so


I am testing by logging into the client with ssh.   I also have many of the 
pwd* values
set fairly low for quick testing.   This is the default policy in use:

dn: cn=Standard,ou=Policies,dc=mydomain,dc=com
objectClass: top
objectClass: device
objectClass: pwdPolicy
cn: Standard
pwdAttribute: userPassword
pwdLockoutDuration: 15
pwdInHistory: 6
pwdCheckQuality: 0
pwdMinLength: 5
pwdAllowUserChange: TRUE
pwdMustChange: TRUE
pwdMaxFailure: 3
pwdFailureCountInterval: 120
pwdSafeModify: FALSE
pwdLockout: TRUE
pwdReset: TRUE
structuralObjectClass: device
entryUUID: 421d8558-1a33-102f-8b9e-a5541f2aaf30
creatorsName: cn=Manager,dc=mydomain,dc=com
createTimestamp: 20100702143843Z
pwdMinAge: 0
pwdMaxAge: 300
pwdGraceAuthNLimit: 1
pwdExpireWarning: 86400
entryCSN: 20100702154010Z#000000#00#000000
modifiersName: cn=Manager,dc=mydomain,dc=com
modifyTimestamp: 20100702154010Z

This is the test users profile:

dn: uid=ldap1,dc=mydomain,dc=com
uid: ldap1
cn: ldap1
objectClass: account
objectClass: posixAccount
objectClass: top
uidNumber: 10001
gidNumber: 150
homeDirectory: /home/ldap1
loginShell: /bin/csh
gecos: ldap test user
pwdPolicySubentry: cn=Standard,ou=Policies,dc=mydomain,dc=com
structuralObjectClass: account
entryUUID: 334312be-1a33-102f-8a83-a5541f2aaf30
creatorsName: cn=Manager,dc=mydomain,dc=com
createTimestamp: 20100702143818Z
pwdHistory: 20100702151010Z#1.3.6.1.4.1.1466.115.121.1.40#38#{SSHA}BIxGPXPqBY+
 2yK6pY2i+6l7UbE/gaVhY
pwdHistory: 20100702154253Z#1.3.6.1.4.1.1466.115.121.1.40#38#{SSHA}q4inOFGO+0N
 c6T0q6FYiiMrPCTTUqQdr
pwdHistory: 20100702183229Z#1.3.6.1.4.1.1466.115.121.1.40#38#{SSHA}3T0Cna8AGIg
 X69V7zsDxGiTx/q0ceBnc
userPassword:: e1NTSEF9WkZ0ekJrUWVOQVJrMDhFbDJXd0VNaU1maWlGVURaT28=
pwdChangedTime: 20100702183229Z
pwdGraceUseTime: 20100702184519Z
entryCSN: 20100702184519Z#000000#00#000000
modifiersName: cn=Manager,dc=mydomain,dc=com
modifyTimestamp: 20100702184519Z


I have examined various log files and enabled debugging in system-auth (now 
removed to
show the standard autogenerated content) for any clues.  I have examined various
pam modules and library files with strings to see if I could get an idea as to 
which
module may be at fault.

I have to admit I am no pam expert and given the number of combinations and 
variations
possible in the system-auth file alone, I don't feel comfortable modifying this 
file
to any great extent.

I have omitted the slapd.conf and client ldap.conf files assuming that they are 
not
at fault and don't have any obvious omissions which could cause a warning 
messages
to be suppressed during login, but can supply them if required.

If the default system-auth file generated by the authconfig utility defeats a 
feature
of the ldap or other system modules, we need to report this to Red Hat and have 
the
problem corrected.

Any help greatly appreciated.

Al Licause


Reply via email to