OpenLDAP + posixAccount mit PW

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

OpenLDAP + posixAccount mit PW

Beitrag von Duff » 05.01.2010 16:40:44

Hallo,

ich mal eine Frage zu OpenLDAP.

Und zwar habe ich einen OpenLDAP-Server konfiguriert und möchte nun die gesamte Authentifizierung und Autorisierung am System über OpenLDAP realisieren.
Ich kann vom Client aus auch per ldapsearch auf den Directory Information Tree zugreifen.

Doch wie bekomme ich das korrekt verschlüsselte Passwort ins LDAP von einem user?
Muss ich dieses nun im Klartext angeben?

Wie kann ein User dieses Passwort später ändern?


Beispiel:
ServerA mit userA. Dieser user (userA) existiert nur auf dem ServerA und ist (bis auf das Passwort) im LDAP-Server auf ServerA eingerichtet.
Nun soll eine Anmeldung mit userA vom Client1 über den LDAP-Server erfolgen.


Wie muss der userA (und später mehrere) richtig auf dem ServerA im LDAP-Server eingerichtet werden (das Passwort!)?


Danke.
Oh, yeah!

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: OpenLDAP + posixAccount mit PW

Beitrag von Duff » 06.01.2010 16:05:56

So, konnte nun mein LDAP-Problem, wie ich es oben beschrieben habe, lösen.

Jedoch stehe ich nun vor dem nächsten Problem. Habe diesbezüglich schon sehr viel gegoogelt, jedoch brachte mich keines der Lösungen weiter.


Ich versuche nun die Übertragung zwischen OpenLDAP-Server und Client zu verschlüsseln. Dazu habe ich auf dem Server auch die entsprechenden Zertifikate mit CA und key erstellt.
Allerdings läßt sich durch diese Änderungen in der Datei /etc/ldap/sldap.conf der Daemon slapd nicht mehr starten.

Als Fehlermeldung erhalte ich immer wieder:

Code: Alles auswählen

main: TLS init def ctx failed: -1
Jemand eine Idee?

Bin für jeden Tipp dankbar!!!
Oh, yeah!

sdh82
Beiträge: 160
Registriert: 07.10.2006 22:39:04

Re: OpenLDAP + posixAccount mit PW

Beitrag von sdh82 » 06.01.2010 17:24:59

Die Cipher muss gnuTLS, kein openSSL.

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: OpenLDAP + posixAccount mit PW

Beitrag von Duff » 06.01.2010 18:25:13

Sorry, aber wie genau meinst du das jetzt?

Habe die Zertifikate mit dem Skript CA.pl erstellt.
Oh, yeah!

sdh82
Beiträge: 160
Registriert: 07.10.2006 22:39:04

Re: OpenLDAP + posixAccount mit PW

Beitrag von sdh82 » 06.01.2010 19:20:56

Debian openLDAP verwendet die Verschlüsselung nicht per openSSL sondern gnuTLS, also musst schaun, dass die TLS Cipher unter slapd.conf nicht openSSL Cipher verwendet, sondern die von gnuTLS.

Alternativ kannst du dein eigenes LDAP mit openSSL Bibliotheken, statt gnuTLS bauen, ich habe, nachdem ich die negativen Punkten von gnuTLS las (Berichte sind im Internet, Bug- und Mailinglist zu finden), auch die Pakete selber umgebaut und die Verschlüsselung wieder in SSL Cipher umgestellt.

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: OpenLDAP + posixAccount mit PW

Beitrag von Duff » 06.01.2010 19:30:19

Meinst du das etwa so:

Code: Alles auswählen

[gnutls-cli -l /code]
Daraus eine Verschlüsselungsart auswählen und beim Parameter [b]TLSCipherSuite[/b] eintragen?

Habe aktuell in der slapd.conf den Parameter [b]TLSCipherSuite[/b] weggelassen. Kann den Dienst aber trotzdem nicht starten.
Oh, yeah!

sdh82
Beiträge: 160
Registriert: 07.10.2006 22:39:04

Re: OpenLDAP + posixAccount mit PW

Beitrag von sdh82 » 06.01.2010 20:29:28

Dann musst wohl debuggen, oder fehlt dein slapd.conf was.

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: OpenLDAP + posixAccount mit PW

Beitrag von Duff » 07.01.2010 08:11:21

