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:15] – [10. Bei Bedarf: Löschen und neue Übertragung der gesamten LDAP-Datenbank] 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! | ||