Postfix/Kryptografie: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „z.B.“ durch „z. B. “
 
(7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
== TLS-(SSL-)Verschlüsselung ==
== 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-Verschlüsselung] (ehemals SSL genannt) anbieten.  
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-Verschlüsselung zu aktivieren, muss man nur folgende Zeilen in die '''/etc/postfix/main.cf''' eintragen [https://wiki.ubuntuusers.de/Postfix/Erweiterte_Konfiguration/#source-3 [3]]:
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 Verschlüsselung nicht nur optional anbietet, sondern explizit erzwingt.  
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'' (Verschlüsselung möglich) und ''encrypt'' (Verschlüsselung erforderlich). Die alten Schlüsselwörter funktionieren aber aus Kompatibilitätsgründen vorerst weiterhin.
  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 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.
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 Verschlüsselung zu bieten, muss die '''/etc/postfix/master.cf''' ändern und den zusätzlichen Service eintragen:
* 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


== Verschlüsselung aktivieren ==
== 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.

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.