sdh82 hat geschrieben:Dann musst wohl debuggen, oder fehlt dein slapd.conf was.
Habe schon die verschiedesten Debug-Level beim Start von slapd angegeben, aber die Ausgabe ist leider immer die gleiche.

Code: Alles auswählen

main: TLS init def ctx failed: -1
[edit]
Bei Angabe von TLSCipherSuite bekomme ich nun folgende Fehlermeldung (habe schon verschiedene Cipher-Werte probiert).

Code: Alles auswählen

TLS: could not set cipher list ...
main: TLS init def ctx failed: -1
[/edit]
Oh, yeah!

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: OpenLDAP + posixAccount mit PW

Beitrag von Duff » 07.01.2010 09:08:29

Nehme ich die 3 Zeilen bezüglich TLS aus der Konfigurationsdatei, funktioniert alles wunderbar!

Hier mal meine Konfigdatei /etc/ldap/slapd.conf

Code: Alles auswählen

include         /etc/ldap/schema/core.schema
include         /etc/ldap/schema/cosine.schema
include         /etc/ldap/schema/nis.schema
include         /etc/ldap/schema/inetorgperson.schema
pidfile         /var/run/slapd/slapd.pid
argsfile        /var/run/slapd/slapd.args
loglevel        256
modulepath      /usr/lib/ldap
moduleload      back_hdb
sizelimit 500
tool-threads 1
TLSCACertificateFile    /etc/ldap/certs/newcert.pem
TLSCertificateKeyFile   /etc/ldap/certs/ldapkey.pem
TLSCertificateFile      /etc/ldap/certs/cacert.pem
TLSVerifyClient         allow
backend         hdb
database        hdb
suffix          "dc=simpsons"
rootdn          "cn=ldapadmin,dc=simpsons"
rootpw          {SSHA}ZdyIWSKALSzXHVpigWJloZGGtIzD2JlU
directory       "/var/lib/ldap"
dbconfig set_cachesize 0 2097152 0
dbconfig set_lk_max_objects 1500
dbconfig set_lk_max_locks 1500
dbconfig set_lk_max_lockers 1500
index           objectClass eq
lastmod         on
checkpoint      512 30
access to attrs=userPassword
        by self write
        by * auth
access to *
        by * read
Und die Dateirechte von certs und Dateien (habe hier verschiedene ausprobiert):

Code: Alles auswählen

insgesamt 11
drwxr-xr-x 2 root root 1024  7. Jan 09:26 .
drwxr-xr-x 7 root root 1024  7. Jan 09:29 ..
-rw-r--r-- 1 root root 3189  7. Jan 09:26 cacert.pem
-rw-r--r-- 1 root root  887  7. Jan 09:26 ldapkey.pem
-rw-r--r-- 1 root root 3101  7. Jan 09:26 newcert.pem
Nochwas:
Ich weiß zwar nicht ob es wichtig ist, aber ich habe als FQDN den Namen ldapmaster verwendet. Dieser steht sowohl als cn im Zertifikat newcert.pem als auch in der Datei /etc/hosts.
Oh, yeah!

sdh82
Beiträge: 160
Registriert: 07.10.2006 22:39:04

Re: OpenLDAP + posixAccount mit PW

Beitrag von sdh82 » 07.01.2010 10:24:52

Sicher?

Code: Alles auswählen

TLSCACertificateFile    /etc/ldap/certs/newcert.pem
TLSCertificateFile      /etc/ldap/certs/cacert.pem
Die ldapkey mag SSL schonmal gar nicht, dass diese world-readable ist.
Änder mal das Zertifikat und Key für LDAP den Owner, musst dann nicht world-readable machen.

Das Zertifikat hängt mit FQDN zusammen, wenn diese nicht zusammenpassen, wird dann kein Handshake stattfinden.

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: OpenLDAP + posixAccount mit PW

Beitrag von Duff » 07.01.2010 11:16:59

sdh82 hat geschrieben:Sicher?

Code: Alles auswählen

TLSCACertificateFile    /etc/ldap/certs/newcert.pem
TLSCertificateFile      /etc/ldap/certs/cacert.pem
D'OH!!!

Die beiden Zertifikate müssen natürlich vertauscht werden. Dann funktioniert es auch.

Ich kann nun per ldapsearch auf dem Server und Client Abfragen durchführen.

Allerdings weiß ich noch nicht genau, was ich auf dem Client in libnss-ldap.conf, ldap.conf und pam_ldap.conf genau eintragen muss, damit ein

Code: Alles auswählen

su - <user-der-nur-im-LDAP-steht>
wieder
funktioniert!
Oh, yeah!

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: OpenLDAP + posixAccount mit PW

Beitrag von Duff » 07.01.2010 16:07:16

So, meiner Meinung nach funktioniert nun die TLS-Verbindung zwischen dem Server und dem Client.

Wenn ich jetzt einen tcpdump oder snort mitlaufen lasse, kann ich keine Passwörter mehr im Klartext finden.

Server:

Code: Alles auswählen

# Datei /etc/ldap/ldap.conf:
BASE    dc=simpsons
URI     ldaps://ldapmaster:636
TLS_CACERT      /etc/ldap/certs/cacert.pem
TLS_REQCERT     allow
TLS_CERT        /etc/ldap/certs/newcert.pem
TLS_KEY         /etc/ldap/certs/ldapkey.pem

Code: Alles auswählen

# Datei /etc/ldap/slapd.conf:
include         /etc/ldap/schema/core.schema
include         /etc/ldap/schema/cosine.schema
include         /etc/ldap/schema/nis.schema
include         /etc/ldap/schema/inetorgperson.schema
pidfile         /var/run/slapd/slapd.pid
argsfile        /var/run/slapd/slapd.args
loglevel        256
modulepath      /usr/lib/ldap
moduleload      back_hdb
sizelimit 500
tool-threads 1
access to attrs=userPassword
        by self write
        by * auth
access to *
        by * read
TLSCipherSuite  +RSA:+AES-256-CBC:+SHA1
TLSCertificateFile      /etc/ldap/certs/newcert.pem
TLSCertificateKeyFile   /etc/ldap/certs/ldapkey.pem
TLSCACertificateFile    /etc/ldap/certs/cacert.pem
TLSVerifyClient         allow
backend         hdb
database        hdb
suffix          "dc=simpsons"
rootdn          "cn=ldapadmin,dc=simpsons"
rootpw          {SSHA}ZdyIWSKALSzXHVpigWJloZGGtIzDL1KA
directory       "/var/lib/ldap"
dbconfig set_cachesize 0 2097152 0
dbconfig set_lk_max_objects 1500
dbconfig set_lk_max_locks 1500
dbconfig set_lk_max_lockers 1500
index           objectClass eq
lastmod         on
checkpoint      512 30

Code: Alles auswählen

# Datei /etc/default/slapd
SLAPD_CONF=
SLAPD_USER="openldap"
SLAPD_GROUP="openldap"
SLAPD_PIDFILE=
SLAPD_SERVICES="ldaps://ldapmaster:636/"
SLAPD_SENTINEL_FILE=/etc/ldap/noslapd
SLAPD_OPTIONS=""
Client:

Code: Alles auswählen

# Datei /etc/ldap/ldap.conf:
BASE    dc=simpsons
URI     ldaps://ldapmaster:636
TLS_CACERT      /etc/ldap/certs/cacert.pem
TLS_REQCERT     demand
TLS_CERT        /etc/ldap/certs/newcert.pem
TLS_KEY         /etc/ldap/certs/ldapkey.pem

Code: Alles auswählen

# Datei  /etc/libnss-ldap.conf:
ssl on
tls_cacertfile      /etc/ldap/certs/cacert.pem
tls_cert        /etc/ldap/certs/newcert.pem
tls_key         /etc/ldap/certs/ldapkey.pem
uri ldaps://ldapmaster:636
base    dc=simpsons
host    ldapmaster
ldap_verson     3
bind_policy     soft
pam_password    crypt
nss_schema      nis
nss_map_attribute       uniqueMember member
pam_filter      objectclass=posixAccount
nss_base_passwd dc=simpsons

Code: Alles auswählen

# Datei /etc/pam_ldap.conf:
ssl on
tls_cacertfile      /etc/ldap/certs/cacert.pem
tls_cert        /etc/ldap/certs/newcert.pem
tls_key         /etc/ldap/certs/ldapkey.pem
uri ldaps://ldapmaster:636
base    dc=simpsons
host    ldapmaster
ldap_verson     3
bind_policy     soft
pam_password    crypt
nss_schema      nis
nss_map_attribute       uniqueMember member
pam_filter      objectclass=posixAccount
nss_base_passwd dc=simpsons

