DANE ausgehend mit Postfix einrichten
Postfix unterstützt ab Version 2.11 DANE. Um DANE für den ausgehenden Mailversand zu aktivieren, wird natürlich ein validierender Resolver benötigt, dem vertraut wird, um DNSSEC-Antworten zu erhalten. Dieser muss also zuerst eingerichtet werden, und wird hier vorausgesetzt.
Der Resolver kann auf einer anderen Rechner laufen, aber dann muss sichergestellt sein, dass die Antworten nicht verfälscht werden können (z.B. über eine VPN-Verbindung), da die Validität nur über das AD Flag sicher gestellt wird. Daher ist es zu empfehlen, einen validierenden Stub-Resolver auf dem MTA einzurichten, der dann die Antworten mittels DNSSEC prüft.
Die Postfix-Version kann mit
postconf -d | grep mail_version
mail_version = 2.11.3
milter_macro_v = $mail_name $mail_version
ermittelt werden.
In der Hauptkonfiguration, /etc/postfix/main.cf, müssen DNSSEC-Validierung und DANE-Sicherheitslevel angeschaltet werden:
smtp_dns_support_level = dnssec
smtp_tls_security_level = dane
smtp_tls_loglevel = 1
Logging ermöglicht eine einfachere Fehlersuche, bei Bedarf kann das Loglevel auch höher gestellt werden, um mehr Informationen zu erhalten.
Es kann auch eine Destinationsspezifische Policy verwendet werden, für Details hierzu siehe die Postfix Dokumentation auf http://www.postfix.org/TLS_README.html .
Damit die Änderungen wirksam werden, muss natürlich die Konfiguration neu geladen
postfix reload
oder Postfix neu gestartet werden
service postfix restart
Überprüfen der DANE-Verifizierung
Ob beim Mailversand an eine Gegenstelle DANE verwendet wird oder nur auf opportunistisches TLS zurückgegriffen wird, kann in den Postfix-Logs nachvollzogen werden. Standardmäßig loggt Postfix in /var/log/mail.log.
Eindeutiger ist aber die Ausgabe von posttls-finger, die anzeigt, dass die TLS-Verbindung mittels DANE verifiziert wurde ("Verified TLS connection"):
posttls-finger <ausgehender Mailserver>
posttls-finger: dnssec-ws01.ws01.ws.dnssec.bayern[138.246.99.206]:25: depth=0 matched end entity public-key sha256 digest=C1:4E:6E:28:3B:34:3C:25:4B:33:80:ED:91:E5:71:8B:2E:60:10:A9:7C:7E:3A:30:BB:A0:1F:AE:61:5A:80:93
posttls-finger: dnssec-ws01.ws01.ws.dnssec.bayern[138.246.99.206]:25 Matched CommonName dnssec-ws01.ws01.ws.dnssec.bayern
posttls-finger: dnssec-ws01.ws01.ws.dnssec.bayern[138.246.99.206]:25: subject_CN=dnssec-ws01.ws01.ws.dnssec.bayern, issuer_CN=dnssec-ws01.ws01.ws.dnssec.bayern, fingerprint=0F:DB:31:72:9F:CA:2A:78:DE:C0:1F:55:F0:29:54:9B:DA:63:02:0E, pkey_fingerprint=E4:7F:D0:2D:C5:D9:5D:2A:41:52:29:DA:45:10:3E:0C:77:C7:92:B0
posttls-finger: Verified TLS connection established to dnssec-ws01.ws01.ws.dnssec.bayern[138.246.99.206]:25: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
Ein DANE-Test kann über ws.dnssec.bayern erfolgen. Dazu muss eine leere Email an die Adresse test@wsadm.ws.dnssec.bayern gesendet werden. Da Postfix nur dann eine Namensauflösung durchführt, wenn es sich nicht um unseren eigenen sendenden Mailserver handelt, müssen wir hier eine andere der Workshop-VMs als Empfänger angeben.
echo "" | mail test@wsadm.ws.dnssec.bayern
Wenn wir das Postfix-Log in /var/log/mail.log verfolgen, sehen wir, sofern der DANE-Eintrag im autoritativen Nameserver für wsadm.ws.dnsssec.bayern existiert, und mit dem Zertifikat, das uns das empfangende Postfix bereit stellt, übereinstimmt, verifiziert wird.
Feb 21 15:22:29 dnssec-ws01 postfix/smtp[44234]: dnssec-wsadm.wsadm.ws.dnssec.bayern[2001:4ca0:800:2:250:56ff:fe8f:3b68]:25: subject_CN=dnssec-wsadm.sadm.ws.dnssec.bayern, issuer_CN=dnssec-wsadm.dnssec.bayern, fingerprint=FF:66:0E:20:2F:E5:5A:57:47:B0:F2:13:CF:85:F0:4F, pkey_fingerprint=5F:8E:54:72:02:2D:BE:A5:95:48:ED:1A:BB:1D:5C:35
Feb 21 15:22:29 dnssec-ws01 postfix/smtp[44234]: Verified TLS connection established to dnssec-wsadm.wsadm.ws.dnssec.bayern[2001:4ca0:800:2:250:56ff:fe8f:3b68]:25: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)