Problem
Es gibt eine (Management-)Richtlinie, die vorschreibt mit einem bestimmten Partner ausschliesslich über (TLS) verschlüsselte Verbindungen zu kommunizieren. Der ausgehende Mailserver ist ein Postfix (z.B. ein Smarthost). TLS mit den entsprechenden Zertifikaten ist hier schon korrekt eingerichtet. Es sollen nur sichere TLS-Verbindungen zu bestimmten Domain erzwungen werden.
Lösung
Standardmäßig verschlüsselt Postfix ausgehende E-Mails nicht. Sofern die Zertifikate richtig konfiguriert sind (Stichwort smtpd_tls_cert_file) lässt sich die ausgehende Verschlüsselung IMMER erzwingen:
Zum erzwingen von TLS In der Datei /etc/postfix/main.cf eintragen:
smtp_tls_security_level = encrypt
Viele Mail-Server akzeptieren aber auch heute noch keine TLS-Verbindungen. E-Mails an solche Mailserver werden daher nicht versendet. Als sinnvolle Alternativebietet sich daher an:
smtp_tls_security_level = may
Bei dieser Einstellung wird die TLS-Verschlüsselung nur verwendet, wenn der Empfängerserver ebefalls TLS-Verbindungen akzeptiert. Verschlüsselt geht hier von iunverschlüsselt.
Nur für bestimmte Domains erzwingen
Es soll TLS für alle E-Mails erzwungen sein, die an *@denic.de gesendet werden. Der MX von denic.de zeigt auf mx1.denic.de und mx2.denic.de.
-
- Mapping-Datei erstellen, z.B. „
/etc/postfix/tls_policy
“ mit diesem Inhalt:denic.de encrypt
- Mapping übernehmen
root@posty:/etc/postfix# postmap /etc/postfix/tls_policy
- Tabelle in der main.cf in der TLS-Policy referenzieren
# TLS erzwingen smtp_tls_policy_maps = hash:/etc/postfix/tls_policy
- Postfix reloaden
root@posty:/etc/postfix# /etc/init.d/postfix reload
- Mapping-Datei erstellen, z.B. „
Im Log lässt sich der Erfolg direkt danach prüfen, indem man nach dem Servernamen (oder der Adresse) und „STARTTLS“ grept:
postfix/smtp[61070]: > mx1.denic.de[2a02:568:102:211::1:1]:25: STARTTLS