LDAP TLS/SSL

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
sdh82
Beiträge: 160
Registriert: 07.10.2006 22:39:04

LDAP TLS/SSL

Beitrag von sdh82 » 12.10.2007 08:35:45

Hallo!

Habe LDAP erfolgreich aufgesetzt nun möchte ich ssl/tls auch mit implementieren, gibt's irgendwo ne gescheite Anleitung für? Im Internet finde ich zu dem Thema nur sehr rar, meistens nur für suse.

Oder wenn jemand sich damit auskennt dann bin ich auch für Hinweise offen.

Vielen Dank im Voraus für die Antwort!

Gruß

sdh82

Cologne4711
Beiträge: 260
Registriert: 04.12.2006 11:37:59

Beitrag von Cologne4711 » 12.10.2007 09:07:59

Hier mal etwas von mir - vielleicht hilft es Dir ja :wink:

Konfiguration

Zuerst sollte die Datei /etc/ssl/openssl.conf geändert werden.

Die Anzahl der Tage für die das Zertifikat gültig ist, sollte erhöht werden.
default_days = 3650

Die Länge des Schlüssels solle auf den folgenden Wert erhöht werden.
default_bits = 2048

Außerdem kann man noch folgende Werte anpassen, wobei diese nur optional sind und keinen Einfluss auf das Zertifikat haben.

countryName_default = DE
stateOrProvinceName_default = NRW
localityName_default = Koeln
0.organizationName_default = Firmenname
organizationalUnitName_default = Abteilung
emailAddress = test@domain.de

Vorbereitung

Zuerst sollte ein Verzeichnis erstellt werden, in dem die Zertifikate erzeugt werden.
mkdir /etc/ldap/certs

Dann sollte die CA.pl in dieses Verzeichnis kopiert werden.
Die Datei sollte sich im folgenden Verzeichnis befinden: /usr/lib/ssl/misc/

cd /etc/ldap/certs
cp /usr/lib/ssl/misc/CA.pl .

Damit sind dann die Vorbereitungen abgeschlossen.


CA

Zuerst wird eine eigene Cerificate Authority (CA) erzeugt.
In Abhängigkeit von diesem Zertifikat werden später alle weiteren Zertifikate erzeugt.
Dieser Schritt muss dementsprechend nur einmal ausgeführt werden.

./CA.pl -newca

Am Anfang einmal Enter drücken und dann den Vorgaben folgen.
Bei Common Name sollte zum Beispiel RootCA eingeben werden.
Es sollte kein Domain Name ausgewählt werden.

Dieses Zertifikat muss hinterher auf alle Rechner kopiert werden, die SSL/TLS nutzen wollen.
Damit ist die Erzeugung der CA abgeschlossen.


Zertifikat

Dann wird ein Zertifikat für einen Server/Client erzeugt.
Ab hier wiederholen sich alle Schritte. Die CA wird wie oben beschrieben nur ein mal erstellt.

./CA.pl -newreq

Hier muss bei Common Name der Rechnername eingegeben werden.
Beispiele:
test.domain.de

Alle anderen Abfragen können mit Enter bestätigt werden.

Die folgenden Dateien sind entsanden:
newkey.pem
newreq.pem


Signieren

Dann muss das Zertifikat noch Signiert werden.

Das wird mit folgendem Befehl erledigt.
./CA.pl -sign

Nach Beantwortung aller Fragen, wird die Datei newcert.pem erzeugt.

Diese sollte zur Übersicht umbenannt werden.
mv newcert.pem test.newcert.pem


Die Datei newkey ist verschlüsselt und damit nicht bei jedem Start des Servers das Passwort eingegeben werden muss, kann das Passwort mit folgendem Befehl entfernt werden.
openssl rsa -in newkey.pem -out testnewkey.pem


Anschließend sollte der Key noch abgesichert werden, damit er nicht für jeden lesbar ist.
chmod 600 testnewkey.pem


Damit ist das erste Zertifikat fertig und kann auf den Server oder Client kopiert werden.


Übersicht

