TLS-Übermittlungssicherheit bei Mailservern erzwingen

Abstract

Wie ich in meiner Praxis als Mailserver Administrator dieser Tage erlebe, wird zunehmend strengere Übermittlungssicherheit bei Mail zwingend eingefordert.

Wie ich in meiner Praxis als Mailserver Administrator dieser Tage erlebe, wird zunehmend strengere Übermittlungssicherheit bei Mail zwingend eingefordert.

Viele deutsche Verbände, empfehlen ihren Mitgliedern schon seit längerem die Sicherheit bei Mail allgemein zu erhöhen.

Ein Beispiel ist z.B der VDA ( Verband der deutschen Automobil Industrie). Zur Übermittlungssicherheit wird unter anderem der Einsatz von SMTP mit TLS im "Mandatory" Modus empfohlen oder von den Mitgliedern des Verbandes eingefordert.

Da das Thema nicht ganz einfach ist , hier ein paar Grundlagen wie man dies mit Postfix verwirklichen kann.

Important

Generellt gilt: Fast jede Form der Verschlüsselung ist besser, als gar keine, denn E-Mail ist per se immer im Klartext unterwegs! Dieser Artikel behandelt die Verschlüsselung des E-Mail-Verkehrs zwischen Mailservern, nicht aber die Verschlüsselung von E-Mail an sich.

Zunächst benötigt man ein SSL Zertifikat auf den Hostnamen des Mailservers. Diese sind mittlerweile sehr günstig erhältlich, in der grössten Not kann man sich aber auch selbst ein Zertifikat generieren (jede Verschlüsselung ist besser…).

Wie das Zertifikat in Postfix eingebunden wird, ist in http://de.postfix.org/httpmirror/TLS_README.html ausführlich beschrieben und soll hier nicht Thema sein.

Der Standard Modus mit dem man Postfix bezüglich Verschlüsselung betreiben sollte heisst "may" oder Opportunistic TLS. Übersetzt bedeuetet dies, wenn beide Partner Verschlüsselung anbieten, können sie verschlüsselt kommunizieren wenn ihnen das opportun erscheint - sie müssen das aber nicht zwingend.

Die Postfix Parameter dazu sind etwas versionsabhängig. Ein typisches Basis Setup in der Postfix 'main.cf' könnte so aussehen:

smtpd_tls_security_level = may
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_tls_cert_file = /etc/postfix/mailserver.crt
smtpd_tls_key_file = /etc/postfix/mailserver.key
smtpd_tls_CAfile = /etc/postfix/mailserver.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 7200s

smtp_use_tls = yes
smtp_tls_loglevel = 1
smtp_tls_note_starttls_offer = yes
smtp_tls_security_level = may
smtp_tls_CAfile = /etc/postfix/mailserver.pem
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

smtpd_tls_CApath = /etc/ssl/certs
smtp_tls_CApath = /etc/ssl/certs

Im Gegensatz zum Opportunistic TLS Modus, der einen guten Kompromiss im alltäglichen Emailverkehr darstellt, kommt es aber dieser Tage häufiger vor, dass für bestimmte Maildomains der sogenannte Mandatory TLS Modus eingefordert wird.

Dies bedeuted dass fur bestimmte Maildomains die verschlüsselte Übertragung zwingend notwendig ist. Kommt sie nicht zustande, darf der Transport nicht unverschlüsselt stattfinden - E-Mails bleiben dann in der mail queue.

Für eine Mandatory TLS policy ist eine weitere Tabelle mit Maildomains notwendig:

/etc/postfix/main.cf:
smtp_tls_policy_maps = hash:/etc/postfix/tls_policy

/etc/postfix/tls_policy:
example.com       encrypt
.example.com      encrypt

Jetzt wird Postfix, immer wenn es auf die Empfängerdomain example.com (oder eine ihrer Subdomains) trifft, zwingend eine TLS session einfordern.

Note

Damit ist der Transport, aber nicht die Nachricht selbst verschlüsselt. Wer Ende-zu-Ende Verschlüsselung benötigt, sollte S/MIME oder PGP einsetzen.

Es ist wohl nur noch eine Frage der Zeit wann auch dies häufiger zwingend eingefordert werden wird.

Robert Schetterer, 27. March 2013

   postfix    TLS