PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LDAP-Anmeldung geht nicht



magic_halli
30.11.06, 08:26
Hi,

ich habe auf einem Suse10.1-Rechner einen LDAP-Server (und-Client) eingerichtet.
Die BaseDN hab ich per ldif-Datei erstellt, die Gruppen und User im YAST. Als Backend benutze ich phpldapadmin. Dort kann ich mich auch mit jedem erstellten LDAP-User anmelden.
Mit 'getent passwd' bzw. 'getent group' werden mir auch meine LDAP-User und -Gruppen mit aufgelistet.
Ein 'ldapsearch -x' liefert als Ausgabe meine gesamte Struktur vom LDAP.
Soweit sollte es erstmal ok sein?!

Nur kann ich mich bei Systemstart nicht mit einem LDAP-User am Rechner anmelden!!! Ich weiß nicht, was ich noch tun und machen kann! :(

Hier mal die wichtigen Dateien:
slapd.conf


include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/samba3.schema

allow bind_v2
#prüft, ob gültige Schemadateien vorhanden sind
schemacheck on
#Prozessfile- und Argumentfile - Pfade
pidfile /var/run/slapd/slapd.pid
argsfile /var/run/slapd/slapd.args
# Load dynamic backend modules:
modulepath /usr/lib/openldap/modules

access to attrs=userPassword
by self write
by anonymous auth
by dn="uid=admin,dc=firma,dc=local" write
access to *
by self write
by * read
by anonymous auth
################################################## #####################
# BDB database definitions
################################################## #####################
database bdb
suffix "dc=firma,dc=local"
checkpoint 1024 5
cachesize 10000
rootdn "cn=Manager,dc=firma,dc=local"
rootpw {SSHA}yggzbKjn+/WuFRcebG3fhW1VBHc48jVc

directory /var/lib/ldap
# Indices to maintain
index objectClass,uid eq


ldap.conf


host 127.0.0.1
URI ldap://127.0.0.1:389/
base dc=firma,dc=local
ldap_version 3
bind_policy soft
port 389
pam_filter objectclass=posixAccount
pam_login_attribute uid
pam_password md5
ssl no


nsswitch.conf:


passwd: files ldap
shadow: files ldap
group: files ldap

hosts: files dns
networks: files dns

services: files ldap
protocols: files
rpc: files
ethers: files
netmasks: files
netgroup: files ldap
publickey: files

bootparams: files
automount: files nis
aliases: files ldap
passwd_compat: ldap
group_compat: ldap


pam_unix2.conf:


session: none
auth: use_ldap nullok
account: use_ldap
password: use_ldap md5 nullok


1. Warum kann ich mich nicht am System als LDAP-User anmelden?
2. Welche Einstellungen fehlen evtl. noch?
3. Welche Möglichkeiten an Tests gibt es noch?

Gruß und Danke.


EDIT: Wie kann ich mich per Konsole am LDAP anmelden (Befehl gesucht)?

magic_halli
30.11.06, 11:37
Eines macht mich stutzig:
Ich habe von einem anderen Rechner, wo ich NUR die ldap.conf angepasst habe und im YAST LDAP-Client aktiviert habe, per Konsole ein 'ldapsearch -x' losgeschickt und siehe da, alle Einträge vom LDAP-Server werden angezeigt!!!

Nur wenn ich mich im Loginscreen mit LDAP-User und -Passwort anmelden will gehts eben nicht! Ich versteh das nicht...
Anm.: Die Meldung beim erfolglosen Clientlogin lautet: "pam_ldap: ldap_starttls_s: Protocol error"

Edit2: Am Client in ldap.conf die Zeile 'ssl start_tls' auskommentiert und die Meldung ist weg ,d.h. Verschlüsselung ist erstmal deaktiviert, oder?!
Dafür kommt jetzt die Meldung:"pam_ldap: ldap_search_s: No such object"! Sagt mir das, das der Username nicht gefunden wurde? Wenn ja, sind dann dafür Eintragungen auf dem Server in der slapd.conf zuständig, z.B. diese hier: ???


nss_base_passwd ou=people,dc=firma,dc=local?one
nss_base_shadow ou=people,dc=firma,dc=local?one
nss_base_group ou=group,dc=firma,dc=local?one

mr_kaktus
30.11.06, 12:58
Hi,

schalt mal deine LOGs auf dem LDAP Server höher, versucht dann ein Login zu machen und Poste dann was die Logs Ausgeben.
TLS würde ich erst mal deaktivieren, wenn alles tut, kannst du es Einschalten.

Ich gehe davon aus, dass du dich über SSH einloggen willst oder?
Wenn ja, dann mach mal rcsshd restart und rcnscd restart.

magic_halli
30.11.06, 14:54
LOGs höher schalten auf dem Server? Wie geht das - hab nur in der ldap.conf den Eintrag 'loglevel 256' gesetzt!

Also messages.log sieht nach login mit LDAP-User testuser so aus:


Nov 30 14:42:11 v1 slapd[24707]: conn=105 fd=17 ACCEPT from IP=127.0.0.1:6547 (IP=0.0.0.0:389)
Nov 30 14:42:11 v1 slapd[24707]: conn=105 op=0 BIND dn="" method=128
Nov 30 14:42:11 v1 slapd[24707]: conn=105 op=0 RESULT tag=97 err=0 text=
Nov 30 14:42:11 v1 slapd[24707]: conn=105 op=1 SRCH base="ou=people,dc=firma,dc=local" scope=1 deref=0 filter="(&(objectClass=posixAccount)(uid=testuser))"
Nov 30 14:42:11 v1 slapd[24707]: conn=105 op=1 SRCH attr=uid userPassword uidNumber gidNumber cn homeDirectory loginShell gecos description objectClass
Nov 30 14:42:11 v1 slapd[24707]: conn=105 op=1 SEARCH RESULT tag=101 err=0 nentries=0 text=
Nov 30 14:42:15 v1 slapd[24707]: conn=105 op=2 SRCH base="ou=people,dc=firma,dc=local" scope=1 deref=0 filter="(&(objectClass=posixAccount)(uid=testuser))"
Nov 30 14:42:15 v1 slapd[24707]: conn=105 op=2 SRCH attr=uid userPassword uidNumber gidNumber cn homeDirectory loginShell gecos description objectClass
Nov 30 14:42:15 v1 slapd[24707]: conn=105 op=2 SEARCH RESULT tag=101 err=0 nentries=0 text=
Nov 30 14:42:15 v1 slapd[24707]: conn=106 fd=18 ACCEPT from IP=10.0.0.1:22217 (IP=0.0.0.0:389)
Nov 30 14:42:15 v1 slapd[24707]: conn=106 op=0 BIND dn="" method=128
Nov 30 14:42:15 v1 slapd[24707]: conn=106 op=0 RESULT tag=97 err=0 text=
Nov 30 14:42:15 v1 slapd[24707]: conn=106 op=1 SRCH base="ou=people,dc=firma,dc=local" scope=1 deref=0 filter="(&(objectClass=posixAccount)(uid=testuser))"
Nov 30 14:42:15 v1 slapd[24707]: conn=106 op=1 SEARCH RESULT tag=101 err=0 nentries=0 text=
Nov 30 14:42:22 v1 slapd[24707]: conn=105 op=3 SRCH base="ou=people,dc=firma,dc=local" scope=1 deref=0 filter="(&(objectClass=posixAccount)(uid=testuser))"
Nov 30 14:42:22 v1 slapd[24707]: conn=105 op=3 SRCH attr=uid userPassword uidNumber gidNumber cn homeDirectory loginShell gecos description objectClass
Nov 30 14:42:22 v1 slapd[24707]: conn=105 op=3 SEARCH RESULT tag=101 err=0 nentries=0 text=
Nov 30 14:42:22 v1 kdm: :0[25725]: pam_setcred(DELETE_CRED) for root failed: User not known to the underlying authentication module
Nov 30 14:42:22 v1 slapd[24707]: conn=106 op=2 UNBIND
Nov 30 14:42:22 v1 slapd[24707]: conn=106 fd=18 closed

...danach hab ich mich dann ganz normal mit root angemeldet.

Andere Logfiles haben keine Eintragungen bezüglich dieses fehlerhaften Logins?!

mr_kaktus
30.11.06, 15:05
Komisch ...
Hast du die Dienste mal durchgestartet?

magic_halli
01.12.06, 08:02
Komisch ...
Heißt das, dass die Meldungen eigentlich gut aussehen, oder wie soll ich das verstehen? Dienste durchstarten... äh, ich hab den LDAP mehrmal refreshed bzw. neu gestartet.

Ich weiß ja nicht ob´s hilft, aber ich male mal eben meine Struktur vom LDAP auf:


BaseDN dc=firma,dc=local
|
--ou=group
|
--cn=testgruppe
--ou=ldapconfig
--ou=people
|
--cn=Testuser
--cn=Max Mustermann


Unter ou=people stehen jeweils die User, sichtbar mit cn=... . Jeder User hat ja dann aber eine uid und Passwort(hier alle CRYPT verschlüsselt), welches beim login verwendet bzw. abgefragt werden soll.
Das gebe ich doch in der ldap.conf an mit folgenden Zeilen an (Weg bis zur uid und userPassword), oder?


nss_base_passwd ou=people,dc=firma,dc=local?one
nss_base_shadow ou=people,dc=firma,dc=local?one
nss_base_group ou=group,dc=firma,dc=local?one


Ich kann mir nur noch vorstellen, dass nicht der richtige Pfad zu den entsprechenden Logininformationen abgefragt wird und somit auch der Login fehlschlägt?!?!

Was meint Ihr dazu?

ramsys
01.12.06, 08:27
Ich habe bei passwd und shadow nur die base dn angegeben. (Ist ein weilchen her da ich inzwischen edirectory nutze)

Würde nach meiner damaligen config bei dir so aussehen:
nss_base_passwd dc=firma,dc=local
nss_base_shadow dc=firma,dc=local
nss_base_group ou=group,dc=firma,dc=local?one

mr_kaktus
01.12.06, 08:35
Ich habe bei passwd und shadow nur die base dn angegeben. (Ist ein weilchen her da ich inzwischen edirectory nutze)

Würde nach meiner damaligen config bei dir so aussehen:
nss_base_passwd dc=firma,dc=local
nss_base_shadow dc=firma,dc=local
nss_base_group ou=group,dc=firma,dc=local?one
Das würde ich nich machen, sonst sucht er das durch das ganze Verzeichniss und wenn du mal mehrere User hast, dauert das ewig :eek:

Ich weiß jetzt nicht warum du dc=local?one eingegeben hast?!
Du sollst auch mal die anderen Dienste wie SSHD und NSCD restarten, hast du das auch gemacht???

ramsys
01.12.06, 08:38
Jut, aber das sys war so verdammt schnell, so das das nich auffiel.
Aber wichtig war damals das nich vorhandene ?one bei mir.

mr_kaktus
01.12.06, 08:48
Gut zum Testen kann man das gerne Probieren ... Ich hab in meiner Conf auch kein ?xxx rein ... Müsste auch mal nachschlagen für was das gut sein soll.

ramsys
01.12.06, 08:53
Das gibt nur den scope an wo gesucht wird gesehen vom base aus.
Gibt da ?base ?sub und ?one

mr_kaktus
01.12.06, 09:15
Aha ok ...

@magic_halli
Hast du es schon ausprobiert?

magic_halli
01.12.06, 09:50
So, hab jetzt einfach mal das ?one ganz weggelassen.
SSHD und NSCD restartet und dann auch gleich nochmal slapd restart gemacht... Das dauert aber nun ewig, weil´s hierbei irgendwelche Verbindungsprobleme zum LDAP gibt!
Auszug aus /var/log/messages:


Dec 1 09:37:33 v1 slapd[7851]: @(#) $OpenLDAP: slapd 2.3.19 (May 2 2006 07:44:49) $ abuild@saramber:/usr/src/packages/BUILD/openldap-2.3.19/servers/slapd
Dec 1 09:37:33 v1 nscd: nss_ldap: failed to bind to LDAP server ldap://127.0.0.1: Can't contact LDAP server
Dec 1 09:37:33 v1 nscd: nss_ldap: failed to bind to LDAP server ldap://10.0.0.1:389/: Can't contact LDAP server
Dec 1 09:37:33 v1 nscd: nss_ldap: reconnecting to LDAP server (sleeping 4 seconds)...
Dec 1 09:37:37 v1 nscd: nss_ldap: failed to bind to LDAP server ldap://127.0.0.1: Can't contact LDAP server
Dec 1 09:37:37 v1 nscd: nss_ldap: failed to bind to LDAP server ldap://10.0.0.1:389/: Can't contact LDAP server
Dec 1 09:37:37 v1 nscd: nss_ldap: reconnecting to LDAP server (sleeping 8 seconds)...
Dec 1 09:37:38 v1 slapd[7851]: nss_ldap: failed to bind to LDAP server ldap://127.0.0.1: Can't contact LDAP server
Dec 1 09:37:38 v1 slapd[7851]: nss_ldap: failed to bind to LDAP server ldap://10.0.0.1:389/: Can't contact LDAP server
Dec 1 09:37:38 v1 slapd[7851]: nss_ldap: failed to bind to LDAP server ldap://127.0.0.1: Can't contact LDAP server
Dec 1 09:37:38 v1 slapd[7851]: nss_ldap: failed to bind to LDAP server ldap://10.0.0.1:389/: Can't contact LDAP server
Dec 1 09:37:38 v1 slapd[7851]: nss_ldap: reconnecting to LDAP server (sleeping 4 seconds)...
Dec 1 09:37:42 v1 slapd[7851]: nss_ldap: failed to bind to LDAP server ldap://127.0.0.1: Can't contact LDAP server
Dec 1 09:37:42 v1 slapd[7851]: nss_ldap: failed to bind to LDAP server ldap://10.0.0.1:389/: Can't contact LDAP server
Dec 1 09:37:42 v1 slapd[7851]: nss_ldap: reconnecting to LDAP server (sleeping 8 seconds)...
Dec 1 09:37:45 v1 nscd: nss_ldap: failed to bind to LDAP server ldap://127.0.0.1: Can't contact LDAP server
Dec 1 09:37:45 v1 nscd: nss_ldap: failed to bind to LDAP server ldap://10.0.0.1:389/: Can't contact LDAP server
Dec 1 09:37:45 v1 nscd: nss_ldap: reconnecting to LDAP server (sleeping 16 seconds)...
Dec 1 09:37:50 v1 slapd[7851]: nss_ldap: failed to bind to LDAP server ldap://127.0.0.1: Can't contact LDAP server
Dec 1 09:37:50 v1 slapd[7851]: nss_ldap: failed to bind to LDAP server ldap://10.0.0.1:389/: Can't contact LDAP server
Dec 1 09:37:50 v1 slapd[7851]: nss_ldap: reconnecting to LDAP server (sleeping 16 seconds)...
Dec 1 09:38:01 v1 nscd: nss_ldap: failed to bind to LDAP server ldap://127.0.0.1: Can't contact LDAP server
Dec 1 09:38:01 v1 nscd: nss_ldap: failed to bind to LDAP server ldap://10.0.0.1:389/: Can't contact LDAP server
Dec 1 09:38:01 v1 nscd: nss_ldap: reconnecting to LDAP server (sleeping 32 seconds)...
Dec 1 09:38:06 v1 slapd[7851]: nss_ldap: failed to bind to LDAP server ldap://127.0.0.1: Can't contact LDAP server
Dec 1 09:38:06 v1 slapd[7851]: nss_ldap: failed to bind to LDAP server ldap://10.0.0.1:389/: Can't contact LDAP server
Dec 1 09:38:06 v1 slapd[7851]: nss_ldap: reconnecting to LDAP server (sleeping 32 seconds)...
Dec 1 09:38:33 v1 nscd: nss_ldap: failed to bind to LDAP server ldap://127.0.0.1: Can't contact LDAP server
Dec 1 09:38:33 v1 nscd: nss_ldap: failed to bind to LDAP server ldap://10.0.0.1:389/: Can't contact LDAP server
Dec 1 09:38:33 v1 nscd: nss_ldap: reconnecting to LDAP server (sleeping 64 seconds)...
Dec 1 09:38:38 v1 slapd[7851]: nss_ldap: failed to bind to LDAP server ldap://127.0.0.1: Can't contact LDAP server
Dec 1 09:38:38 v1 slapd[7851]: nss_ldap: failed to bind to LDAP server ldap://10.0.0.1:389/: Can't contact LDAP server
Dec 1 09:38:38 v1 slapd[7851]: nss_ldap: reconnecting to LDAP server (sleeping 64 seconds)...

Das geht so weiter - alles in allem ca. 5 Minuten Logeinträge mit der gleichen Fehlermeldung!!! Da stimmt doch was nicht?

Wenn dann endlich der LDAP wieder gestartet hat und ich vom Client aus eine Anmeldung mit meinem testuser losschicke, erhalte ich am Client die Meldung:
"pam_ldap: ldap_search_s: No such object"!!!

Das sagt mir doch irgendwie, dass kein User mit dem Passwort gefunden wird - wenn ich davon ausgehe, dass der Client eine Verbindung zum LDAP hat?!

Komisch ist, dass wenn ich ldapsearch -x in Konsole eingebe (am Server sowie am Client), ich zwar meine Struktur angezeigt bekomme, allerdings nicht meine angelegten ou=group und ou=user und auch nicht die darin wiederrum angelegten cn=testgruppe und cn=testuser!!!
Deshalb scheint´s wohl auch nicht zu funktionieren?! Aber warum wird das nicht mit ausgelesen bzw. ist nicht zugänglich???

mr_kaktus
01.12.06, 10:15
Was ist das jetzt für eine IP-Adresse: ldap://10.0.0.1:389 ?
Ich blick gerade gar nicht mehr durch.

Poste mal bitte deine /etc/security/pam_unix.2conf

magic_halli
01.12.06, 11:07
Die 10.0.0.1 ist die IP vom LDAP-Server und 389 ist der Port vom LDAP. Das ist schon korrekt so, denke ich.

Hier die pam_unix2.conf:


session: none

auth: use_ldap nullok
account: use_ldap
password: use_ldap md5 nullok

mr_kaktus
01.12.06, 11:30
Ich kann das gerade nicht nachvollziehen, leider habe ich heute nicht so viel Zeit. Ich werde nächste Woche Montag das mal auf einen Meiner Test Server abbildern und dir bescheid geben ...

magic_halli
01.12.06, 12:20
... ok, das wäre prima - vielen Dank.
Ich hoffe aber, dass ich das vorm Feierabend noch hinbekomme :rolleyes:

Ich wette, es liegt mal wieder an 1-2 Zeilen in irgendeiner Datei, die da nicht hingehören - war bisher doch oftmals so :o