auth gegen ldap

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
audiolinux
Beiträge: 39
Registriert: 02.03.2005 19:24:06
Wohnort: Hamburg
Kontaktdaten:

auth gegen ldap

Beitrag von audiolinux » 31.07.2007 17:45:32

moin ng,

ich versuche - inzwischen verzweifelt - unix-benutzer accounts gegen LDAP zu authentifizieren. Dafür habe ich auf 2 Systeme aufgesetzt. Zum einen den LDAP-Server. Zum anderen eine Testumgebung, auf der sich benutzer über das LDAP-System anmelden sollen.
Wie schön:

Code: Alles auswählen

ldapsearch 
bringt die entsprechenden LDAP-Einträge. Bisher habe ich folgendes Problem: Ein

Code: Alles auswählen

getent passwd
liefert allerdings nur die lokalen benutzer an System 2, nicht aber die LDAP-User vom LDAP-Server.
In /var/log/auth erscheint bei jeder Anmeldung:

Code: Alles auswählen

Jul 31 19:22:28 debian4 login[3433]: pam_ldap: ldap_simple_bind Can't contact LDAP server
Und der Testbenutzer wird über die lokalen Datenbanken am System angemeldet. Deshalb gehe ich davon aus, das es ein Problem mit pam_ldap.so ist. Also die Einträge in

/etc/libnss_ldap.conf

geprüft, wobei sich mir die Frage stellt, muss ich nun

host ldap://192.168.0.81

verwenden oder

uri ldap//192.168.0.81

wenn ich nur uri verwende gibts im Log:

Code: Alles auswählen

Jul 31 19:40:47 debian4 vi: nss_ldap: failed to bind to LDAP server ldap:////192.168.0.81:389: Can't contact LDAP server
Jul 31 19:40:47 debian4 vi: nss_ldap: could not search LDAP server - Server is unavailable
bei nur host, obige Fehlermeldung ...

hat da jemand eine Idee? der Ldap-Server läuft wie gesagt, da sogar die Anmeldung per Samba funktioniert.
Gruß
Sebastian

Benutzeravatar
bertol
Beiträge: 145
Registriert: 07.10.2003 10:40:19
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Beitrag von bertol » 31.07.2007 18:18:04

in
/etc/libnss-ldap.secret
steht das richtige Passwort?

sowie
/etc/libnss-ldap.conf und /etc/pam_ldap.conf

base dc=dmoain,dc=tld
rootbinddn cn=admin,dc=dmoain,dc=tld
steht drin

wobei domain und tld durch Deine Einträge zu ersätzen ist

vergleiche noch den Beitrag http://www.debianforum.de/forum/viewtop ... highlight=

in Bezug auf

etc/nsswitch.conf
/etc/pam.d/common-account
/etc/pam.d/common-auth
/etc/pam.d/common-password
/etc/pam.d/common-session

audiolinux
Beiträge: 39
Registriert: 02.03.2005 19:24:06
Wohnort: Hamburg
Kontaktdaten:

Beitrag von audiolinux » 01.08.2007 13:50:07

Hallo Bertol, danke für deine Nachricht.
bertol hat geschrieben:in
/etc/libnss-ldap.secret
steht das richtige Passwort?
verstehe ich das richtig, das muss schon plaintext drinstehen oder?
bertol hat geschrieben: sowie
/etc/libnss-ldap.conf und /etc/pam_ldap.conf


base dc=dmoain,dc=tld
rootbinddn cn=admin,dc=dmoain,dc=tld
steht drin
da hab ich es angepasst und es steht auch alles drin
etc/nsswitch.conf
/etc/pam.d/common-account
/etc/pam.d/common-auth
/etc/pam.d/common-password
/etc/pam.d/common-session
das war bei mir alles genauso. dann kann ich mich zwar nach wie vor lokal anmelden, aber ein

Code: Alles auswählen

getent passwd
liefert nur die lokalen benutzer
Gruß
Sebastian

