Postfix/Kryptografie: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
K Dirkwagner verschob die Seite Postfix:Verschlüsselung nach Postfix:Kryptografie: Textersetzung - „Verschlüsselung“ durch „Kryptografie“ |
(kein Unterschied)
|
Version vom 16. Januar 2023, 12:41 Uhr
TLS-(SSL-)Verschlüsselung
Wer einen MTA außerhalb des LANs anbieten (oder selber nutzen) möchte, sollte TLS-Verschlüsselung (ehemals SSL genannt) anbieten.
- Dafür benötigt man neben Postfix ein zweiteiliges SSL-/TLS-Zertifikat.
- Eine einfache Möglichkeit, an ein Dummy-Zertifikat zu kommen, bietet das Paket ssl-cert, das hier benutzt wird.
- Wer den Server nicht nur privat nutzt, sollte sich aber auf jeden Fall ein richtiges, von einer respektierten Zertifizierungsstelle signiertes, Zertifikat besorgen.
Um TLS-Verschlüsselung zu aktivieren, muss man nur folgende Zeilen in die /etc/postfix/main.cf eintragen [3]:
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key smtpd_use_tls = yes
Danach Postfix neu starten.
Zusätzlich zu den o.a. Konfigurationsdirektiven gibt es auch folgende:
smtpd_enforce_tls = yes
Diese bewirkt, dass Postfix die Verschlüsselung nicht nur optional anbietet, sondern explizit erzwingt. Unterstützt der Client kein TLS, wird die Verbindung abgelehnt.
Hinweis In Postfix 2.3 wurden die beiden Direktiven smtpd_use_tls und smtpd_enforce_tls zusammengefasst zu smtpd_tls_security_level, mit den möglichen Werten may (Verschlüsselung möglich) und encrypt (Verschlüsselung erforderlich). Die alten Schlüsselwörter funktionieren aber aus Kompatibilitätsgründen vorerst weiterhin.
Außerdem ist zu beachten, dass ein Erzwingen der Verschlüsselung von vielen Emailservern nicht beachtet wird und Emails von anderen E-Mailservern (z.B. GMX) nicht an Ihre lokalen Postfächer zugestellt werden können.
Veraltet: ssmtp
- Früher benutzte man SSL/TLS nicht über den normalen SMTP-Port, sondern ohne besondere Protokollverhandlungen über den sog. ssmtp- (oder smtps-)Port 465.
- Wer das unterstützen möchte, um auch Uralt-Clients Verschlüsselung zu bieten, muss die /etc/postfix/master.cf ändern und den zusätzlichen Service eintragen:
smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
Verschlüsselung aktivieren
Standardmäßig werden Mails unverschlüsselt an den nächsten Server verschickt. Inzwischen wird dies aus Sicherheitsgründen von immer mehr Anbietern nicht mehr unterstützt (Web.de, GMX, T-Online, etc).
Durch Setzen des smtp_tls_security_level auf encrypt werden nur noch verschlüsselte Verbindungen aufgebaut. Man sollte den Wert zumindest aber auf may setzen. In diesem Fall wird versucht, eine verschlüsselte Verbindung aufzubauen, wenn dies möglich ist.
In die /etc/postfix/main.cf hierzu folgendes hinzufügen:
smtp_tls_security_level = may
Ob die Mail verschlüsselt wurde, sieht man daran, dass in den Kopfzeilen ("header") der Mail bei der entsprechenden Verbindung ESMTPS(A) steht:
Received: from Meinserver (meine-reverse-dns [Meine IP])
by Derserver (Postfix) with ESMTPSA id 0E523340030E for <me@example.com>; Tue, 8 Apr 2014 10:21:11 +0200 (CEST)
TMP
TLS
Weitere Informationen finden Sie unter Postfix-TLS-Unterstützung.
Sicheres SMTP (Senden)
Standardmäßig sendet Postfix/Sendmail keine verschlüsselten E-Mails an andere SMTP-Server.
- Um TLS zu verwenden, wenn verfügbar, fügen Sie die folgende Zeile hinzu main.cf:
- /etc/postfix/main.cf
smtp_tls_security_level = kann
Um erzwingen (und fehlschlägt, wenn der Remoteserver es nicht unterstützt), ändern Sie mayzu encrypt.
- Beachten Sie jedoch, dass dies gegen RFC:2487 wenn auf den SMTP-Server öffentlich verwiesen wird.
Sicheres SMTP (Empfangen)
Warnung: Wenn Sie TLS , befolgen Sie unbedingt die Anleitung von Weakdh.org , um FREAK/Logjam zu verhindern.
- Seit Mitte 2015 sind die Standardeinstellungen gegen POODLE. Weitere Informationen finden Sie unter Serverseitiges TLS.
Standardmäßig akzeptiert Postfix keine sichere E-Mail.
Sie müssen ein Zertifikat erwerben. Verweisen Sie Postfix auf Ihre TLS-Zertifikate, indem Sie die folgenden Zeilen zu hinzufügen main.cf:
- /etc/postfix/main.cf
smtpd_tls_security_level = kann smtpd_use_tls = ja smtpd_tls_cert_file = /Pfad/zu/cert.pem smtpd_tls_key_file = /path/to/key.pem
Es gibt zwei Möglichkeiten, sichere E-Mails zu akzeptieren.
- STARTTLS über SMTP (Port 587) und SMTPS (Port 465).
- Letzteres war zuvor veraltet, wurde aber durch RFC:8314.
Um STARTTLS über SMTP (Port 587) zu aktivieren, kommentieren Sie die folgenden Zeilen aus master.cf:
- /etc/postfix/master.cf
Übermittlung inet n - n - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=verschlüsseln -o smtpd_sasl_auth_enable=ja -o smtpd_tls_auth_only=ja -o smtpd_reject_unlisted_recipient=nein # -o smtpd_client_restrictions=$mua_client_restrictions # -o smtpd_helo_restrictions=$mua_helo_restrictions # -o smtpd_sender_restrictions=$mua_sender_restrictions -o smtpd_recipient_restrictions= -o smtpd_relay_restrictions=permit_sasl_authenticated,ablehnen -o milter_macro_daemon_name=URSPRUNG
Die smtpd_*_restrictionsOptionen bleiben kommentiert, weil $mua_*_restrictionssind standardmäßig nicht in main.cf definiert.
- Wenn Sie sich entscheiden, eine von einzustellen $mua_*_restrictions, kommentieren Sie auch diese Zeilen aus.
Um SMTPS (Port 465) zu aktivieren, kommentieren Sie die folgenden Zeilen aus master.cf:
/etc/postfix/master.cf smtps inet n - n - - smtpd
-o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=ja -o smtpd_sasl_auth_enable=ja -o smtpd_reject_unlisted_recipient=nein # -o smtpd_client_restrictions=$mua_client_restrictions # -o smtpd_helo_restrictions=$mua_helo_restrictions # -o smtpd_sender_restrictions=$mua_sender_restrictions -o smtpd_recipient_restrictions= -o smtpd_relay_restrictions=permit_sasl_authenticated,ablehnen -o milter_macro_daemon_name=URSPRUNG
Die Begründung rund um die $smtpd_*_restrictionsLinien ist die gleiche wie oben.