lokaler Login mit LDAP-Account klappt nicht
Hallo zusammen, ich habe das Problem das ich mich am LDAP-Server lokal nicht mit dem LDAP-Account anmelden kann. Als Testsystem dient SuSE-9.1. Der LDAP-Server läuft und ich kann lesend und schreibend darauf zugrifen. Ich habe im LDAP-Verzeichnis eine Gruppe und einen User angelegt. Diese sehen folgendermaßen aus: # grp1, kundennetz dn: cn=grp1,dc=kundennetz cn: grp1 description: unsere erste Gruppe gidNumber: 1000 memberUid: 1000 objectClass: top objectClass: namedObject objectClass: posixGroup # sven, kundennetz dn: uid=sven,dc=kundennetz businessCategory: gruppe1 cn: Sven Gehr description: Der erste User displayName: sven gidNumber: 1000 givenName: Sven homeDirectory: /data/home/sven initials: sg loginShell: /bin/bash mail: sven.gehr@kundennetz.de o: sven objectClass: top objectClass: posixAccount objectClass: shadowAccount objectClass: inetOrgPerson preferredLanguage: deutsch shadowInactive: -1 shadowLastChange: 12557 shadowMax: 99999 shadowMin: 1 shadowWarning: 14 sn: Gehr uid: sven uidNumber: 1002 userPassword:: e21kNX1KOERWZnAxSVlPRWJvWTNKaWcyVVdBPT0= Für die LDAP-KOnfiguration habe ich zuerst die Grundkonfiguration zu Fuß gemacht und den Rest mit Yast. Das hat auch prima geklappt. Unter: Netzwerkdienste -> LDAP-Client habe ich auch die Option "LDAP Benutzern das anmelden erlauben" aktiviert. Als Erklärung heist es: "Mit der Option LDAP-Benutzern das Anmelden erlauben können Sie festlegen, ob LDAP-Benutzern das Anmelden auf diesem Rechner erlaubt wird." In diesem Dialog gibt es noch eine Einstellung die ich nicht verstehe und auch nirgens etwas darüber finde. Attribut für Gruppenmitglied. Hier kann ich zwischen: - member - uniquemember wählen. Die Vorgabe war 'member'. Was bedeutet diese Option? Die Erklärung aus Yast: "Legen Sie den Typ Ihrerverwendeten LDAP-Gruppen fest. Der Standardwert für Attribut für Gruppenmitglied ist member." Ich habe im Forum bzw. auch im LDAP-Buch gelesen das man, wenn man sich an der lokalen Maschiene mit einem LDAP-Account anmelden möchte man die Dateien: /etc/nsswitch /etc/pam.d/login anpassen muß. Diese sehen auf dem Testsystem so aus: (nsswitch) passwd: compat group: compat hosts: files dns networks: files dns services: files protocols: files rpc: files ethers: files netmasks: files netgroup: files publickey: files bootparams: files automount: files nis aliases: files passwd_compat: ldap group_compat: ldap (login) #%PAM-1.0 auth requisite pam_unix2.so nullok #set_secrpc auth required pam_securetty.so auth required pam_nologin.so #auth required pam_homecheck.so auth required pam_env.so auth required pam_mail.so account required pam_unix2.so password required pam_pwcheck.so nullok password required pam_unix2.so nullok use_first_pass use_authtok session required pam_unix2.so none # debug or trace session required pam_limits.so Die erste (nsswitch) wurde durch Yast ja angepasst. Die beiden letzten Zeilen: passwd_compat: ldap group_compat: ldap werden die beiden oberen Zeilen: passwd: compat group: compat ja sozusagen auf LDAP 'umglegt'. In der Datei login kann ich keine Veränderung feststellen. Wenn ich mich an der Maschiene mit dem Username 'sven' einloggen möchte und das Passwort eingebe erhalte ich nur 'Login incorrect. Was habe ich übersehen? Gruß Sven
Hallo zusammen, ich habe das Problem bereits weiter eingrenzen können schrieb Sven Gehr: [...]
ich habe das Problem das ich mich am LDAP-Server lokal nicht mit dem LDAP-Account anmelden kann. Als Testsystem dient SuSE-9.1. [...]
Unter /var/log/warn war das Problem ersichtlich, Die Datei /etc/ldap.secret war nicht vorhanden. Nachdem ich ein: touch /etc/ldap.secret echo [mein root Passwort] > /etc/ldap.secret chmod 400 /etc/ldap.secret gemacht habe komme ich zumindest ein Stück weiter. Ich kann mich mit dem User 'sven', wlcher NUR im LDAP-Verzeichnis existiert an der lokalen Maschiene anmelden. Nachdem ich das getan habe sie allerdings das Eingabeprompt sehr seltsam aus: I have no name!@testserver:~> Wie kommt's ? Was ich jedoch nicht verstehe warum es überhaupt geht. Jeder erzählt mir man müsse die Datei /etc/pam.d/login anpassen. In meiner DAtei steht überhaupt nichts von pam_ldap, logisch ich habe ja auch nichts geändert. Gruß Sven
Sven Gehr wrote: Hallo Sven
Nachdem ich ein: touch /etc/ldap.secret echo [mein root Passwort] > /etc/ldap.secret chmod 400 /etc/ldap.secret gemacht habe komme ich zumindest ein Stück weiter. Ich kann mich mit dem User 'sven', wlcher NUR im LDAP-Verzeichnis existiert an der lokalen Maschiene anmelden. Nachdem ich das getan habe sie allerdings das Eingabeprompt sehr seltsam aus:
I have no name!@testserver:~>
dann scheint pam_ldap zu funktionieren. Aber dein nss_ldap macht Trouble ;-)
Wie kommt's ? Was ich jedoch nicht verstehe warum es überhaupt geht. Jeder erzählt mir man müsse die Datei /etc/pam.d/login anpassen. In meiner DAtei steht überhaupt nichts von pam_ldap, logisch ich habe ja auch nichts geändert.
Nein, man kann das einfacher machen indem man in /etc/security/pam_unix.conf bei auth + account + password "use_ldap" einträgt. Damit erleichert man sich die leidigen Anpassungen in allen /etc/pam.d/* Konfigurationsdateien. In deiner ldap.conf sollte erstens ein binddn xxxx drinstehen wo bindpw das Passwort ist und rootbinddn mit der Datei ldap.secret. rootbinddn und ldap.secret wird genutzt wenn Du als root Abfragen an den LDAP-Server machst. binddn für jeden normalen User. Siehe doch auch: /usr/share/doc/packages/nss_ldap/ldap.conf : # The distinguished name to bind to the server with. # Optional: default is to bind anonymously. #binddn cn=proxyuser,dc=padl,dc=com # The credentials to bind with. # Optional: default is no credential. #bindpw secret # The distinguished name to bind to the server with # if the effective user ID is root. Password is # stored in /etc/ldap.secret (mode 600) #rootbinddn cn=manager,dc=padl,dc=com Gruss Patrick
Hallo, schrieb Patrick Klaus:
Sven Gehr wrote:
dann scheint pam_ldap zu funktionieren. Aber dein nss_ldap macht Trouble ;-)
das klingt ned gut.
Wie kommt's ? Was ich jedoch nicht verstehe warum es überhaupt geht. Jeder erzählt mir man müsse die Datei /etc/pam.d/login anpassen. In meiner DAtei steht überhaupt nichts von pam_ldap, logisch ich habe ja auch nichts geändert.
Nein, man kann das einfacher machen indem man in /etc/security/pam_unix.conf
bei auth + account + password
"use_ldap"
einträgt. Damit erleichert man sich die leidigen Anpassungen in allen /etc/pam.d/* Konfigurationsdateien.
Habe ich kapiert und das klingt auch logisch. In der Datei pam_unix.conf steht: auth: use_ldap nullok account: use_ldap password: md5 use_ldap nullok session: none somit dürfte das ok sein.
In deiner ldap.conf sollte erstens ein binddn xxxx drinstehen wo bindpw das Passwort ist
Und was genau gebe ich mit binddn an? Diese Zeile ist auskommentiert und sieht im Moment so aus: #binddn cn=Manager,dc=example,dc=com Ein Objekt 'Manager' gibt es in meinem Verzeichnisbaum nicht sondern ein root Objekt. Mir ist nicht ganz klar was ich hier übergeben soll da ich bereits ein: rootbinddn cn=root,dc=kundennetz in meiner ldap.conf habe.
und rootbinddn mit der Datei ldap.secret. rootbinddn und ldap.secret wird genutzt wenn Du als root Abfragen an den LDAP-Server machst. binddn für jeden normalen User.
Sorry wenn ich das nicht ganz verstehe. Wenn ich als UserXY eine Suchanfrage stelle wird der Benutzer der über binddn ..... in der ldap.conf definiert ist benutzt? Heist das ich muß jetzt noch irgend einen User im Verzeichnis anlegen? Gruß Sven
Sven Gehr wrote: Hallo Sven
ja sozusagen auf LDAP 'umglegt'. In der Datei login kann ich keine Veränderung feststellen. Wenn ich mich an der Maschiene mit dem Username 'sven' einloggen möchte und das Passwort eingebe erhalte ich nur 'Login incorrect.
Was habe ich übersehen?
Was sagt denn ein: getent passwd oder getent group Werden dort alle LDAP-Accounts aufgelistet ? Wenn ja beschränke deine Fehlersuche auf PAM, wenn ein, dann hat das nss_ldap Modul Probleme die Accountdaten aus deinem LDAP-Server zu lesen. Vielleicht hilft dir das bei deiner Fehlersuche weiter Gruss Patrick
participants (2)
-
Patrick Klaus
-
Sven Gehr