Univention Corporate Server (UCS) » LDAP-Server und Listener/Notifier-Replikation

ID #1120

Wie kann mit UCS 2.4 eine Replikation zu einem externen LDAP-Server realisiert werden?

Problem: Ein externer LDAP-Server soll lesend an den UCS 2.4 Verzeichnisdienst angebunden werden

Lösung: Ein Slurpd-ähnliches Replikationsverfahren ist mit einem Syncrepl-ProxySetup realisierbar

Die für die folgende Anleitung notwendigen Dateien können in Form eines tar-Archivs aus dem Anhang dieses Artikels heruntergeladen und auf einen UCS DC Master kopiert werden. Der anzubindende externe LDAP Server ist im folgenden Beispiel als 'extldap.univention.test' bezeichnet, für die UCS Domäne wird in der Anleitung als BasisDN 'dc=univention,dc=test' verwendet, diese Namen sind an die lokalen Gegebenheiten anzupassen. Die Anleitung wurde unter Verwendung eines UCS DC Masters Version 2.4 sowie eines Debian 6.0 Squeeze erstellt.

Im Wesentlich sind vier Schritte notwendig, die als root-Benutzer auf dem UCS DC Master und dem anzubindenden System auszuführen sind:

Als erstes sollte im UDM ein Rechner-Objekt vom Typ IP-Managed Client für extldap.univention.test mit DNS-Einträgen angelegt werden. Außerdem müssen SSL-Zertifikate für das System erzeugt werden.

## 1. Erzeugen des SSL Zertifikats des Rechnerobjekts

univention-certificate new -name extldap.univention.test -days 730
ln -s /etc/univention/ssl/extldap.univention.test  /etc/univention/ssl/extldap

 

Im nächsten Schritt werden die Archivdateien auf dem Master verteilt und samt SSL Zertifikaten auf den externen LDAP-Server kopiert:

## 2. Installation der Dateien auf dem UCS DC Master
tar -xvf syncrepl-proxy-setup.tgz
mv UCS_dc_master/8*.conf /etc/univention/templates/files/etc/ldap/slapd.conf.d/
mv UCS_dc_master/syncrepl-proxy.conf /etc/univention/templates/files/etc/ldap/
mv UCS_dc_master/syncrepl-proxy.info /etc/univention/templates/info/
ucr commit /etc/ldap/slapd.conf
ucr commit /etc/ldap/syncrepl-proxy.conf

/etc/init.d/slapd stop
slapcat > /tmp/data.ldif

scp remote_system/slapd.conf /tmp/data.ldif extldap.univention.test:
rm /tmp/data.ldif
rsync -aR /usr/share/univention-ldap/schema extldap.univention.test:/
rsync -aR /etc/univention/ssl/extldap.univention.test extldap.univention.test:/
rsync -aR /etc/univention/ssl/ucsCA/CAcert.pem extldap.univention.test:/

Damit sind die Template-Erweiterungen auf dem UCS DC Master installiert und es wurden der LDAP-Datenauszug, eine beispielhafte Konfigurationsdatei für den externen LDAP-Server, die Univention-Schema Dateien sowie SSL-Zertifikate auf das externe System kopiert. Im nächsten Schritt wird die Konfiguration des externen LDAP-Servers angepasst und der aktuelle Auszug der LDAP-Daten eingespielt. Dabei ist zu beachten, dass hier nur eine minimale slapd.conf installiert wird, die nach Bedarf um lokale Anpassungen zu ergänzen ist:

## 3. Auf extldap.univention.test
/etc/init.d/slapd stop
cp /etc/ldap/slapd.conf /etc/ldap/slapd.conf.bak
cp /root/slapd.conf /etc/ldap

Die folgenden Ausdrücke sind in der Datei "/etc/ldap/slapd.conf" durch die lokal zutreffenden zu ersetzen, da sie sich nur auf die hier genannten Beispiele beziehen:

extldap.univention.test #ersetzen durch den FQDN des externen LDAP Hosts
dc=univention,dc=test #ersetzen durch die tatsächlich verwendete LDAP Basis
REMOTE_UPDATE_PASSWORD #Passwort welches zum Update der LDAP Datenbank verwendet werden soll

 