Benutzeravatar
bertol
Beiträge: 145
Registriert: 07.10.2003 10:40:19
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Beitrag von bertol » 01.08.2007 14:09:45

audiolinux hat geschrieben:Hallo Bertol, danke für deine Nachricht.
bertol hat geschrieben:in
/etc/libnss-ldap.secret
steht das richtige Passwort?
verstehe ich das richtig, das muss schon plaintext drinstehen oder?
Auf den 3 LDAP-Servern die ich eingereichtet habe : JA

hier ein auszug aus meiner /etc/libnss-ldap.conf

Code: Alles auswählen

base dc=domain,dc=int
uri ldap://194.113.1.1
ldap_version 3
rootbinddn cn=admin,dc=domain,dc=tld
Hm was sagt den getent passwd am server bzw. getent group?
Zuletzt geändert von bertol am 28.01.2011 13:18:33, insgesamt 1-mal geändert.

audiolinux
Beiträge: 39
Registriert: 02.03.2005 19:24:06
Wohnort: Hamburg
Kontaktdaten:

Beitrag von audiolinux » 01.08.2007 14:37:24

Hm was sagt den getent passwd am server bzw. getent group?
ehm. es zeigt nur die lokalen benutzer an ... :-/ nur da hab ich ja den ldap-zugriff auch noch gar nicht eingerichtet. d.h. dort läuft im moment noch die lokale benutzervewaltung UND eine unabhängige mit LDAP (eben zu testzwecken). das sollte LDAP doch eigentlich egal sein, oder?
Gruß
Sebastian

Benutzeravatar
bertol
Beiträge: 145
Registriert: 07.10.2003 10:40:19
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Beitrag von bertol » 01.08.2007 15:28:11

audiolinux hat geschrieben:... das sollte LDAP doch eigentlich egal sein, oder?
Hast recht. Denkfehler.

habe mal schnell nen client aufgesetzt (Debian ohne X)
danach habe ich

Code: Alles auswählen

apt-get install libnss-ldap libnet-ldap-perl libpam-ldap
libnss-ldap.conf vergl. posting oben

In /etc/nsswitch.conf
ldap
hinzugefügt

jeweils eine Zeile in /etc/pam.d/common-account, etc/pam.d/common-auth,/etc/pam.d/common-password,
account sufficient pam_ldap.so
hinzugefügt

Code: Alles auswählen

getent passwd
alles bestens.
?
was passiert, wenn Du

Code: Alles auswählen

ldapsearch -v -x -H"ldap://IP-Adresse" -D cn=admin,dc=domain,dc=tld -s sub -b dc=domain,dc=tld -W
ausführst?

audiolinux
Beiträge: 39
Registriert: 02.03.2005 19:24:06
Wohnort: Hamburg
Kontaktdaten:

Beitrag von audiolinux » 02.08.2007 11:54:39

was passiert, wenn Du

Code: Alles auswählen

ldapsearch -v -x -H"ldap://IP-Adresse" -D cn=admin,dc=domain,dc=tld -s sub -b dc=domain,dc=tld -W
ausführst?
das liefert mir alle user aus dem LDAP Verzeichnis :-] .. es ist zum mäusemelken
Gruß
Sebastian

Benutzeravatar
bertol
Beiträge: 145
Registriert: 07.10.2003 10:40:19
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Beitrag von bertol » 02.08.2007 13:16:55

und was liefert

Code: Alles auswählen

ldapsearch -v -x -H"ldap://IP-Adresse" -D cn=admin,dc=domain,dc=tld -s sub -b dc=domain,dc=tld -W uid=DeinLoginName
?

und Poste mal die Ausgabe

audiolinux
Beiträge: 39
Registriert: 02.03.2005 19:24:06
Wohnort: Hamburg
Kontaktdaten:

Beitrag von audiolinux » 02.08.2007 13:30:34

ldap_bind: Invalid credentials (49)
Gruß
Sebastian

Benutzeravatar
bertol
Beiträge: 145
Registriert: 07.10.2003 10:40:19
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Beitrag von bertol » 02.08.2007 13:47:25

aha da haben wir ja den grund, dein LDAP-User hat nicht das benötigte Attribut uid
Hier meine ausgabe von
ldapsearch -v -x -H"ldap://IP-Adresse" -D cn=admin,dc=domain,dc=tld -s sub -b dc=domain,dc=tld -W uid=bertol

Code: Alles auswählen

filter: uid=bertol
requesting: All userApplication attributes
# extended LDIF
#
# LDAPv3
# base <dc=domain,dc=tld> with scope subtree
# filter: uid=bertol
# requesting: ALL
#

# bertol, users, domain.tld
dn: uid=bertol,ou=users,dc=domain,dc=tld
objectClass: top
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
objectClass: sambaSamAccount
uidNumber: 1001
gidNumber: 513
homeDirectory: /home/bertol
loginShell: /bin/bash
sambaLogonTime: 0
sambaLogoffTime: 2147483647
sambaPwdMustChange: 2147483647
sambaSID: S-1-5-21-xyz-XYZ-XyZ-3002
sambaPrimaryGroupSID: S-1-5-21-xyz-XYZ-513
sambaHomeDrive: F:
cn: Bertol, Alexander
sn: Bertol
sambaPasswordHistory: XYZ
sambaAcctFlags: [U          ]
telephoneNumber: 123
givenName: Alexander
o: domain
ou: Organisation Unt
postalCode: 12345
mail: secret@domain.tld
initials: AB
street:: Strasse
departmentNumber: 
facsimileTelephoneNumber: 12345
roomNumber: 020
sambaLogonScript: reallogon.cmd
l: Ort
sambaKickoffTime: 0
sambaLogonHours: XXXX
displayName: Bertol, Alexander
uid: bertol
sambaPwdCanChange: 1178544259
sambaLMPassword: XXXXXXX
sambaNTPassword: XXXXXXX
sambaPwdLastSet: 1178544259
userPassword:: XXXXXXXXXXXXx
description: Bertol, Alexander
gecos: Bertol, Alexander
shadowExpire: 0
sambaDomainName: domain

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1
Wobei die Samba-Einträge nicht relevant sind. Relevant sind UID,UID-Number

hast Du denn alle Schemas in /etc/ldap/slapd.conf?
Hier mein Auszug

Code: Alles auswählen

# Schema and objectClass definitions
include         /etc/ldap/schema/core.schema
include         /etc/ldap/schema/cosine.schema
include         /etc/ldap/schema/nis.schema
include         /etc/ldap/schema/inetorgperson.schema
include         /etc/ldap/schema/samba.schema
include         /etc/ldap/schema/evolutionperson.schema
include         /etc/ldap/schema/mozillaAddressBookEntry.schema
include         /etc/ldap/schema/mozillaOrgPerson_0.6.3.schema
include         /etc/ldap/schema/postfix.schema
wobei nur die 1. 3 Relevant sind, die 4. bin ich mir nicht sicher
[EDIT]
es sind Zeilen 1-4 für ein UNIX-Account notwendig
[/EDIT]

audiolinux
Beiträge: 39
Registriert: 02.03.2005 19:24:06
Wohnort: Hamburg
Kontaktdaten:

Beitrag von audiolinux » 02.08.2007 14:08:13

ehm die schemata sehen bei mir genau so aus, ich hab einen fehler gemacht. die ausgabe:

Code: Alles auswählen

filter: uid=sschieke
requesting: ALL
# extended LDIF
#
# LDAPv3
# base <dc=hans-bredow-institut,dc=de> with scope sub
# filter: uid=sschieke
# requesting: ALL
#

# sschieke, people, hans-bredow-institut.de
dn: uid=sschieke,ou=people,dc=hans-bredow-institut,dc=de
uid: sschieke
mail: sschieke@hans-bredow-institut.de
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 684
gidNumber: 101
homeDirectory: /home/sschieke
sn: Schieke
givenName: Sebastian
homePostalAddress:: VGFycGVuYmVrc3RyYcOfZSA2Mg==
ou: EDV
o: Hans-Bredow-Institut
dateOfBirth: 
gender: M
preferredLanguage: de_DE
cn: Sebastian Schieke
gecos: Sebastian Schieke
shadowLastChange: 13684
shadowMax: 9999
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
objectClass: gosaAccount
objectClass: sambaSamAccount
telephoneNumber: 040
l: Hamburg
st: Deutschland
postalAddress:: SGVpbWh1ZGVyIFN0cmHDn2UgMjE=
employeeType: Angestellter
labeledURI: http://www.tanteuschi.de
roomNumber: 42
sambaSID: S-1-5-21-2397372212-1332386265-1925581275-1000
displayName: sschieke,,,
sambaPwdCanChange: 1185814546
sambaPwdMustChange: 2147483647
sambaLMPassword: 8D77410A847EC5971AA818381E4E281B
sambaNTPassword: 2863299A7AF65738A3A221DCFED070DB
sambaPasswordHistory: 00000000000000000000000000000000000000000000000000000000
 00000000
sambaPwdLastSet: 1185814546
sambaAcctFlags: [U          ]
userPassword:: e1NNRDV9cTRZRGFMbTB4ZmFoSkQxK01kTDFTeDJWUUtjPQ==

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1
Gruß
Sebastian

Benutzeravatar
bertol
Beiträge: 145
Registriert: 07.10.2003 10:40:19
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Beitrag von bertol » 02.08.2007 14:17:33

ja habe dein 1. Posting nochmal gelesen, da steht ja auch drin ,dass du Über Samba Dich authentifizieren kannst.

Ja da stehen wir ja wieder am Anfang. Das Problem scheint am Client zu liegen. Habe jetzt auch keinen Rat mehr. Vieleicht überprüfst Du einfach nochmal alle Eingabe auf dem Client oder macht auf dem Client ein

Code: Alles auswählen

apt-get remove --purge libnss-ldap libnet-ldap-perl libpam-ldap
apt-get install libnss-ldap libnet-ldap-perl libpam-ldap
Viel Erfolg

Benutzeravatar
bertol
Beiträge: 145
Registriert: 07.10.2003 10:40:19
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Beitrag von bertol » 02.08.2007 14:21:18

P.S Vieleicht hilft der link weiter http://abode.dk/debian/debian-server/de ... ation.html

audiolinux
Beiträge: 39
Registriert: 02.03.2005 19:24:06
Wohnort: Hamburg
Kontaktdaten:

Beitrag von audiolinux » 02.08.2007 14:57:18

und siehe da. nach einem problem bei der neuinstallation (lag an der geänderten nsswitch.conf) funktioniert es jetzt offenbar.

ich hatte auch noch einen fehler bei den binddn gemacht. hatte dort das konto für den ldapadmin eingetragen. bei der installation hatte ich aber ursprünglich das verbinden ohne expliziten binddn erlaubt (was ja für das interne netz im prinzip auch sinn macht oder?
in der produktiv-umgebung sollen ldap, samba usw. auf einer maschine laufen.

vielen Dank für Deine Hilfe und Deine Geduld.

Sebastian
Gruß
Sebastian

super.daniel
Beiträge: 2
Registriert: 07.08.2007 09:11:26

Beitrag von super.daniel » 07.08.2007 09:18:31

@audiolinux

kannst du mal deine lösung näher erläutern...

ich habe einen Fehler, beim Starten des Rechners (nss_ldap: failed to bind to LDAP) - vermutlich stimmt irgendwas in der nsswitch.conf nicht.

hier meine config's:

/etc/pam.d/common-account

Code: Alles auswählen

account sufficient pam_ldap.so
account required pam_unix.so try_first_pass
/etc/pam.d/common-auth

Code: Alles auswählen

auth sufficient pam_ldap.so
auth required pam_unix.so nullok_secure use_first_pass
/etc/pam.d/common-password

Code: Alles auswählen

password sufficient pam_ldap.so
password required pam_unix.so nullok obscure min=4 max=8 md5 try_first_pass
/etc/pam.d/common-session

Code: Alles auswählen

session required pam_unix.so
session optional pam_ldap.so
/etc/nsswitch.conf

Code: Alles auswählen

passwd:         compat ldap
group:          compat ldap
shadow:         compat ldap

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

super.daniel
Beiträge: 2
Registriert: 07.08.2007 09:11:26

Beitrag von super.daniel » 07.08.2007 09:25:17

ich habe nun herausgefunden das es nur so funktioniert:

/etc/nsswitch.conf

Code: Alles auswählen

passwd:         compat ldap
group:          compat ldap
shadow:         compat ldap 
so allerdings funktioniert es nicht - warum ?

/etc/nsswitch.conf

Code: Alles auswählen

passwd:         ldap compat
group:          ldap compat
shadow:         ldap compat 

audiolinux
Beiträge: 39
Registriert: 02.03.2005 19:24:06
Wohnort: Hamburg
Kontaktdaten:

Beitrag von audiolinux » 09.08.2007 14:08:57

super.daniel hat geschrieben:@audiolinux

kannst du mal deine lösung näher erläutern...

ich habe einen Fehler, beim Starten des Rechners (nss_ldap: failed to bind to LDAP) - vermutlich stimmt irgendwas in der nsswitch.conf nicht.
vielleicht ist der ldap-server ja noch gar nicht gestartet, wenn Du diese Fehlermeldung bekommst. Klappt denn die Verbindung, wenn das System läuft?

ich hab die nsswitch so eingestellt:

Code: Alles auswählen

# /etc/nsswitch.conf
passwd:         files ldap compat
group:          files ldap compat
shadow:         files ldap compat
die ldap.conf

Code: Alles auswählen

BASE dc=your,dc=hostname
URI  ldap://192.168.0.81:389
und die pam_ldap.conf

Code: Alles auswählen

base dc=your,dc=hostname
uri ldap://192.168.0.81
rootbinddn cn=youradmin,dc=your,dc=hostname
ldap_version 3
Gruß
Sebastian

audiolinux
Beiträge: 39
Registriert: 02.03.2005 19:24:06
Wohnort: Hamburg
Kontaktdaten:

Beitrag von audiolinux » 17.08.2007 17:17:32

super.daniel hat geschrieben:ich habe nun herausgefunden das es nur so funktioniert:

/etc/nsswitch.conf

Code: Alles auswählen

passwd:         compat ldap
group:          compat ldap
shadow:         compat ldap 
hast du mal probiert einen neuen user im ldap anzulegen, und dich dann mal per ssh mit diesem user anzumelden?
bei mir klappt das einfach nicht. will heißen: compat ließt erstmal die lokalen einträge in der /etc/passwd, danach wird erst gegen ldap geprüft.
wenn du es umgekehrt schreibst wirst du deinpasswort 2x eingeben müssen. (beim 2. mal prüft er nähmlich gegen pam_unix)
wenn man also seine bestehenden daten migriert und die /etc/passwd erstmal so lässt wie sie ist, bekommt man ein problem bei neuen usern.
also, da ist bei mir zumindest doch noch was faul :-(
Gruß
Sebastian

audiolinux
Beiträge: 39
Registriert: 02.03.2005 19:24:06
Wohnort: Hamburg
Kontaktdaten:

Beitrag von audiolinux » 21.08.2007 15:32:21

es lag daran, das der nscd bei mir nicht lief. nachdem ich den isntalliert hatte, klappte es auch mit den usern
Gruß
Sebastian

Antworten