Postfix/Kryptografie: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
K Textersetzung - „z.B.“ durch „z. B. “ |
||
(8 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
== TLS-(SSL-) | == TLS-(SSL-)Kryptografie == | ||
Wer einen MTA außerhalb des LANs anbieten (oder selber nutzen) möchte, sollte [https://de.wikipedia.org/wiki/Transport_Layer_Security TLS- | Wer einen MTA außerhalb des LANs anbieten (oder selber nutzen) möchte, sollte [https://de.wikipedia.org/wiki/Transport_Layer_Security TLS-Kryptografie] (ehemals SSL genannt) anbieten. | ||
* Dafür benötigt man neben Postfix ein zweiteiliges SSL-/TLS-Zertifikat. | * 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 [https://wiki.ubuntuusers.de/ssl-cert/ ssl-cert], das hier benutzt wird. | * Eine einfache Möglichkeit, an ein Dummy-Zertifikat zu kommen, bietet das Paket [https://wiki.ubuntuusers.de/ssl-cert/ 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. | * Wer den Server nicht nur privat nutzt, sollte sich aber auf jeden Fall ein richtiges, von einer respektierten Zertifizierungsstelle signiertes, Zertifikat besorgen. | ||
Um TLS- | Um TLS-Kryptografie zu aktivieren, muss man nur folgende Zeilen in die '''/etc/postfix/main.cf''' eintragen [https://wiki.ubuntuusers.de/Postfix/Erweiterte_Konfiguration/#source-3 [3]]: | ||
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem | smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem | ||
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key | smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key | ||
Zeile 15: | Zeile 15: | ||
smtpd_enforce_tls = yes | smtpd_enforce_tls = yes | ||
Diese bewirkt, dass Postfix die | Diese bewirkt, dass Postfix die Kryptografie nicht nur optional anbietet, sondern explizit erzwingt. | ||
Unterstützt der Client kein TLS, wird die Verbindung abgelehnt. | Unterstützt der Client kein TLS, wird die Verbindung abgelehnt. | ||
'''Hinweis''' | '''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'' ( | 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'' (Kryptografie möglich) und ''encrypt'' (Kryptografie erforderlich). Die alten Schlüsselwörter funktionieren aber aus Kompatibilitätsgründen vorerst weiterhin. | ||
Außerdem ist zu beachten, dass ein Erzwingen der | Außerdem ist zu beachten, dass ein Erzwingen der Kryptografie 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 === | === 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. | * 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 | * Wer das unterstützen möchte, um auch Uralt-Clients Kryptografie zu bieten, muss die '''/etc/postfix/master.cf''' ändern und den zusätzlichen Service eintragen: | ||
smtps inet n - n - - smtpd | smtps inet n - n - - smtpd | ||
-o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes | -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes | ||
== | == Kryptografie 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). | 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). | ||
Zeile 44: | Zeile 44: | ||
for <me@example.com>; Tue, 8 Apr 2014 10:21:11 +0200 (CEST) | for <me@example.com>; Tue, 8 Apr 2014 10:21:11 +0200 (CEST) | ||
= TMP = | |||
== TLS == | |||
Weitere Informationen finden Sie unter [http://www.postfix.org/TLS_README.html Postfix-TLS-Unterstützung]. | |||
[[Kategorie:Postfix]] | === 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 <tt>main.cf</tt>: | |||
; /etc/postfix/main.cf | |||
smtp_tls_security_level = kann | |||
Um erzwingen (und fehlschlägt, wenn der Remoteserver es nicht unterstützt), ändern Sie <tt>may</tt>zu <tt>encrypt</tt>. | |||
* Beachten Sie jedoch, dass dies gegen [https://tools.ietf.org/html/rfc2487 RFC:2487] wenn auf den SMTP-Server öffentlich verwiesen wird. | |||
=== Sicheres SMTP (Empfangen) === | |||
'''Warnung: '''Wenn Sie [https://en.wikipedia.org/wiki/TLS TLS] , befolgen [https://weakdh.org/sysadmin.html Sie unbedingt die Anleitung von Weakdh.org] , um FREAK/Logjam zu verhindern. | |||
* Seit Mitte 2015 sind die Standardeinstellungen gegen [https://en.wikipedia.org/wiki/POODLE POODLE]. Weitere Informationen finden Sie unter [https://wiki.archlinux.org/title/Server-side_TLS Serverseitiges TLS]. | |||
Standardmäßig akzeptiert Postfix keine sichere E-Mail. | |||
Sie müssen [https://wiki.archlinux.org/title/Obtain_a_certificate ein Zertifikat erwerben]. Verweisen Sie Postfix auf Ihre TLS-Zertifikate, indem Sie die folgenden Zeilen zu hinzufügen <tt>main.cf</tt>: | |||
; /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 [https://tools.ietf.org/html/rfc8314 RFC:8314]. | |||
Um STARTTLS über SMTP (Port 587) zu aktivieren, kommentieren Sie die folgenden Zeilen aus <tt>master.cf</tt>: | |||
; /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 <tt>smtpd_*_restrictions</tt>Optionen bleiben kommentiert, weil <tt>$mua_*_restrictions</tt>sind standardmäßig nicht in main.cf definiert. | |||
* Wenn Sie sich entscheiden, eine von einzustellen <tt>$mua_*_restrictions</tt>, kommentieren Sie auch diese Zeilen aus. | |||
Um SMTPS (Port 465) zu aktivieren, kommentieren Sie die folgenden Zeilen aus <tt>master.cf</tt>: | |||
/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 <tt>$smtpd_*_restrictions</tt>Linien ist die gleiche wie oben. | |||
[[Kategorie:Postfix/Sicherheit]] |
Aktuelle Version vom 19. Mai 2023, 12:19 Uhr
TLS-(SSL-)Kryptografie
Wer einen MTA außerhalb des LANs anbieten (oder selber nutzen) möchte, sollte TLS-Kryptografie (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-Kryptografie 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 Kryptografie 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 (Kryptografie möglich) und encrypt (Kryptografie erforderlich). Die alten Schlüsselwörter funktionieren aber aus Kompatibilitätsgründen vorerst weiterhin.
Außerdem ist zu beachten, dass ein Erzwingen der Kryptografie 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 Kryptografie 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
Kryptografie 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.