Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
anwenderwiki:erweiterungen:ldap-replikation [2020/09/15 03:03] – jrichter | anwenderwiki:erweiterungen:ldap-replikation [2020/09/15 03:53] (aktuell) – jrichter | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | {{tag> ldap}} | ||
+ | |||
+ | ====== Ubuntu-Server mit LDAP-Replikation einrichten ====== | ||
+ | |||
+ | |||
+ | Bei Ausfall des Linuxmuster-Servers während Wartungsarbeiten oder eines Backupprozesses ist der LDAP-Dienst nicht verfügbar. Somit kann man sich auch nicht auf externe Dienste wie z. B. einem Moodle oder einem Schulportfolio anmelden, da diese meist auf den internen LDAP zugreifen. | ||
+ | |||
+ | Als Lösung bietet sich an, einen zusätzlichen (virtuellen) Server, einen sogenannten " | ||
+ | In der Firewall und dem Router kann man dann für beide LDAP-Server eine Portweiterleitung eintragen. Der zusätzliche Server wird in dieser Anleitung ins grüne Netz gesetzt, möglich wäre auch ihn in die DMZ (oranges Netz) zu setzen. | ||
+ | < | ||
+ | ===== 1. Vorbereitungen am linuxmuster.net Server ===== | ||
+ | |||
+ | Der neue " | ||
+ | Dann die Base-DN und das ldap-admin-Kennwort abfragen und notieren: | ||
+ | # grep BASE / | ||
+ | # grep rootpw / | ||
+ | |||
+ | ===== 2. Installation von Ubuntu 12.04-server als " | ||
+ | Es bietet sich dafür bei virtuellen Umgebungen natürlich ein " | ||
+ | * mit der Option openssh-server | ||
+ | * root danach ein Kennwort geben | ||
+ | * openldap installieren, | ||
+ | ===== 3. LDAP Konfiguration vom linuxmuster.net zum server2 übertragen ===== | ||
+ | |||
+ | Am linuxmuster.net server als root anmelden. Der server2 sollte in den Workstations importiert sein, sonst seine IP benutzen: | ||
+ | # cd /etc/ldap | ||
+ | # scp / | ||
+ | # scp / | ||
+ | # scp / | ||
+ | ===== 4. Konfiguration von linuxmuster.net ändern ===== | ||
+ | |||
+ | Datei editieren, fehlende Zeilen ergänzen in **''/ | ||
+ | < | ||
+ | ... | ||
+ | modulepath | ||
+ | moduleload | ||
+ | moduleload | ||
+ | ... | ||
+ | checkpoint | ||
+ | |||
+ | overlay syncprov | ||
+ | syncprov-checkpoint 100 2 | ||
+ | syncprov-sessionlog 100 | ||
+ | ...</ | ||
+ | Danach Konfigdatei aktivieren (auf dem Server reicht oft auch schon ein einfaches '' | ||
+ | # rm -r / | ||
+ | # slaptest -f / | ||
+ | # chown -R openldap: | ||
+ | # service slapd restart | ||
+ | |||
+ | ===== 5. Konfiguration von server2 bearbeiten ===== | ||
+ | Datei editieren, fehlende Zeilen ergänzen: **''/ | ||
+ | * bei **searchbase** und **binddn** die Base-DN verwenden | ||
+ | * bei **credentials** das ldap-admin-Kennwort einsetzen statt " | ||
+ | * " | ||
+ | * " | ||
+ | < | ||
+ | ... | ||
+ | checkpoint 512 30 # diese Zeile suchen, danach die folgenden einfügen | ||
+ | |||
+ | syncrepl rid=1 | ||
+ | provider=ldap:// | ||
+ | type=refreshOnly | ||
+ | interval=00: | ||
+ | retry=" | ||
+ | searchbase=" | ||
+ | filter=" | ||
+ | attrs=" | ||
+ | scope=sub | ||
+ | schemachecking=off | ||
+ | bindmethod=simple | ||
+ | binddn=" | ||
+ | credentials=12345678 | ||
+ | ... | ||
+ | # TLS... | ||
+ | # TLS... | ||
+ | # TLS... | ||
+ | # TLS... | ||
+ | ... | ||
+ | </ | ||
+ | Die TLS-Optionen zunächst auskommentieren, | ||
+ | |||
+ | |||
+ | Danach Konfigdatei aktivieren, etwaige Datenbank-Reste in ''/ | ||
+ | # systemctl stop slapd | ||
+ | # rm -r / | ||
+ | # slaptest -f / | ||
+ | # chown -R openldap: | ||
+ | # chown -R openldap: | ||
+ | # rm -rf / | ||
+ | # systemctl start slapd | ||
+ | # systemctl status slapd (Hier darf es keine Fehlermeldung geben, ansonsten diese Schritte wiederhoen) | ||
+ | | ||
+ | Nach einem Test (siehe unten) kann der Slave-LDAP benutzt werden, z. B. mit einem -> [[http:// | ||
+ | |||
+ | Beim ersten Start wird die Datenbank komplett übertragen, | ||
+ | |||
+ | |||
+ | ===== 6. Optional: ssl-Zertifikat des server2 setzen für " | ||
+ | |||
+ | ggf. noch installieren | ||
+ | # apt-get install openssh-server | ||
+ | |||
+ | Zertifikat für ldap erzeugen und Rechte setzen: | ||
+ | # mkdir / | ||
+ | # cd / | ||
+ | # openssl req -newkey rsa:1024 -x509 -nodes -out slapd.pem -keyout slapd.pem -days 3650 | ||
+ | # chown openldap: | ||
+ | # chmod 400 / | ||
+ | Editieren: **''/ | ||
+ | < | ||
+ | # TLSCipherSuite HIGH: | ||
+ | TLSCACertificateFile | ||
+ | TLSCertificateFile | ||
+ | TLSCertificateKeyFile / | ||
+ | ...</ | ||
+ | Editieren: **''/ | ||
+ | ... | ||
+ | SLAPD_SERVICES=" | ||
+ | ... | ||
+ | Konfigdatei aktivieren und Dienst neu starten: | ||
+ | # rm -r / | ||
+ | # slaptest -f / | ||
+ | # chown -R openldap: | ||
+ | # service slapd restart | ||
+ | |||
+ | ===== 7. Ggf. Port-Weiterleitungen setzen ===== | ||
+ | |||
+ | Im Router und im IPFire müssen die Anfragen von außen durchgereicht werden, z.B. für ldap-Port 389 (für ldaps dann entsprechend mit Port 636): | ||
+ | |||
+ | Im Router bzw. virtuellem NAT o.ä.: | ||
+ | <externe IP>:389 --> < | ||
+ | <externe IP>:390 --> < | ||
+ | Im IPFire: | ||
+ | <Default IP>:389 --> 10.16.1.1: | ||
+ | <Default IP>:390 --> 10.16.1.2: | ||
+ | Standard-Port ist 389, der Port 390 wird bei manchen Systemen ebenfalls für LDAP-Anfragen benutzt. | ||
+ | |||
+ | <note important> | ||
+ | Außerdem sollte man die Weiterleitung nur für diejenigen Hosts (IP-Adressen) einrichten, von denen aus man den Ldap abfragen möchte. Anderenfalls ist die Ldap-Datenbank für jeden im Internet auch ohne Passwort einsehbar!</ | ||
+ | |||
+ | ===== 8. Ggf. Slave-LDAP bei den externen Diensten eintragen ===== | ||
+ | Bei manchen Diensten kann man mehrere LDAP-Server eintragen. Dabei die eingestellten Ports benutzen.\\ | ||
+ | Z.B. bei moodle:\\ | ||
+ | //" | ||
+ | |||
+ | |||
+ | ===== 9. Testen ===== | ||
+ | |||
+ | Ein schneller Test ist eine Abfrage mit '' | ||
+ | |||
+ | # ldapsearch -x -w "" | ||
+ | |||
+ | Wenn hier die Ausgabe auf dem Server und dem Comsumer gleich aussieht, insbesondere etwa ganz am Ende der Wert bei '' | ||
+ | |||
+ | So kann man alle Attribute eines einzelnen Users (username ersetzen) ausgeben: | ||
+ | |||
+ | # ldapsearch -x -W -H " | ||
+ | |||
+ | Hier wird man nach einem Passwort gefragt, es ist das '' | ||
+ | |||
+ | Nun kann man beispielsweise das Passwort eines Users ändern und beobachten, wie bei der nächsten Synchronisation die Änderungen übernommen werden. | ||
+ | |||
+ | Von einem Windows-Client kann man mit dem -> [[http:// | ||
+ | Von einem Ubuntu-Client gibts viele Tools, z.B. " | ||
+ | |||
+ | Bei Verbindungsproblemen: | ||
+ | # service slapd stop | ||
+ | # slapd -d -1 | ||
+ | |||
+ | ssl-Zertifikat testen: | ||
+ | # openssl s_client -connect localhost: | ||
+ | |||
+ | |||
+ | ===== 10. Bei Bedarf: Löschen und neue Übertragung der gesamten LDAP-Datenbank ===== | ||
+ | |||
+ | // | ||
+ | |||
+ | < | ||
+ | # systemctl stop slapd | ||
+ | # rm -f / | ||
+ | # systemctl start slapd | ||
+ | </ | ||
+ | |||
+ | Danach einen Test wie weiter oben beschrieben nicht vergessen! | ||