mkdir /var/tmp/ldap_backup_dir
mv /var/lib/ldap/*.* /var/tmp/ldap_backup_dir
slapadd -f /etc/ldap/slapd.conf -l /root/data.ldif
chown openldap.openldap /var/lib/ldap/*.*
chgrp openldap /etc/ldap/slapd.conf
chgrp -R openldap /etc/univention/ssl
/etc/init.d/slapd start

Damit sollte die Konfiguration des externen LDAP-Servers abgeschlossen sein. Es sollte sichergestellt werden, dass dieser nun vom UCS DC Master aus per LDAPS-Protokoll erreichbar ist. Dies kann z.B. mit folgender Suchanfrage vom UCS DC Master aus überprüft werden:

ldapsearch -x -H ldaps://extldap.univention.test -b cn=Subschema -s base

Falls es sich bei dem externen System um ein Debian-System handelt, ist dazu ggf. die Variable 'SLAPD_SERVICES' in /etc/default/slapd anzupassen. Außerdem kann hier über die Variable 'SLAPD_CONF' die Datei "/etc/ldap/slapd.conf" als Konfigurationsdatei für den SLAPD festgelegt werden, falls dies nicht der Standard der verwendeten OpenLDAP Version ist.

Wenn die LDAPS-Verbindung funktioniert, kann die Konfiguration des Syncrepl-Proxys auf dem UCS DC Master aktiviert werden. Dazu ist das gleiche Passwort 'REMOTE_UPDATE_PASSWORD' in einer Datei zu hinterlegen, das in die Konfiguration des externen LDAP-Servers eingetragen wurde. Zusätzlich ist die Adresse des externen LDAP-Servers in Form einer LDAP-URI in die UCR Variable ldap/replica/uri einzutragen. Sollen mehrere Systeme angebunden werden, so können die entsprechenden LDAP-URI durch Leerzeichen getrennt in die UCR-Variable eingetragen werden und weitere replica-Passwort-Dateien angelegt werden. Die Nummer im Namen der Passwortdateien ist für jedes weitere System um eins zu erhöhen.

## 4. Aktivierung des Syncrepl-Proxy auf dem UCS DC Master
echo -n 'REMOTE_UPDATE_PASSWORD' >  /etc/replica-001.secret
chmod 600 /etc/replica-001.secret
univention-config-registry set ldap/replica/uri='ldaps://extldap.univention.test/'
ucr commit /etc/ldap/syncrepl-proxy.conf

/etc/init.d/slapd start

Die Replikation findet vom UCS DC Master ausgehend über LDAPS zum Hostnamen des externen LDAP-Serversystems statt. Dafür ist eine Namensauflösung z.B. per DNS notwendig und der Hostname muss vollständig angegeben sein, damit die Überprüfung des SSL-Zertifikats erfolgreich ist.

Es ist empfehlenswert die Systeme nach der Durchführung der Anpassungen einmal Neuzustarten.

Zum Test sollte z.B. die Beschreibung an einem existierenden Benutzer geändert werden und eine Replikation in das externe LDAP-Verzeichnis z.B. per ldapsearch überprüft werden. Zur Fehleranalyse kann es sinnvoll sein, auf dem externen LDAP-Server in der Datei slapd.conf den loglevel z.B. auf den Wert 'config stats' zu setzen und den LDAP-Server neu zu starten.

Um eine ebenso bequeme LDAP-Suche per "ldapsearch -x <Ausdruck>" auf dem externen LDAP-Serversystem zu ermöglichen wie dies auf UCS Systemen funktioniert, sollten dort in der Datei "/etc/ldap/ldap.conf" die folgenden Parameter gesetzt werden:

TLS_CACERT /etc/univention/ssl/ucsCA/CAcert.pem
HOST <FQDN des Systems>
BASE    <LDAP BASIS>

Weiterführende Informationen:

angehängte Dateien: syncrepl-proxy-setup.tgz

Tags: LDAP, Slurpd, Syncrepl, Syncrepl-Proxy

Verwandte Artikel:

Letzte Änderung der FAQ: 2011-08-03 14:59
Autor: Arvid Requate
Revision: 1.8

Digg it! Share on Facebook FAQ ausdrucken FAQ weiterempfehlen Als PDF-Datei anzeigen
Übersetzungsvorschlag für Übersetzungsvorschlag für
Bewertung der Nützlichkeit dieser FAQ:

Durchschnittliche Bewertung: 2.5 (2 Abstimmungen)

vollkommen überflüssig 1 2 3 4 5 sehr wertvoll

Kommentieren nicht möglich