PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Unix Anmeldung per LDAP ohne lokal existierende Benutzer möglich??



LamePL
27.11.06, 11:40
Betriebssystem: SuSe 10
LDAP: openLDAP 2.x

Ist das möglich? wenn ja, wie?

Ich habe momentan ein lauffähiges openLDAP (mit TLS), welches es mir erlaubt mich mit dem im LDAP angegeben Passwort am System anzumelden... aber nur dann wenn auch ein gleichnamiger Unix-Account existiert. Die /etc/pam.d-configs (common-auth, -account, -password) enhalten jeweils den zugehörigen ldap-eintrag (sufficient). Die nsswitch.conf enthält auch bereits die einträge "ldap files" für passwd, shadow und group.
Ein passwd <user> funktioniert auch nur dann, wenn ein lokaler user existiert (passwd: Unknown user ...).

Mein Log sagt folgendes:

sshd[10049]: pam_ldap: error trying to bind as user "uid=<user>,dc=<domain>,dc=<country>" invalid credentials

Der Benutzer existiert mit den angegebenen Daten (username, passwort sowie die DN) im LDAP, hat alle benötigten ObjectClasses und Attribute (posix, shadow, ...)

Sobald ein lokaler Benutzer mit selbigen Namen erstellt wird funktioniert es.


Weiß jemand weiter???

mamue
27.11.06, 11:56
Das funktioniert auch ohne existierenden UNIX-Account. Es reicht unter SuSE die Datei /etc/security/pam_unix2.conf anzupassen:


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

In der nsswitch.conf sollte unbedingt "files ldap", nicht "ldap files" stehen. Es funktioniert zwar, zieht aber Ärger nach sich.
Wenn das fertig ist und die LDAP-Einträge existieren, sollte "getent passwd" auch die User im LDAP anzeigen. Wenn nicht, prüfe mal mit ldapsearch, bzw setz den Loglevel in der slapd.conf rauf und schau im Logfile nach ob und wonach gesucht wird.

HTH,
mamue

LamePL
27.11.06, 12:22
Habe die vorgeschlagenen Änderungen übernommen... leider ohne Erfolg.

"getent passwd" als root zeigt mir alle (auch die ldap-accounts an).
"getent passwd <user_ohne_unix_account>" zeigt mir nichts an.
"getent passwd <user_mit_unix_account>" zeigt mir nur den unix-account an.

die ausgabe eines "finger <user_ohne_unix_account>" zeigt mir die unix-accountdaten...
die ausgabe eines "finger <user_ohne_unix_account>" ist ok (ldap-accountdaten)...

wenn ich mich als <user_mit_unix_account> mit dem ldap-passwort anmelde, bekomme ich bei eingabe von "id" die unix-accountdaten zurück...
eine anmeldung als <user_ohne_unix_account> schlägt fehl und ssh wirtf die bereits angesprochene Meldung ins Log.

Das hochschrauben des Debuglevels gibt leider auch keine genaueren Infos...

LamePL
27.11.06, 15:41
So, ich erkenne jetzt im Log noch weiter Infos, kann damit aber nichts anfangen...

Invalid user <user> from 127.0.0.1
input_userauth_request: invalid user <user>
Failed none for invalid user <user> from 127.0.0.1 port XXX ssh2
... (slapd)
pam_ldap: error trying to bind as user "<user_DN> (invalid credentials)
... (slapd)
Failed password for invalid user <user> from 127.0.0.1 port XXX ssh2
Connection closed by 127.0.0.1

Der Benutzer ist im LDAP vorhanden und es wurde natürlich auch das richtige Passwort angegeben!

DirtyDoc
27.11.06, 15:51
also ich hab SuSE 10.1 erfolgreich mit LDAP-Authentifizierung am Laufen. In den PAM Files hat es nur einen Eintrag für die pam_mkhomedir gebraucht, damit automatisch beim Einloggen die Homeverzeichnisse erstellt werden, der Rest ließ sich bequem mit der Klicki-Bunti Administration im Kontrollcenter einrichten...

LamePL
27.11.06, 16:27
könntest du mir eventl mal deine nsswitch.conf, slapd.conf und ldap.conf posten? ich verzweifel so langsam... weiß wirklich nicht mehr weiter :(

DirtyDoc
27.11.06, 18:50
hmm... so blöd es klingt, aber ich glaube suse ist einfach nicht dazu ausgelegt da grossartig an den configdateien rumzubasteln... ;)

ich hab leider gerade keinen zugriff auf die suserechner und mein gentoosystem authentifiziert sich nicht gegen ldap... ich kann dir leider auswendig noch nichtmal mehr sagen, wie genau die menuoption hiess, ich kann dir nur berichten - bevor du dich an der konsole abwürgst - dass ich hab es unter suse nur unter hilfenahme der grafischen configtools ans laufen gebracht habe. (mit ausnahme von pam_mkhomedir.so)

ich weiss nicht, wie du normalerweise auf den ldap connectest, bei mir kommt man mit ner anonymnen abfrage lesenderweise an die usercredentials, vllt ist es bei dir ja ein reines berechtigungsproblem...