Re: Probleme mit LDAP-Authentifizierung
Markus Schulz schrieb:
Am Dienstag, 20. Juni 2006 15:07 schrieb Thomas Guenther:
Hallo,
[...]
Bin ich auf dem Sarge-System root und wechsle nach user2, geht
das sofort und ohne Probleme. Und auch ein Netzwerksniffen brachte
wohl, weil du die rootbinddn in der ldap.conf gesetzt hast +
ldap.secret.
Ja, exakt.
[...]
Wie sehen die üblichen verdächtigen denn aus?
/etc/ldap/ldap.conf
------------------ldap.conf-------------------
host <ldap-system ip>
base <dc=x,dc=y,dc=de>
ldap_version 3
binddn cn=nssldap,ou=dsa,dc=x,dc=y,dc=de
bindpw <pwd f. nssldap>
nss_base_passwd dc=x,dc=y,dc=de?sub
nss_base_shadow dc=x,dc=y,dc=de?sub
nss_base_group dc=x,dc=y,dc=de?one
ssl no
pam_password crypt
----------------------------------------------
/etc/libnss-ldap.conf
---------------libnss-ldap.conf---------------
host <ldap-system ip>
uri ldap://iit005.uni-duisburg.de/
base <dc=x,dc=y,dc=de>
ldap_version 3
binddn cn=nssldap,ou=dsa,dc=x,dc=y,dc=de
bindpw <pwd f. nssldap>
nss_base_passwd dc=x,dc=y,dc=de?sub
nss_base_shadow dc=x,dc=y,dc=de?sub
nss_base_group ou=Groups,dc=x,dc=y,dc=de?one
pam_filter objectclass=posixAccount
use_sasl off
----------------------------------------------
---------------------pam_ldap.conf---------------------
host <ldap-system ip>
base <dc=x,dc=y,dc=de>
ldap_version 3
rootbinddn cn=nssldap,ou=dsa,dc=x,dc=y,dc=de
scope sub
scope one
scope base
pam_filter objectclass=posixAccount
pam_password crypt
-------------------------------------------------------
---------------------nsswitch.conf---------------------
passwd: files ldap
group: files ldap
shadow: files ldap
hosts: files dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
#netgroup: nis
-------------------------------------------------------
/etc/pam.d/common-auth (oder wo auch immer du ldap eingetragen hast)
-------------------common-auth-------------------
auth sufficient pam_ldap.so
auth required pam_unix.so try_first_pass
-------------------------------------------------
-------------------common-account-------------------
account sufficient pam_ldap.so
account required pam_unix.so
----------------------------------------------------
-------------------common-password------------------
password sufficient pam_ldap.so
password required pam_unix.so
----------------------------------------------------
In jedem Fall den slapd auf LogLevel 256 setzen und anschauen was da
genau ankommt. Damit siehst du jedes Query auf die Ldap Datenbank.
Ist schon. Hier mal der Teil mit der Anmeldung vom CLIENT bis zum
Zeitpunkt, als das Passwort für den User eingegeben wurde und eine
erneute Passworteingabe erwartet wurde:
Jun 20 10:02:44 iit005 slapd[7759]: conn=24810 fd=38 ACCEPT from
IP=<client ip>:32915 (IP=0.0.0.0:389)
Jun 20 10:02:44 iit005 slapd[7778]: conn=24810 op=0 BIND
dn="cn=nssldap,ou=dsa,dc=x,dc=y,dc=de" method=128
Jun 20 10:02:44 iit005 slapd[7778]: conn=24810 op=0 BIND
dn="cn=nssldap,ou=dsa,dc=x,dc=y,dc=de" mech=SIMPLE ssf=0
Jun 20 10:02:44 iit005 slapd[7778]: conn=24810 op=0 RESULT tag=97 err=0
text=
Jun 20 10:02:44 iit005 slapd[7762]: conn=24810 op=1 SRCH
base="dc=x,dc=y,dc=de" scope=2 deref=0
filter="(&(objectClass=posixAccount)(\
uid=user1))"
Jun 20 10:02:44 iit005 slapd[7762]: conn=24810 op=1 SEARCH RESULT
tag=101 err=0 nentries=1 text=
Jun 20 10:02:44 iit005 slapd[7761]: conn=24810 op=2 SRCH
base="ou=Groups,dc=x,dc=y,dc=de" scope=1 deref=0
filter="(&(objectClass=posi\
xGroup)(|(memberUid=user1)(uniqueMember=uid=user1,ou=users,dc=x,dc=y,dc=de)))"
Jun 20 10:02:44 iit005 slapd[7761]: conn=24810 op=2 SRCH attr=gidNumber
Jun 20 10:02:44 iit005 slapd[7761]: <= bdb_equality_candidates:
(uniqueMember) index_param failed (18)
Jun 20 10:02:44 iit005 slapd[7761]: conn=24810 op=2 SEARCH RESULT
tag=101 err=0 nentries=1 text=
Jun 20 10:02:44 iit005 slapd[21337]: conn=24810 op=3 SRCH
base="ou=Groups,dc=x,dc=y,dc=de" scope=1 deref=0 filter="(&(objectClass=pos\
ixGroup)(uniqueMember=cn=group1,ou=groups,dc=x,dc=y,dc=de))"
Jun 20 10:02:44 iit005 slapd[21337]: conn=24810 op=3 SRCH attr=gidNumber
Jun 20 10:02:44 iit005 slapd[21337]: <= bdb_equality_candidates:
(uniqueMember) index_param failed (18)
Jun 20 10:02:44 iit005 slapd[21337]: conn=24810 op=3 SEARCH RESULT
tag=101 err=0 nentries=0 text=
Jun 20 10:02:44 iit005 slapd[7759]: conn=24811 fd=42 ACCEPT from
IP=<client ip>:32916 (IP=0.0.0.0:389)
Jun 20 10:02:44 iit005 slapd[7778]: conn=24811 op=0 BIND
dn="cn=nssldap,ou=dsa,dc=x,dc=y,dc=de" method=128
Jun 20 10:02:44 iit005 slapd[7778]: conn=24811 op=0 BIND
dn="cn=nssldap,ou=dsa,dc=x,dc=y,dc=de" mech=SIMPLE ssf=0
Jun 20 10:02:44 iit005 slapd[7778]: conn=24811 op=0 RESULT tag=97 err=0
text=
Jun 20 10:02:44 iit005 slapd[7762]: conn=24811 op=1 SRCH
base="dc=x,dc=y,dc=de" scope=0 deref=0 filter="(uid=user1)"
Jun 20 10:02:44 iit005 slapd[7762]: conn=24811 op=1 SEARCH RESULT
tag=101 err=0 nentries=0 text=
(hier wartet das System auf das Passwort, der folgende Abschnitt
zeigt die Reaktion nach der Passworteingabe)
Jun 20 10:03:16 iit005 slapd[21337]: conn=24812 op=4 SRCH
base="dc=x,dc=y,dc=de" scope=2 deref=0 filter="(&(objectClass=shadowAccount\
)(uid=user1))"
Jun 20 10:03:16 iit005 slapd[21337]: conn=24812 op=4 SRCH attr=uid
userPassword shadowLastChange shadowMax shadowMin shadowWarning sh\
adowInactive shadowExpire shadowFlag
Jun 20 10:03:16 iit005 slapd[21337]: conn=24812 op=4 SEARCH RESULT
tag=101 err=0 nentries=1 text=
Jun 20 10:03:17 iit005 slapd[7778]: conn=24813 op=2 BIND anonymous
mech=implicit ssf=0
Jun 20 10:03:17 iit005 slapd[7778]: conn=24813 op=2 BIND
dn="cn=nssldap,ou=dsa,dc=x,dc=y,dc=de" method=128
Jun 20 10:03:17 iit005 slapd[7778]: conn=24813 op=2 BIND
dn="cn=nssldap,ou=dsa,dc=x,dc=y,dc=de" mech=SIMPLE ssf=0
Jun 20 10:03:17 iit005 slapd[7778]: conn=24813 op=2 RESULT tag=97 err=0
text=
Jun 20 10:03:17 iit005 slapd[7762]: conn=24813 op=3 SRCH
base="dc=x,dc=y,dc=de" scope=0 deref=0 filter="(uid=user1)"
Jun 20 10:03:17 iit005 slapd[7762]: conn=24813 op=3 SEARCH RESULT
tag=101 err=0 nentries=0 text=
ldapsearch mit -D <user dsn> auch probieren. Bekommst du damit dein
Passwort zu gesicht? Liefert getent korrekte Informationen?
ldapsearch mit nssldap geht, Passwörter werden verschlüsselt angezeigt.
Getent liefert korrekte Einträge.
Wir brauchen in jedem Fall mehr Informationen, sonst stochern wir hier
nur hilflos im Dunkeln 'rum. Insbesondere am slapd Log sieht man
eigentlich recht schnell woran es hakt, auch wenn dort recht viel
geloggt wird und das ganze anfangs etwas unübersichtlich wirkt.
Danke schonmal!
Thomas
Reply to: