cc_aero
Lt. Junior Grade
- Registriert
- Juli 2013
- Beiträge
- 510
Hallo allerseits
,
ich habe unter Debian Wheezy (7.1) einen OpenLDAP-Server eingerichtet, welchen ich für Benutzer-Anmeldungen (und wenn da alles klappt) auch als Samba-Backend benutzen möchte. LDAP soll zu dem auch über TLS funktionieren (allerdings nur "start_tls" über den normalen LDAP-Port 389).
Zu dem sollen auf der Maschine, auf welcher der LDAP-Server läuft, Benutzeranmeldungen via LDAP möglich sein ... ebenfalls mit TLS gesichert.
Außerdem soll das LDAP-Verzeichnis nicht für Anonyme Benutzer einsehbar sein.
Soweit, so gut - Der LDAP-Server läuft (inkl. konfigurierten TLS) und Anmeldungen von LDAP-Benutzern am System ist ebenfalls möglich. Die LDAP Benutzer können auch über "passwd" ihr LDAP-Password ändern.
"getent passwd" und "getent group" liefern auch brav lokale Benutzer/Gruppen sowie LDAP-Einträge.
Was jedoch nicht funktioniert - und ich komm einfach nicht dahinter warum - ist das wechseln von einem lokalen Benutzer zu einem LDAP-Benutzer oder von einem LDAP-Benutzer zu einem anderen LDAP-Benutzer - beides mit "su $user".
Folgende Fehlermeldungen erscheinen beim wechseln von einem lokalen User zu einem LDAP-User:
Der Lokale Benutzer ist "srv-admin" und der LDAP-Benutzer "testusr3"
Auf der Konsole:
In /var/log/auth.log:
Folgende Fehlermeldungen erscheinen beim wechseln von einem LDAP-User zu einem anderen LDAP-User:
Auf der Konsole:
In /var/log/auth.log:
Die LDAP-Benutzer haben übrigens als primäre Gruppe eine LDAP-Gruppe (LDAP_Users) eingetragen, ansonsten besitzen sie keine Gruppenmitgliedschaften.
Das Interessante ist ... wenn ich folgende Einträge zu TLS aus den Config-Dateien "libnss-ldap.conf" und "pam_ldap.conf" herausnehme funktioniert die Sache ohne Probleme:
Daher dürfte es ein Problem mit TLS sein - nur welches? Das normale anmelden funktioniert doch problemlos. Auch das Anmelden an den Verzeichnis-Dienst per LDAP-Admin von einer Windows-Maschine via TLS funktioniert reibungslos.
Auch der Befehl "ldapsearch -xLLL -ZZ -W -D cn=admin,cn=config" bringt ohne Fehler Ergebnisse
Alle LDAP-Benutzer können zudem Problem auf einen lokalen-Benutzer via "su" wechseln. Root kann problemlos auf Lokale und LDAP-Benutzer via "su" wechseln.
Was jedoch noch auffällig ist ... sobald "nscd" gestoppt wird, kann kein Benutzer - außer root - "su" einsetzen. Ein lokaler Benutzer kann auch nicht mehr mit "su" zum root-Account wechseln. - Erst wenn "nscd" wieder gestartet ist, funktioniert "su" wieder.
Detail-Informationen zu meiner Konfiguration:
TLS für den OpenLDAP-Server hab ich nach einen How-To von Ubuntu konfiguriert - http://wiki.ubuntuusers.de/OpenLDAP#Sichere-bertragung-mit-TLS-SSL
Ich hab hierzu mittels CA.pl - wie im Howto beschrieben - eine eigene CA eingerichtet und darüber das Server-Zertifikat erstellt.
Außerdem habe ich zusätzlich das Paket "ssl-cert" via apt installiert und den Benutzer "openldap" zur Gruppe "ssl-cert" hinzugefügt da der SLAPD ansonsten nicht startet - siehe https://wiki.debian.org/LDAP/OpenLDAPSetup#Configuring_LDAPS
Meine config in cn=config des SLAPD zu TLS sieht wie folgt aus:
/etc/ldap/ldap.conf:
libnss-ldap und pam_ldap hab ich über apt installiert und mittels dpgkconfigure konfiguriert.
Die Config-Dateien "libnss-ldap.conf" und "pam_ldap.conf" habe ich um die TLS-Parameter ergänzt, welche ich weiter oben bereits notiert habe und zusätzlich in beiden Dateien die Optionen "binddn" und "bindpw" gesetzt, da auf meinem LDAP-Verzeichnis kein anonymer Zugriff möglich sein soll:
Die Config-Datei "/etc/pam.d/common-auth" sowie "/etc/pam.d/common-password" habe ich auch etwas angepasst, da im SYSLOG immer Warnings/Fehler auftauchen (von pam_unix) wenn sich ein LDAP-User anmeldet.
/etc/pam.d/common-auth:
/etc/pam.d/common-password:
In common-session habe ich zu dem am Ende noch "session required pam_mkhomedir.so" angefügt, damit Home-Dirs automatisch erstellt werden.
Und zu guter letzt noch die /etc/nsswitch.conf:
Kennt das beschriebene Problem bereits jemand und hat eine Lösung parat? Wo kann hier der Fehler liegen?
Muss ich davon ausgehen das diese Problem evtl. auch anders Dinge beeinflussen kann, welche ich an LDAP binden möchte (SAMBA zb) oder bleibt es nur beim "su"-Problem?
Für eine Lösung wäre ich sehr dankbar
PS: Hoffentlich ist das der richtige Forums-Bereich

