[LUG-RT] Vielleicht interessiert es jemanden
Kowalkowski IMAP
frank at kowalkowski.org
Di Mai 10 19:25:00 CEST 2016
Hallo Liste,
ich habe mich in den letzten Tagen mit der Sicherheit meiner Mailserver
beschäftigt. Der Zugriff über TLS/SSL oder STARTTLS hatte schon
funktioniert, jetzt war es daran, "perfect forward secrecy" zu
gewährleisten. Da ich spamdyke benutze, war dort der Eintrag der
erstellten Zertifikate wie auch der Eintrag für den privaten Schlüssel
notwendig. Danach hat auch pfs funktioniert.
Jetzt wollte ich auch noch DANE zum Laufen bringen. Dazu jetzt die
Schritte, die für den DNSSEC nötig waren:
1) Hash aus Zertifikat erstellen
-> openssl x509 -in <<server>>.crt -outform DER | openssl sha256
-> die Ausgabe kopieren
-> in der Zonendatei folgenden Eintrag hinzufügen
--> _25._tcp.mail.kowalkowski.org. IN TLSA (3 0 1 <<hier der
HASH>>) (3 = DANE-EE, 0 = HASH der Zertifikats, 1 = HASH Algorithmus)
2) Zertifikate für Domäne erstellen
-> dnssec-keygen -3 -a RSASHA512 -b 4096 -n ZONE <<servername>>
erstellt das Schlüsselpaar für den Zone-Signing-Key (ZSK)
-> dnssec-keygen -a RSASHA512 -b 2560 -f KSK -n ZONE <<servername>>
erstellt das Schlüsselppar für den Key-Sighning-Key (KSK)
3) Zertifikate in die Zonendatei einbinden
-> die vier entstandenen Dateien mit den Namen z.B.
K<servername>.+010+12345.key/private und
K<servername>.+010+54321.key/private ins Verzeichnis /var/named/dynamic
kopieren und für named lesbar machen
-> in die Zonendatei mit $INCLUDE die .key Dateien einbinden
4) in bind dnssec einschalten
-> in der named.conf Datei ändern/eintragen
-> dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
5) Sind die Vorbereitungen bis hierher abgeschlossen, wird in das
Verzeichnis gewechselt, in welchem sich die Zonen-Dateien befinden (im
Beispiel /var/named)
6) Signieren der Zone
-> dnssec-signzone -3 `head -c 512 /dev/urandom | sha1sum | cut -b
1-16` -H 330 -K <Verzeichnis mit den Schlüsseln> -t -o <servername>
<zonendatei> (-K Option nur notwendig, wenn Schlüssel im anderen
Verzeichnis liegen)
-> bei korrekter Durchführung wird eine Datei mit der Endung .signed
erstellt.
-> Datei für Bind lesbar machen
7) in der Konfigurationsdatei von bind für Domänen den Eintrag für
<servername> anpassen
-> zone "<servername>" {
type master;
file "<zonefilename.signed>";
key-directory "/var/named/dynamic";
update-policy {
grant <servername> name <servername> A AAAA;
};
auto-dnssec maintain;
allow-query { ANY; };
};
8) bind neu starten
9) Schlüssel in der KSK key - Datei kopieren
10) Schlüssel beim Registrar im korrekten Format eintragen
Die Erklärung mag an manchen Stellen nicht ganz klar sein, es gibt im
Internet auch verschiedene Anleitungen mit durchaus verschiedenen Wegen.
Wenn man aber sicher gehen will, dass später DANE funktioniert, ist es
wichtig, beide Schlüsselpaare mit RSASHA512 zu erstellen. Ich habe bei
meinen Tests die unterschiedlichsten Fehler in Bezug auf DNSSEC
bekommen, alle waren im Endeffekt ein Problem mit dem Algorithmus der
erstellten Schlüssel oder den eingetragenen NS in der Zonen-Datei.
So, vielleicht hat jemand von uns Nutzen an der Anleitung,
Grüße Frank
More information about the liste
mailing list