ubuntuusers.de

LDAP mit TLS - slapd backend database

Status: Gelöst | Ubuntu-Version: Server 8.10 (Intrepid Ibex)
Antworten |

owl-eye

Anmeldungsdatum:
17. Dezember 2008

Beiträge: 7

Kürzlich habe ich von Ubuntu Server 8.04 auf 8.10 geupgradet, da mit 8.04 "angeblich" (wegen gnuTLS) kein TLS aufbaubar war (habe vieles versucht). Jetzt musste ich mich erstmal auf den neuen Style mit "slapd backend database" statt der slapd.conf Konfiguration einarbeiten und hänge an der TLS konfiguration. 🐸

Die aktuelle backend database Konfiguration sieht wie folgt aus ("meinedomain", ACL & Schema ändere ich noch):

ldapsearch -xLLL -b cn=config -D cn=admin,cn=config -W olcDatabase={1}hdb

dn: olcDatabase={1}hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {1}hdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=meinedomain,dc=org
olcAccess: {0}to attrs=userPassword,shadowLastChange by dn="cn=admin,dc=meinedomain,dc=org" write by anonymous auth by self write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=admin,dc=meinedomain,dc=org" write by * read
olcLastMod: TRUE
olcDbCheckpoint: 512 30
olcDbConfig: {0}set_cachesize 0 2097152 0
olcDbConfig: {1}set_lk_max_objects 1500
olcDbConfig: {2}set_lk_max_locks 1500
olcDbConfig: {3}set_lk_max_lockers 1500
olcDbIndex: objectClass eq

Für die TLS Konfiguration habe ich folgendes getan:

Benutzer openldap zur Gruppe ssl-cert aufnehmen, damit von /etc/ssl/private/ gelesen werden darf:

sudo adduser openldap ssl-cert

Besitzer & Schreib-/Lese-Rechte des Privaten Schlüssels anpassen:

sudo chgrp ssl-cert /etc/ssl/private/serverkey.pem
sudo chmod 640 /etc/ssl/private/serverkey.pem

Eine Datei mit folgendem Inhalt anlegen...:

sudo vim ldif_datensaetze/TLSconfiguration.ldif

Mit dem Inhalt:

dn: olcDatabase={1}hdb,cn=config
add: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/ssl/certs/cacert.pem
-
add: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ssl/certs/servercert.pem
-
add: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ssl/private/serverkey.pem

... und Änderung durchführen:

ldapmodify -v -D cn=admin,cn=config -W -H ldap://localhost -x -Z -f ~/TLSconfiguration.ldif

Der letzte Befehl (ldapmodify) bringt sodann folgende Fehlermeldung, die ich nicht deuten kann:

ldap_modify: Object class violation (65)
        additional info: attribute 'olcTLSCACertificateFile' not allowed

Hinweis: Wobei sich die Meldung anpasst wenn man olcTLSCACertificateFile weglässt, dann wird nämlich olcTLSCertificateFile stattdessen angeprangert.

Die Zertifikate und der Key existieren an den angegebenen Pfaden. Meine Vermutung ist, dass slapd nicht mit "support for Transport Layer Security" gebuildet wurde, was ziemlich unsinnig wäre... es sei denn, man wollte dem gnuTLS-Problem entgehen?! 😕

Wo hier mein Denkfehler liegt sehe ich nicht, vielleicht kann mir jemand helfen?

owl-eye

(Themenstarter)

Anmeldungsdatum:
17. Dezember 2008

Beiträge: 7

OK, hatte mal wieder Zeit für dieses Problem... Ich hatte das ldapmodify an die falsche Objektklasse gerichtet; nämlich an "dn: olcDatabase={1}hdb,cn=config" anstatt nur an "dn: cn=config".

Richtig sollte die TLSconfiguration.ldif Datei folglich lauten:

dn: cn=config
changetype: modify
add: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/ssl/certs/cacert.pem
-
add: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ssl/certs/servercert.pem
-
add: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ssl/private/serverkey.pem

Die TLS-Konfiguration landet somit in olcGlobal, welches mit folgendem Befehl geprüft werden kann:

ldapsearch -xLLL -b cn=config -D cn=admin,cn=config -W olcGlobal -H ldap://localhost > ldif_datensaetze/olcGlobal.ldif

vim ldif_datensaetze/olcGlobal.ldif

Die olcTLS* Einstellungen stehen sehr früh am Dateianfang.

Antworten |