Die folgenden Dateien müssen dann auf den Server/Client kopiert werden (scp oder sftp):

demoCA/cacert.pem - Das ist die CA
testnewcert.pem - Das ist das Zertifikat für den Server/Client
testnewkey.pem - Das ist der Key


Anmerkungen

Der User und die Gruppe müssen, nach dem die Zertifikate auf den Server kopiert wurden, noch angepasst werden.
Ein openldap User hat nämlich keinen Zugriff auf Zertifikate die root gehören und dementsprechend würde der Server nicht starten.
chown openldap:openldap *.pem

Server anpassen

Die folgende Zeilen in die slapd.conf eintragen.

TLSCACertificateFile /etc/ldap/certs/cacert.pem
TLSCertificateFile /etc/ldap/certs/testnewcert.pem
TLSCertificateKeyFile /etc/ldap/certs/testnewkey.pem
TLSVerifyClient allow

Das allow besagt, dass SSL Verbindungen erlaubt, aber nicht zwingend notwendig sind.
Dadurch kann auf dem Rechner noch weiterhin über localhost:389 unverschlüsselt auf den LDAP-Server zugegriffen werden.


ldap.conf
Die ersten beiden Zeilen hinzufügen:
TLS_CACERT /etc/ldap/certs/cacert.pem
TLS_REQCERT demand
Die Folgende Zeile muss angepasst werden:
URI ldap://localhost:389 ldaps://test.domain.de:636

Damit die LDAP Server aber auch auf dem Port 636 einen Dienst anbieten, muss noch die /etc/defaults/slapd angepasst werden.
SLAPD_SERVICES="ldap://127.0.0.1:389/ ldaps:/// "
Die Zeile besagt, dass der LDAP Server lokal an Port 389 und auf allen Interfaces an Port 636 auf Anfragen wartet.

MfG
Zuletzt geändert von Cologne4711 am 16.10.2007 09:16:43, insgesamt 2-mal geändert.

sdh82
Beiträge: 160
Registriert: 07.10.2006 22:39:04

Beitrag von sdh82 » 12.10.2007 16:34:25

Vielen Dank für die Antwort, werde heute Abend machen, melde mich nochmal sowohl für Erfolg als auch Problem.

Nochmal Danke!

Edit: Bin leider noch nicht dazugekommen, aber unter der Woche werd ich mal fertig machen.

sdh82
Beiträge: 160
Registriert: 07.10.2006 22:39:04

Beitrag von sdh82 » 15.10.2007 21:40:25

Cologne4711 hat geschrieben:
./CA.pl -newreq

Hier muss bei Common Name der Rechnername eingegeben werden.
Beispiele:
test.domain.de


Alle anderen Abfragen können mit Enter bestätigt werden.

Das Ergebnis heißt newcert.pem und sollte umbenannt werden.
Beispiel:
mv newcert.pem testnewcert.pem


MfG
Da bekomm ich aber newreq.pem meinst du hier etwa ./CA.pl -newcert

Danke für die Antwort

sdh82

Cologne4711
Beiträge: 260
Registriert: 04.12.2006 11:37:59

Beitrag von Cologne4711 » 16.10.2007 09:09:12

Hallo,

da hast Du recht.
Erzeuge einfach die Zertifikate und benenne die Datei anschließend um.

Nach ./CA.pl -newreq

gibt es die folgenden beiden Dateien:
newkey.pem
newreq.pem

nach dem Signieren kommt noch die newcert.pem dazu.

Ich habe den Text oben noch einmal entsprechend angepasst ...

MfG

sdh82
Beiträge: 160
Registriert: 07.10.2006 22:39:04

Beitrag von sdh82 » 16.10.2007 09:36:27

Hallo!

Jo habe ich gestern gemacht, Danke!
Aber am Ende kommt ne Fehlermeldung can't connect ldap tls oder sowas, jetzt habe ich nicht ganz im Kopf, muss mal mein LDAP wiederherstellen, bzw. korrigieren.

mfg.

sdh82

Antworten