ich habe unter Debian Wheezy (7.1) einen OpenLDAP-Server eingerichtet, welchen ich für Benutzer-Anmeldungen (und wenn da alles klappt) auch als Samba-Backend benutzen möchte. LDAP soll zu dem auch über TLS funktionieren (allerdings nur "start_tls" über den normalen LDAP-Port 389).
Zu dem sollen auf der Maschine, auf welcher der LDAP-Server läuft, Benutzeranmeldungen via LDAP möglich sein ... ebenfalls mit TLS gesichert.
Außerdem soll das LDAP-Verzeichnis nicht für Anonyme Benutzer einsehbar sein.
Soweit, so gut - Der LDAP-Server läuft (inkl. konfigurierten TLS) und Anmeldungen von LDAP-Benutzern am System ist ebenfalls möglich. Die LDAP Benutzer können auch über "passwd" ihr LDAP-Password ändern.
"getent passwd" und "getent group" liefern auch brav lokale Benutzer/Gruppen sowie LDAP-Einträge.
Was jedoch nicht funktioniert - und ich komm einfach nicht dahinter warum - ist das wechseln von einem lokalen Benutzer zu einem LDAP-Benutzer oder von einem LDAP-Benutzer zu einem anderen LDAP-Benutzer - beides mit "su $user".
Folgende Fehlermeldungen erscheinen beim wechseln von einem lokalen User zu einem LDAP-User:
Der Lokale Benutzer ist "srv-admin" und der LDAP-Benutzer "testusr3"
Auf der Konsole:
Code:
srv-admin@mastertux:~$ su testusr3
Password:
setgid: Die Operation ist nicht erlaubt
In /var/log/auth.log:
Code:
Sep 18 11:56:57 mastertux su[5209]: Successful su for testusr3 by srv-admin
Sep 18 11:56:57 mastertux su[5209]: + /dev/pts/1 srv-admin:testusr3
Sep 18 11:56:57 mastertux su[5209]: bad group ID `16985' for user `testusr3': Operation not permitted
Folgende Fehlermeldungen erscheinen beim wechseln von einem LDAP-User zu einem anderen LDAP-User:
Auf der Konsole:
Code:
testusr2@mastertux:~$ su testusr3
Password:
initgroups: Die Operation ist nicht erlaubt
In /var/log/auth.log:
Code:
Sep 18 12:01:40 mastertux su[5223]: Successful su for testusr3 by testusr2
Sep 18 12:01:40 mastertux su[5223]: + /dev/pts/1 testusr2:testusr3
Sep 18 12:01:40 mastertux su[5223]: initgroups failed for user `testusr3': Operation not permitted
Die LDAP-Benutzer haben übrigens als primäre Gruppe eine LDAP-Gruppe (LDAP_Users) eingetragen, ansonsten besitzen sie keine Gruppenmitgliedschaften.
Das Interessante ist ... wenn ich folgende Einträge zu TLS aus den Config-Dateien "libnss-ldap.conf" und "pam_ldap.conf" herausnehme funktioniert die Sache ohne Probleme:
Code:
ssl start_tls
tls_checkpeer yes
tls_cacertfile /etc/ssl/certs/ca-certificates.crt
Daher dürfte es ein Problem mit TLS sein - nur welches? Das normale anmelden funktioniert doch problemlos. Auch das Anmelden an den Verzeichnis-Dienst per LDAP-Admin von einer Windows-Maschine via TLS funktioniert reibungslos.
Auch der Befehl "ldapsearch -xLLL -ZZ -W -D cn=admin,cn=config" bringt ohne Fehler Ergebnisse
Alle LDAP-Benutzer können zudem Problem auf einen lokalen-Benutzer via "su" wechseln. Root kann problemlos auf Lokale und LDAP-Benutzer via "su" wechseln.
Was jedoch noch auffällig ist ... sobald "nscd" gestoppt wird, kann kein Benutzer - außer root - "su" einsetzen. Ein lokaler Benutzer kann auch nicht mehr mit "su" zum root-Account wechseln. - Erst wenn "nscd" wieder gestartet ist, funktioniert "su" wieder.
Detail-Informationen zu meiner Konfiguration:
TLS für den OpenLDAP-Server hab ich nach einen How-To von Ubuntu konfiguriert - http://wiki.ubuntuusers.de/OpenLDAP#Sichere-bertragung-mit-TLS-SSL
Ich hab hierzu mittels CA.pl - wie im Howto beschrieben - eine eigene CA eingerichtet und darüber das Server-Zertifikat erstellt.
Außerdem habe ich zusätzlich das Paket "ssl-cert" via apt installiert und den Benutzer "openldap" zur Gruppe "ssl-cert" hinzugefügt da der SLAPD ansonsten nicht startet - siehe https://wiki.debian.org/LDAP/OpenLDAPSetup#Configuring_LDAPS
Meine config in cn=config des SLAPD zu TLS sieht wie folgt aus:
Code:
olcTLSCACertificateFile: /etc/ssl/certs/ldap_slapd_cacert.pem
olcTLSCertificateFile: /etc/ssl/certs/ldap_slapd_cert.pem
olcTLSCertificateKeyFile: /etc/ssl/private/ldap_slapd_key.pem
/etc/ldap/ldap.conf:
Code:
BASE dc=sascha-bauer,dc=net
URI ldap://mastertux.sascha-bauer.net
ldap_version 3
#SIZELIMIT 12
#TIMELIMIT 15
#DEREF never
# TLS certificates (needed for GnuTLS)
ssl start_tls
TLS_CACERT /etc/ssl/certs/ca-certificates.crt
libnss-ldap und pam_ldap hab ich über apt installiert und mittels dpgkconfigure konfiguriert.
Die Config-Dateien "libnss-ldap.conf" und "pam_ldap.conf" habe ich um die TLS-Parameter ergänzt, welche ich weiter oben bereits notiert habe und zusätzlich in beiden Dateien die Optionen "binddn" und "bindpw" gesetzt, da auf meinem LDAP-Verzeichnis kein anonymer Zugriff möglich sein soll:
Code:
binddn cn=usr_ldapread,ou=service,dc=sascha-bauer,dc=net
bindpw XXXXXXX
Die Config-Datei "/etc/pam.d/common-auth" sowie "/etc/pam.d/common-password" habe ich auch etwas angepasst, da im SYSLOG immer Warnings/Fehler auftauchen (von pam_unix) wenn sich ein LDAP-User anmeldet.
/etc/pam.d/common-auth:
Code:
auth [success=1 default=ignore] pam_succeed_if.so quiet uid > 4999 debug
auth [success=2 auth_err=1 default=ignore] pam_unix.so nullok_secure
auth [success=1 default=ignore] pam_ldap.so
auth requisite pam_deny.so
auth required pam_permit.so
/etc/pam.d/common-password:
Code:
password [success=1 default=ignore] pam_succeed_if.so quiet uid > 4999
password [success=2 default=ignore] pam_unix.so obscure sha512
password [success=1 user_unknown=ignore default=die] pam_ldap.so try_first_pass
password requisite pam_deny.so
password required pam_permit.so
In common-session habe ich zu dem am Ende noch "session required pam_mkhomedir.so" angefügt, damit Home-Dirs automatisch erstellt werden.
Und zu guter letzt noch die /etc/nsswitch.conf:
Code:
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
Kennt das beschriebene Problem bereits jemand und hat eine Lösung parat? Wo kann hier der Fehler liegen?
Muss ich davon ausgehen das diese Problem evtl. auch anders Dinge beeinflussen kann, welche ich an LDAP binden möchte (SAMBA zb) oder bleibt es nur beim "su"-Problem?
Für eine Lösung wäre ich sehr dankbar

PS: Hoffentlich ist das der richtige Forums-Bereich