1.9. Replikation und TLS
Wenn Sie die Replikation zwischen Servern eingerichtet haben, ist es üblich, den Replikationsverkehr zu verschlüsseln (StartTLS), um Abhörvorgänge zu verhindern. Dies unterscheidet sich von der oben beschriebenen Verwendung von Verschlüsselung mit Authentifizierung. In diesem Abschnitt werden wir auf dieser TLS-Authentifizierungsarbeit aufbauen.
Hier wird davon ausgegangen, dass Sie die Replikation zwischen Anbieter und Verbraucher gemäß Abschnitt 1.6, „Replikation“ [S. 123] und haben TLS für die Authentifizierung beim Anbieter konfiguriert, indem Sie Abschnitt 1.8, „TLS“ [S. 129].
Wie bereits erwähnt, besteht das Ziel (für uns) bei der Replikation in einer hohen Verfügbarkeit des LDAP-Dienstes. Da wir beim Anbieter über TLS zur Authentifizierung verfügen, benötigen wir dasselbe auch beim Verbraucher. Darüber hinaus möchten wir jedoch den Replikationsverkehr verschlüsseln. Was noch zu tun ist, ist, einen Schlüssel und ein Zertifikat für den Verbraucher zu erstellen und dann entsprechend zu konfigurieren. Wir generieren den Schlüssel/das Zertifikat beim Anbieter, um die Erstellung eines weiteren CA-Zertifikats zu vermeiden, und übertragen dann das erforderliche Material an den Verbraucher.
1. Zum Anbieter,
Erstellen Sie ein Halteverzeichnis (das für die eventuelle Übertragung verwendet wird) und dann den privaten Schlüssel des Verbrauchers:
mkdir ldap02-ssl cd ldap02-ssl
sudo certtool --generate-privkey \
--bits 1024 \
--outfile ldap02_slapd_key.pem
Erstellen Sie eine Infodatei, ldap02.info, für den Consumer-Server, und passen Sie seine Werte entsprechend an:
Organization = Beispielunternehmen cn = ldap02.example.com
tls_www_server crypto_key signing_key expiration_days = 3650
Erstellen Sie das Verbraucherzertifikat:
sudo certtool --generate-certificate \
--load-privkey ldap02_slapd_key.pem \
--load-ca-certificate /etc/ssl/certs/cacert.pem \
--load-ca-privkey /etc/ssl/private/cakey.pem \
--template ldap02.info \
--outfile ldap02_slapd_cert.pem
Holen Sie sich eine Kopie des CA-Zertifikats:
cp /etc/ssl/certs/cacert.pem .
Wir sind fertig. Übertragen Sie nun die ldap02-ssl Verzeichnis an den Verbraucher. Hier verwenden wir scp (entsprechend anpassen):
CD ..
scp -r ldap02-ssl user@consumer:
2. Zum Verbraucher:
Konfigurieren Sie die TLS-Authentifizierung:
sudo apt install ssl-cert
sudo gpasswd -a openldap ssl-cert
sudo cp ldap02_slapd_cert.pem cacert.pem /etc/ssl/certs sudo cp ldap02_slapd_key.pem /etc/ssl/private
sudo chgrp openldap /etc/ssl/private/ldap02_slapd_key.pem sudo chmod 0640 /etc/ssl/private/ldap02_slapd_key.pem sudo systemctl restart slapd.service
Erstellen Sie die Datei /etc/ssl/certinfo.ldif mit folgendem Inhalt (entsprechend anpassen):
dn: cn=config
hinzufügen: olcTLSCACertificateFile olcTLSCACertificateFile: /etc/ssl/certs/cacert.pem
-
hinzufügen: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ssl/certs/ldap02_slapd_cert.pem
-
hinzufügen: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ssl/private/ldap02_slapd_key.pem
Konfigurieren Sie die slapd-config-Datenbank:
sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f certinfo.ldif
Einrichtung / etc / default / slapd wie auf dem Provider (SLAPD_SERVICES).
3. Zum Verbraucher:
Konfigurieren Sie TLS für die Replikation auf Verbraucherseite. Ändern Sie das Vorhandene olcSyncrepl Attribut durch Anhängen einiger TLS-Optionen. Dabei erfahren wir zum ersten Mal, wie man den bzw. die Werte eines Attributs ändert.
Erstellen Sie die Datei Consumer_sync_tls.ldif mit folgendem Inhalt:
dn: olcDatabase={1}mdb,cn=config ersetzen: olcSyncRepl
olcSyncRepl: Rid=0 Anbieter=ldap://ldap01.example.com bindmethod=simple binddn="cn=admin,dc=example,dc=com" credentials=secret searchbase="dc=example,dc=com" logbase= "cn=accesslog" logfilter="(&(objectClass=auditWriteObject)(reqResult=0))" schemachecking=on type=refreshAndPersist retry="60 +" syncdata=accesslog starttls=critical tls_reqcert=demand
Die zusätzlichen Optionen geben jeweils an, dass der Verbraucher StartTLS verwenden muss und dass das CA-Zertifikat zur Überprüfung der Identität des Anbieters erforderlich ist. Beachten Sie auch die LDIF-Syntax zum Ändern der Werte eines Attributs („replace“).
Implementieren Sie diese Änderungen:
sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f Consumer_sync_tls.ldif
Und slapd neu starten:
sudo systemctl startet slapd.service neu
4. Zum Anbieter,
Überprüfen Sie, ob eine TLS-Sitzung eingerichtet wurde. In / var / log / syslog, sofern Sie die Protokollierung auf „Conns“-Ebene eingerichtet haben, sollten Meldungen ähnlich der folgenden angezeigt werden:
slapd[3620]: conn=1047 fd=20 AKZEPTIEREN von IP=10.153.107.229:57922 (IP=0.0.0.0:389) slapd[3620]: conn=1047 op=0 EXT oid=1.3.6.1.4.1.1466.20037
slapd[3620]: conn=1047 op=0 STARTTLS
slapd[3620]: conn=1047 op=0 ERGEBNIS oid= err=0 text=
slapd[3620]: conn=1047 fd=20 TLS eingerichtet tls_ssf=128 ssf=128 slapd[3620]: conn=1047 op=1 BIND dn="cn=admin,dc=example,dc=com" method=128
slapd[3620]: conn=1047 op=1 BIND dn="cn=admin,dc=example,dc=com" mech=SIMPLE ssf=0 slapd[3620]: conn=1047 op=1 RESULT tag=97 err= 0 Text