Code: Alles auswählen

# Datei /etc/pam.d/common-account:
account sufficient      pam_unix.so
account sufficient      pam_ldap.so
account required        pam_deny.so

Code: Alles auswählen

# Datei /etc/pam.d/common-auth:
auth    sufficient      pam_unix.so
auth    sufficient      pam_ldap.so use_first_pass
auth    required        pam_deny.so

Code: Alles auswählen

# Datei /etc/pam.d/common-password:
password required       pam_passwdqc.so min=disabled,16,12,8,6 max=256
password sufficient     pam_unix.so use_authtok
password sufficient     pam_ldap.so use_first_pass use_authtok
password required       pam_deny.so

Code: Alles auswählen

# Datei /etc/pam.d/common-session:
session required        pam_unix.so
session optional        pam_ldap.so
session optional        pam_mkhomedir.so
Ein paar Sachen stören mich allerdings noch.
Siehe hier:
[np]http://debianforum.de/forum/pastebin.ph ... ew&s=34131[/np]
Oh, yeah!

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: OpenLDAP + posixAccount mit PW

Beitrag von Duff » 14.04.2010 11:05:17

So, muss diesen "alten" Thread leider nochmal rausgraben.

Unter debian funktioniert alles soweit ganz gut.

Nur habe ich Probleme mit der Einbindung von anderen LDAP-Clients und deren PAM Steuerung. Speziell bei Solaris.
Oh, yeah!

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: OpenLDAP + posixAccount mit PW

Beitrag von Duff » 20.04.2010 15:29:31

Hat jemand vielleicht Erfahrungen mit openldap unter linux und als Client auch Solaris (10)?

Ich kann zwar auf dem Client mit getent passwd alle User aus dem ldap-server auflisten und auch per su zu diesen Wechseln, allerdings bekomme ich beim Ändern des root-Passworts per passwd immer ein segmentation fault geliefert.

Mit einem debian client funktioniert alles wunderbar.
Oh, yeah!

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: OpenLDAP + posixAccount mit PW

Beitrag von ThorstenS » 20.04.2010 19:53:00

mönsch duff! Nach 5951 Posts dürftest du doch langsam wissen, wie man zu einer befriedigenden Lösung kommt.

Poste einfach deine Änderungen/Einstellungen am Solaris Client...
(nein, ich kann dir dabei leider nicht helfen)

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: OpenLDAP + posixAccount mit PW

Beitrag von Duff » 21.04.2010 08:15:35

Das Problem ist, dass ich im Netz zwar sehr viele verschiedene Sachen dazu gefunden habe, ich diese aber bei mir so nicht umsetzen konnte.
Ich möchte nicht den native ldap-client von Solaris benutzen, da dieser wie eine Art Proxy eingerichtet werden muss.

Die Frage ist, ob vielleicht schon mal jemand ein solches Szenario aufgebaut hat und mir Tips bei Solaris für die Datei /etc/pam.conf geben kann?
Oh, yeah!

Sarem_Avuton
Beiträge: 546
Registriert: 16.12.2004 09:58:27
Wohnort: Leipzig

Re: OpenLDAP + posixAccount mit PW

Beitrag von Sarem_Avuton » 21.04.2010 08:57:37

Hallo Duff,

in dem Link ist eine pam config und Einrichtung. Sieht an sich schlüssig aus.

vg Jörg

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: OpenLDAP + posixAccount mit PW

Beitrag von Duff » 22.04.2010 08:29:30

Danke für den Link. Den kannte ich aber schon und hilft mir leider nicht weiter.

Mein Problem besteht beim Ändern des Passworts. Nachdem ich dies mit passwd <user> durchführe, wird ein segmentation fault geworfen auf dem Solaris System.
Unter debian funktioniert es einwandfrei.
Oh, yeah!

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: OpenLDAP + posixAccount mit PW

Beitrag von Duff » 04.05.2010 07:56:31

Vielleicht noch jemand einen Tipp???
(Am besten wären eigene Erfahrungen ;-))
Oh, yeah!

Antworten