Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

centos:mail_c7:mta_5 [22.10.2015 12:32. ] – [SMTP-Daemon (Empfang von eMails)] djangocentos:mail_c7:mta_5 [18.11.2024 19:12. ] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
-====== SSL/TLS-Verbindungen, verschlüsselte Kommunikation für Postfix 2.11 unter CentOS 7 ====== +====== TLS-Verbindungen, verschlüsselte Kommunikation für Postfix 2.11 unter CentOS 7 ======
- +
-<WRAP center round todo 60%> +
-\\ **Artikel befindet sich gerade in der Überarbeitung!** +
-</WRAP> +
- +
 {{:centos:world.png?nolink&80 |Bild: Weltkugel }} \\ {{:centos:world.png?nolink&80 |Bild: Weltkugel }} \\
-Dass das Internet systembedingt unsicher ist, hat sich in aller Regel herumgesprochen.  Daten durchlaufen von der Quelle bis zum Ziel zahlreiche Server und Systeme, an denen die Daten, abgegriffen und/oder manipuliert werden können. Persönliche und vertrauliche Daten können so einfach Dritten in die Hände fallen, die mit großer krimineller Energie versuchen an diese Daten zu kommen. +Dass das Internet systembedingt unsicher ist, hat sich in aller Regel herumgesprochen.  Daten durchlaufen von der Quelle bis zum Ziel zahlreiche Server und Systeme, an denen die Daten, abgegriffen und/oder manipuliert werden können. Persönliche und vertrauliche Daten können so einfach Dritten in die Hände fallen, die mit grosser krimineller Energie versuchen an diese Daten zu kommen. 
  
 Inwieweit staatliche Stellen den Datenverkehr abhören, protokollieren und abgreifen und zu manipulieren bzw. zensieren versuchen, weiss  Inwieweit staatliche Stellen den Datenverkehr abhören, protokollieren und abgreifen und zu manipulieren bzw. zensieren versuchen, weiss 
Zeile 21: Zeile 15:
 Nicht nur auf [[centos:openpgp_beim_mua|Seiten der Endkunden]], die mit Hilfe von [[http://www.openpgp.org/|OpenPGP]] oder [[http://www.smime.org/|S/MIME]] vertraulich kommunizieren, sondern auch serverseitig kann der Übertragungsweg mit einfachen Mitteln entsprechend verschlüsselt werden. {{:centos:mailserver:lan_security.png?96 |SSL/TLS Logo}} Für die vertrauliche Kommunikation zwischen unseren Usern und unserm [[centos:mailserver:start|Postfix-Mailserver]], wie auch zwischen fremden Postfix bietet sich eine verschlüsselte Kommunikation mit Hilfe von **SSL/TLS** an. Nicht nur auf [[centos:openpgp_beim_mua|Seiten der Endkunden]], die mit Hilfe von [[http://www.openpgp.org/|OpenPGP]] oder [[http://www.smime.org/|S/MIME]] vertraulich kommunizieren, sondern auch serverseitig kann der Übertragungsweg mit einfachen Mitteln entsprechend verschlüsselt werden. {{:centos:mailserver:lan_security.png?96 |SSL/TLS Logo}} Für die vertrauliche Kommunikation zwischen unseren Usern und unserm [[centos:mailserver:start|Postfix-Mailserver]], wie auch zwischen fremden Postfix bietet sich eine verschlüsselte Kommunikation mit Hilfe von **SSL/TLS** an.
  
-Mit Hilfe von **[[centos:mail_c7:mta_5?&#perfect_forward_secrecy|PFS]]**((**P**erfect **F**orward **S**ecrecy)) können wir leicht und einfach sicherstellen, dass aufgezeichnete Datenströme im nachhinein nicht entschlüsselt werden können. Dies wird erreicht, da die beiden Kommunikationspartner, einen separaten und individuellen temporären Schlüssel zur Datensicherung verweden. Dieser Schlüssel ist dabei nicht fix, sondern wird bei jeder Verbindung neu ausgehandelt. Da aber der Schlüssel an sich nicht ausgetauscht werden muss, ist es auch nicht möglich, den eventuell aufgezeichneten Datenstrom zu entschlüsseln, da der dazu benötigte Schlüssel nicht im Datenstrom enthalten war. +Mit Hilfe von **[[centos:mail_c7:mta_5?&#perfect_forward_secrecy|PFS]]**((**P**erfect **F**orward **S**ecrecy)) können wir leicht und einfach sicherstellen, dass aufgezeichnete Datenströme im nachhinein nicht entschlüsselt werden können. Dies wird erreicht, da die beiden Kommunikationspartner, einen separaten und individuellen temporären Schlüssel zur Datensicherung verwenden. Dieser Schlüssel ist dabei nicht fix, sondern wird bei jeder Verbindung neu ausgehandelt. Da aber der Schlüssel an sich nicht ausgetauscht werden muss, ist es auch nicht möglich, den eventuell aufgezeichneten Datenstrom zu entschlüsseln, da der dazu benötigte Schlüssel nicht im Datenstrom enthalten war. 
  
-Perfect Forward Secrecy (PFS) basiert auf der Idee, dass Client und Server ihre Kommunikation über einen zusätzlichen temporären Schlüssel absichern, der wechselt. Da der Verbindungsaufbau so gestrickt ist, daß der Schlüssel selbst gar nicht ausgetauscht werden muß, kann der jeweils benutzte Sitzungsschlüssel selbst auch nicht aufgezeichnet werden. Eine nachträgliche Entschlüsselung einer früher aufgezeichneten Session ist damit nicht mehr möglich. +Perfect Forward Secrecy (PFS) basiert auf der Idee, dass Client und Server ihre Kommunikation über einen zusätzlichen temporären Schlüssel absichern, der wechselt. Da der Verbindungsaufbau so gestrickt ist, dass der Schlüssel selbst gar nicht ausgetauscht werden muss, kann der jeweils benutzte Sitzungsschlüssel selbst auch nicht aufgezeichnet werden. Eine nachträgliche Entschlüsselung einer früher aufgezeichneten Session ist damit nicht mehr möglich. 
  
 Die für die Verschlüsselung notwendigen //Schlüssel// und //Zertifikate// erstellen wir mittels [[http://www.openssl.org|OpenSSL]], einer freien Implementierung von **SSL**((**S**ecure **S**ockets **L**ayer)). **SSL** oder **TLS**((**T**ransport **L**ayer **S**ecurity)) ist ein hybrides Verschlüsselungsprotokoll zur Datenübertragung im Internet. Unter TLS 1.0, 1.1 und 1.2 versteht man die standardisierten Weiterentwicklungen von SSL 3.0 (TLS 1.0 steht neu für SSL 3.1). Dies bedeutet also, SSL wird nun unter dem Namen TLS weiterentwickelt. Die für die Verschlüsselung notwendigen //Schlüssel// und //Zertifikate// erstellen wir mittels [[http://www.openssl.org|OpenSSL]], einer freien Implementierung von **SSL**((**S**ecure **S**ockets **L**ayer)). **SSL** oder **TLS**((**T**ransport **L**ayer **S**ecurity)) ist ein hybrides Verschlüsselungsprotokoll zur Datenübertragung im Internet. Unter TLS 1.0, 1.1 und 1.2 versteht man die standardisierten Weiterentwicklungen von SSL 3.0 (TLS 1.0 steht neu für SSL 3.1). Dies bedeutet also, SSL wird nun unter dem Namen TLS weiterentwickelt.
Zeile 270: Zeile 264:
 <file bash edh_keygen>#!/bin/bash <file bash edh_keygen>#!/bin/bash
 # Script zum Erstellen der Diffie Hellman Schlüssel # Script zum Erstellen der Diffie Hellman Schlüssel
-# Django <django@mailserver.guru> (c) 2015+# Django <django@nausch.org> (c) 2015
 cd /etc/pki/tls/tmp cd /etc/pki/tls/tmp
 umask 022 umask 022
Zeile 276: Zeile 270:
 openssl dhparam -out dh_1024.pem 1024 openssl dhparam -out dh_1024.pem 1024
 openssl dhparam -out dh_2048.pem 2048 openssl dhparam -out dh_2048.pem 2048
-chmod 640 dh_512.pem dh_1024.pem dh_2048.pem+openssl dhparam -out dh_4096.pem 4096 
 +chmod 640 dh_512.pem dh_1024.pem dh_2048.pem dh_4096.pem
 /usr/bin/rsync /etc/pki/tls/tmp/*.pem /etc/pki/tls/private/ /usr/bin/rsync /etc/pki/tls/tmp/*.pem /etc/pki/tls/private/
 rm *.pem -f rm *.pem -f
-</file>+systemctl condrestart postfix</file>
  
-Damit das Script auch ausgeführt werdden kann, versehen wir es noch mit den benötigten Rechten.+Damit das Script auch ausgeführt werden kann, versehen wir es noch mit den benötigten Rechten.
    # chmod +x edh_keygen    # chmod +x edh_keygen
  
 <WRAP center round tip> <WRAP center round tip>
-Warum das ganze in ein Shellsript packen, wird nun sich der ein oder andere gefragt haben. Ganz einfach: Wenn wir das Script nun nach **///etc/cron.hourly//** verschieben, können wir einfach stündlich neu generierte Schlüssel generieren und auch verwenden!+Warum das ganze in ein Shellsript packen, wird nun sich der ein oder andere gefragt haben. Ganz einfach: Wenn wir das Script nun nach **///etc/cron.daily//** verschieben, können wir einfach einmal am Tag neu generierte Schlüssel generieren und auch verwenden!
 </WRAP> </WRAP>
-   # mv edh_keygen /etc/cron.hourly/+   # mv edh_keygen /etc/cron.daily/ 
 + 
 +Zum Testen welche Schlüssel vom Server verwendet werden, können wir folgenden Befehl verwenden: 
 +   $ echo | openssl s_client -starttls smtp -connect smtp.nausch.org:25 -cipher "EDH" 2>/dev/null | grep -ie "Server .* key" 
 + 
 +Als Antwort erhalten wie zwei Zeilen mit Angabe zu den Schlüssellängen. Die erste Zeile beschreibt den temporären Diffie Hellman, die zweite Zeile den RSA-Schlüssel des TLS-Zertifikats. 
 +  Server Temp Key: DH, 4096 bits 
 +  Server public key is 4096 bit
  
  
Zeile 570: Zeile 572:
    -rw-r--r-- 1 root root 3394 Jul 23 14:07 cakey.pem    -rw-r--r-- 1 root root 3394 Jul 23 14:07 cakey.pem
  
-Sichtshalber ändern wir die Rechte so, dass die Schlüsseldateien nur für root lesbar sind: +Sicherheitshalber ändern wir die Rechte so, dass die Schlüsseldateien nur für root lesbar sind: 
    # chmod 400 *.pem    # chmod 400 *.pem
 Bei Bedarf kann man mit **openssl rsa -in <keyfile> -noout -text** die Schlüsseldatei öffnen und ausgeben lassen. Bei Bedarf kann man mit **openssl rsa -in <keyfile> -noout -text** die Schlüsseldatei öffnen und ausgeben lassen.
Zeile 1124: Zeile 1126:
  
 <html><pre class="code"> <html><pre class="code">
-<font style="color: rgb(0, 0, 0)"># </font><font style="color: rgb(0, 0, 255)">openssl genrsa -out serverkey.pem -aes256</font>+<font style="color: rgb(0, 0, 0)"># </font><font style="color: rgb(0, 0, 255)">openssl genrsa -out serverkey.pem -aes256 4096</font>
 </pre></html> </pre></html>
 <html><pre class="code"> <html><pre class="code">
Zeile 1311: Zeile 1313:
  
 Anschließend legen wir dort die drei benötigten Dateien ab: Anschließend legen wir dort die drei benötigten Dateien ab:
-  - unseren //Serverzertifikat// : **servercert.pem** <code> # mv /etc/pki/CA/servercert.pem /etc/pki/postfix/certs/servercert_2014-10-19.pem</code> + 
-  - unseren //Serverschlüssel// : **serverkey.pem** <code> # mv /etc/pki/CA/serverkey.pem /etc/pki/postfix/private/serverkey_2014-10-19.pem</code> +<WRAP center round tip 60%> 
-  - das //CA-Zertifikat// : **cacert.pem** <code> # cp /etc/pki/CA/cacert.pem /etc/pki/dovecot/certs/</code> +Die Dateinamen passen wir natürlich den lokalen Gegebenheiten nach an! 
-  - und schützen diese Dateien mit den Dateirechten **400**: <code> # chmod 400 /etc/pki/dovecot/private/*.pem +</WRAP> 
- # chmod 400 /etc/pki/dovecot/certs/*.pem</code>+ 
 + 
 +  - unseren //Serverzertifikat// : **servercert.pem** <code> # mv /etc/pki/CA/servercert.pem /etc/pki/postfix/certs/servercert.pem</code> 
 +  - unseren //Serverschlüssel// : **serverkey.pem** <code> # mv /etc/pki/CA/serverkey.pem /etc/pki/postfix/private/serverkey.pem</code> 
 +  - das //CA-Zertifikat// : **cacert.pem** <code> # cp /etc/pki/CA/cacert.pem /etc/pki/postfix/certs/</code> 
 +  - und schützen diese Dateien mit den Dateirechten **400**: <code> # chmod 400 /etc/pki/postfix/private/*.pem 
 + # chmod 400 /etc/pki/postfix/certs/*.pem</code> 
  
  
Zeile 1690: Zeile 1699:
     * Variante **a**: Hier weisen wir dem Postfix-Parameter **smtpd_tls_cert_file** der Datei zu, in dem sich "nur" das Serverzertifikat befindet. Beim Parameter **smtpd_tls_CAfile** verweisen wir auf die Datei mit den beiden Root-Zertifikats-Kette zu. <html><br><br></html> <code bash># Django : 2014-10-19 - SSL/TLS - Schutz durch verschlüsselte Verbindungen     * Variante **a**: Hier weisen wir dem Postfix-Parameter **smtpd_tls_cert_file** der Datei zu, in dem sich "nur" das Serverzertifikat befindet. Beim Parameter **smtpd_tls_CAfile** verweisen wir auf die Datei mit den beiden Root-Zertifikats-Kette zu. <html><br><br></html> <code bash># Django : 2014-10-19 - SSL/TLS - Schutz durch verschlüsselte Verbindungen
 #          (Postfixbuch: Kapitel 20.2) #          (Postfixbuch: Kapitel 20.2)
-#          Pfade für die Key- und Zertifikatsdateien+#          Pfade für die Key- und Zertifikatsdateien für den SMTP-Daemon
 #          Konfigurationsbeispiel "a" bei dem das Serverzertifikat und die beiden  #          Konfigurationsbeispiel "a" bei dem das Serverzertifikat und die beiden 
 #          Root-Zertifikate der CA in getrennten Dateien vorliegen. #          Root-Zertifikate der CA in getrennten Dateien vorliegen.
Zeile 1703: Zeile 1712:
     * Variante **b**: Hier weisen wir dem Postfix-Parameter **smtpd_tls_cert_file** diejenige Datei zu, in der, angefangen vom Serverzertifikat bis hin zum selbstsignierten Root-Zertifikat der CA, __alle__ benötigten Zertifikate vorfinden. Den Parameter **smtpd_tls_CAfile ** lassen wir erst einmal unbesetzt! <html><br><br></html> <code bash># Django : 2014-10-19 - SSL/TLS - Schutz durch verschlüsselte Verbindungen     * Variante **b**: Hier weisen wir dem Postfix-Parameter **smtpd_tls_cert_file** diejenige Datei zu, in der, angefangen vom Serverzertifikat bis hin zum selbstsignierten Root-Zertifikat der CA, __alle__ benötigten Zertifikate vorfinden. Den Parameter **smtpd_tls_CAfile ** lassen wir erst einmal unbesetzt! <html><br><br></html> <code bash># Django : 2014-10-19 - SSL/TLS - Schutz durch verschlüsselte Verbindungen
 #          (Postfixbuch: Kapitel 20.2) #          (Postfixbuch: Kapitel 20.2)
-#          Pfade für die Key- und Zertifikatsdateien+#          Pfade für die Key- und Zertifikatsdateien für den SMTP-Daemon
 #          Konfigurationsbeispiel "b" bei dem das Serverzertifikat und die beiden  #          Konfigurationsbeispiel "b" bei dem das Serverzertifikat und die beiden 
 #          Root-Zertifikate der CA in einer gemainsamen Dateien vorliegen. #          Root-Zertifikate der CA in einer gemainsamen Dateien vorliegen.
Zeile 1740: Zeile 1749:
 <code bash># Django : 2014-10-19 - SSL/TLS - Schutz durch verschlüsselte Verbindungen <code bash># Django : 2014-10-19 - SSL/TLS - Schutz durch verschlüsselte Verbindungen
 #          (Postfixbuch: Kapitel 20.2) #          (Postfixbuch: Kapitel 20.2)
-#          Pfade für die Key- und Zertifikatsdateien+#          Pfade für die Key- und Zertifikatsdateien für den SMTP-Daemon
 #          Konfigurationsbeispiel "a" bei dem das Serverzertifikat und die beiden  #          Konfigurationsbeispiel "a" bei dem das Serverzertifikat und die beiden 
 #          Root-Zertifikate der CA in einer gemainsamen Dateien vorliegen. #          Root-Zertifikate der CA in einer gemainsamen Dateien vorliegen.
Zeile 1777: Zeile 1786:
 <code># Django : 2014-10-19 - SSL/TLS - Schutz durch verschlüsselte Verbindungen <code># Django : 2014-10-19 - SSL/TLS - Schutz durch verschlüsselte Verbindungen
 #          (Postfixbuch: Kapitel 20.2) #          (Postfixbuch: Kapitel 20.2)
-#          Pfade für die Key- und Zertifikatsdateien+#          Pfade für die Key- und Zertifikatsdateien für den SMTP-Client
 #          Konfigurationsbeispiel "b" bei dem das Serverzertifikat und die beiden  #          Konfigurationsbeispiel "b" bei dem das Serverzertifikat und die beiden 
 #          Root-Zertifikate der CA in einer gemainsamen Dateien vorliegen. #          Root-Zertifikate der CA in einer gemainsamen Dateien vorliegen.
Zeile 1783: Zeile 1792:
 #          smtpd_tls_cert_file =  #          smtpd_tls_cert_file = 
 #          smtpd_tls_CAfile = #          smtpd_tls_CAfile =
-smtpd_tls_key_file = /etc/pki/postfix/private/mx01.nausch.org.serverkey_151015.pem +smtp_tls_key_file   = $smtpd_tls_key_file 
-smtpd_tls_cert_file /etc/pki/postfix/certs/rapidssl_2015-10-15_mx01.nausch.org.full_certificate_chain.pem +smtp_tls_cert_file  $smtpd_tls_cert_file 
-smtpd_tls_CAfile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem+smtp_tls_CAfile     
 +</code>
  
 +Soll der Client über ein eigenes Zertifikat verfügen, müssen wir natürlich statt der Variablen, die Pfadangaben zum Zertifikat und Schlüssel angeben.
 +Ist dieses erfolgt, wird der Empfänger in den Mailhaedern sehen können, dass sich unser Client mit seinem Certifikat <html><font style="color: rgb(30, 180, 29)"><b>Client CN "mx01.nausch.org", Issuer "RapidSSL SHA256 CA - G4"</b></font></html> gemeldet hatte, da der Zielserver nach diesem fragte. Vertraut der Empfänger der Zertifikatskette wird auch ein Verify mit positivem Ergebnis <html><font style="color: rgb(30, 180, 29)"><b>verified OK</b></font></html> beendet. 
  
 +<html><pre class="code">from mx01.nausch.org (mx01.nausch.org [217.91.103.190])
 +   (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 +   (<font style="color: rgb(30, 180, 29)"><b>Client CN "mx01.nausch.org", Issuer "RapidSSL SHA256 CA - G4" (verified OK)</b></font>)
 +   by mx1.piratenpartei-bayern.de (Postfix) with ESMTPS
 +   for <dj4n90@piraten-ebersberg.de>; Thu, 22 Oct 2015 14:38:38 +0200 (CEST)</pre></html>
 +
 +Da wir unserem SMTP-Client noch keine Root-CA-Zertifikate an die Hand gegeben haben, kann dieser auch nicht prüfen, ob dem Serverzertifikat, welches ihm der SMTP-Daemon des Zielservers übermittelte, vertraut werden kann. Im Maillog unseres Servers sehen wir auch dass eine "**Untrusted TLS connection established to**" erfolgte.
 +
 +
 +<html><pre class="code">Oct 22 14:38:38 vml000087 postfix/smtp[2640]: <html><font style="color: rgb(178, 24, 24)"><b>Untrusted</b></font> TLS connection established to mx1.piratenpartei-bayern.de[88.198.212.215]:25: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)</pre></html>
 +
 +Wir vervollständigen nun unsere postfix-Konfiguration und geben beim Parameter **smtp_tls_CAfile** an, dass er die gleiche Datei verwenden soll, die auch schon der Daemon verwendet.
 +
 +<code># Django : 2014-10-19 - SSL/TLS - Schutz durch verschlüsselte Verbindungen
 +#          (Postfixbuch: Kapitel 20.2)
 +#          Pfade für die Key- und Zertifikatsdateien für den SMTP-Client
 +#          Konfigurationsbeispiel "b" bei dem das Serverzertifikat und die beiden 
 +#          Root-Zertifikate der CA in einer gemainsamen Dateien vorliegen.
 +# default: smtpd_tls_key_file = $smtpd_tls_cert_file
 +#          smtpd_tls_cert_file = 
 +#          smtpd_tls_CAfile =
 +smtp_tls_key_file   = $smtpd_tls_key_file
 +smtp_tls_cert_file  = $smtpd_tls_cert_file
 +smtp_tls_CAfile     = $smtpd_tls_CAfile
 </code> </code>
 +
 +Baut nun unser SMTP-Client eine Verbindung zu einem Zielserver auf und stuft die Verbindung an Hand des Zertifikates als vertrauenswürdig ein, wird im Maillog unseres Servers dies mit einem <html><font style="color: rgb(30, 180, 29)"><b>Trusted</b></font></html> vermewrkt.
 +
 +<html><pre class="code">Oct 22 15:06:55 vml000087 postfix/smtp[9255]: <font style="color: rgb(30, 180, 29)"><b>Trusted</b></font> TLS connection established to mx1.piratenpartei-bayern.de[88.198.212.215]:25: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)</pre></html>
 +
 ==== Ciphers - Chiffren zur Ver- und Entschlüsselung  ==== ==== Ciphers - Chiffren zur Ver- und Entschlüsselung  ====
 === opportunistische Verschlüsselung === === opportunistische Verschlüsselung ===
Zeile 1801: Zeile 1842:
 Da die Verschlüsselung optional ist, ist eine Änderung der Option nicht notwendig, es sei denn die Änderung ist notwendig und daher gut überlegt sowie unumgänglich! Da die Verschlüsselung optional ist, ist eine Änderung der Option nicht notwendig, es sei denn die Änderung ist notwendig und daher gut überlegt sowie unumgänglich!
 </WRAP> </WRAP>
 +
 +Der Parameter **smtpd_tls_ciphers** definiert, welchen TLS Cipher Grad der Postfix SMTP-Daemon (ankommende Verbindungen) bei der opportunistischen TLS-Verschlüsselung verwenden soll.
  
 <code bash># Django : 2014-10-25 - Minimaler TLS Cipher Grad für die opportunistischen TLS-Verschlüsselung <code bash># Django : 2014-10-25 - Minimaler TLS Cipher Grad für die opportunistischen TLS-Verschlüsselung
-#          des Postfix SMTP-Daemon+#          des Postfix SMTP-Daemon bei ankommenden Verbindungen
 #          http://www.postfix.org/postconf.5.html#smtpd_tls_ciphers #          http://www.postfix.org/postconf.5.html#smtpd_tls_ciphers
 # default: smtpd_tls_ciphers = export # default: smtpd_tls_ciphers = export
 </code> </code>
  
-Der Parameter **smtp_tls_ciphers** definiert, welchen TLS Cipher Grad der Postfix SMTP-Client bei der opportunistischen TLS-Verschlüsselung verwenden soll. +Der Parameter **smtp_tls_ciphers** definiert, welchen TLS Cipher Grad der Postfix SMTP-Client (abgehende Verbindungen) bei der opportunistischen TLS-Verschlüsselung verwenden soll. 
  
 <code bash># Django : 2014-10-25 - Minimaler TLS Cipher Grad für die opportunistischen TLS-Verschlüsselung <code bash># Django : 2014-10-25 - Minimaler TLS Cipher Grad für die opportunistischen TLS-Verschlüsselung
-#          des Postfix SMTP-Client+#          des Postfix SMTP-Client bei ausgehenden Verbindungen
 #          http://www.postfix.org/postconf.5.html#smtp_tls_ciphers #          http://www.postfix.org/postconf.5.html#smtp_tls_ciphers
 # default: smtp_tls_ciphers = export # default: smtp_tls_ciphers = export
Zeile 1822: Zeile 1865:
 #          http://www.postfix.org/postconf.5.html#smtpd_tls_exclude_ciphers #          http://www.postfix.org/postconf.5.html#smtpd_tls_exclude_ciphers
 # default: smtpd_tls_exclude_ciphers =  # default: smtpd_tls_exclude_ciphers = 
 +smtpd_tls_exclude_ciphers =
 +           aNULL
 +           eNULL
 +           EXPORT
 +           DES
 +           3DES
 +           RC4
 +           MD5
 +           PSK
 +           aECDH
 +           EDH-DSS-DES-CBC3-SHA
 +           EDH-RSA-DES-CDC3-SHA
 +           KRB5-DE5
 +           CBC3-SHA
 </code> </code>
  
Zeile 1830: Zeile 1887:
 #          http://www.postfix.org/postconf.5.html#smtp_tls_exclude_ciphers #          http://www.postfix.org/postconf.5.html#smtp_tls_exclude_ciphers
 # default: smtp_tls_exclude_ciphers =  # default: smtp_tls_exclude_ciphers = 
 +smtp_tls_exclude_ciphers =
 +           aNULL
 +           eNULL
 +           EXPORT
 +           DES
 +           3DES
 +           RC4
 +           MD5
 +           PSK
 +           aECDH
 +           EDH-DSS-DES-CBC3-SHA
 +           EDH-RSA-DES-CDC3-SHA
 +           KRB5-DE5
 +           CBC3-SHA
 +           AES128-SHA
 +           DHE-RSA-AES128-SHA
 +           AES256-SHA
 +           DHE-RSA-AES256-SHA
 +           CAMELLIA128-SHA
 +           DHE-RSA-CAMELLIA128-SHA
 +           CAMELLIA256-SHA
 +           DHE-RSA-CAMELLIA256-SHA
 +           ECDHE-RSA-AES128-SHA
 +           ECDHE-RSA-AES256-SHA
 </code> </code>
  
Zeile 1835: Zeile 1916:
 Der Parameter **smtpd_tls_mandatory_ciphers** definiert, welchen TLS Cipher Grad der Postfix SMTP-Daemon bei der verpflichtenden TLS-Verschlüsselung verwenden soll. Der Parameter **smtpd_tls_mandatory_ciphers** definiert, welchen TLS Cipher Grad der Postfix SMTP-Daemon bei der verpflichtenden TLS-Verschlüsselung verwenden soll.
  
-<code bash># Django : 2014-10-19 - Minimum TLS Cipher für die verpflichtende Ver- +<code bash># Django : 2014-10-19 - Minimum TLS Cipher für die verpflichtende Verschlüsselung 
-#          schlüsselung des Postfix SMTP-Daemon+#          des Postfix SMTP-Daemon bei ankommenden Verbindungen
 #          http://www.postfix.org/postconf.5.html#smtpd_tls_mandatory_ciphers #          http://www.postfix.org/postconf.5.html#smtpd_tls_mandatory_ciphers
 # default: smtpd_tls_mandatory_ciphers = medium # default: smtpd_tls_mandatory_ciphers = medium
Zeile 1843: Zeile 1924:
 Der Parameter **smtp_tls_mandatory_ciphers** definiert, welchen TLS Cipher Grad der Postfix SMTP-Client bei der verpflichtenden TLS-Verschlüsselung verwenden soll. Der Parameter **smtp_tls_mandatory_ciphers** definiert, welchen TLS Cipher Grad der Postfix SMTP-Client bei der verpflichtenden TLS-Verschlüsselung verwenden soll.
  
-<code bash># Django : 2014-10-19 - Minimum TLS Cipher für die verpflichtende Ver- +<code bash># Django : 2014-10-19 - Minimum TLS Cipher für die verpflichtende Verschlüsselung 
-#          schlüsselung des Postfix SMTP-Clients.+#          des Postfix SMTP-Clients bei ausgehenden Verbindungen
 #          http://www.postfix.org/postconf.5.html#smtp_tls_mandatory_ciphers #          http://www.postfix.org/postconf.5.html#smtp_tls_mandatory_ciphers
 # default: smtp_tls_mandatory_ciphers = medium # default: smtp_tls_mandatory_ciphers = medium
Zeile 1889: Zeile 1970:
            EDH-RSA-DES-CDC3-SHA            EDH-RSA-DES-CDC3-SHA
            KRB5-DE5            KRB5-DE5
-           CBC3-SHA</code>+           CBC3-SHA 
 +           AES128-SHA 
 +           DHE-RSA-AES128-SHA 
 +           AES256-SHA 
 +           DHE-RSA-AES256-SHA 
 +           CAMELLIA128-SHA 
 +           DHE-RSA-CAMELLIA128-SHA 
 +           CAMELLIA256-SHA 
 +           DHE-RSA-CAMELLIA256-SHA 
 +           ECDHE-RSA-AES128-SHA 
 +           ECDHE-RSA-AES256-SHA</code> 
 + 
 ==== Protokolle  ==== ==== Protokolle  ====
 +=== opportunistische Verschlüsselung ===
 Mit dem Parameter **smtpd_tls_protocols** kann definiert werden, welche TLS Protokolle bei der opportunistischen Verschlüsselung des ankommenden SMTP-Verkehrs beim Postfix SMTP Daemon ein- oder ausgeschlossen werden sollen. Mit dem Parameter **smtpd_tls_protocols** kann definiert werden, welche TLS Protokolle bei der opportunistischen Verschlüsselung des ankommenden SMTP-Verkehrs beim Postfix SMTP Daemon ein- oder ausgeschlossen werden sollen.
 <code bash># Django : 2014-10-19 - Positiv-/Negativliste aller TLS-Protokolle, die der  <code bash># Django : 2014-10-19 - Positiv-/Negativliste aller TLS-Protokolle, die der 
Zeile 1913: Zeile 2007:
 lmtp_tls_protocols = $smtp_tls_protocols</code> lmtp_tls_protocols = $smtp_tls_protocols</code>
  
 +=== verpflichtende Verschlüsselung ===
 Mit dem Parameter **smtpd_tls_mandatory_protocols** wird definiert, welche TLS Protokolle bei der verpflichtenden Verschlüsselung des ankommenden SMTP-Verkehrs beim Postfix SMTP Daemon ein- oder ausgeschlossen werden sollen. Mit dem Parameter **smtpd_tls_mandatory_protocols** wird definiert, welche TLS Protokolle bei der verpflichtenden Verschlüsselung des ankommenden SMTP-Verkehrs beim Postfix SMTP Daemon ein- oder ausgeschlossen werden sollen.
  
Zeile 2213: Zeile 2308:
 Den erhaltenen Fingerprint //**C3:17:BB:DC:7F:E3:51:F6:3E:48:E7:4F:5A:48:48:6C:94:24:63:0E**// lassen wir uns nun vom Postmaster des Zielmailservers bestätigen. Hierzu wählen wir ein anderes Übertragungsmedium wie z.B. Telefon oder Faksimile.  Den erhaltenen Fingerprint //**C3:17:BB:DC:7F:E3:51:F6:3E:48:E7:4F:5A:48:48:6C:94:24:63:0E**// lassen wir uns nun vom Postmaster des Zielmailservers bestätigen. Hierzu wählen wir ein anderes Übertragungsmedium wie z.B. Telefon oder Faksimile. 
  
-Keinenfalls vermerken wir  **__ohne__** weitere Prüfung den Fingerprints in einer lokalen Konfigurationsdatei!+Keinesfalls vermerken wir  **__ohne__** weitere Prüfung den Fingerprints in einer lokalen Konfigurationsdatei!
 </WRAP> </WRAP>
  
-Den **__verifizierten Fingerprint__** hinterlegen wir nun in einer eigenen Konfigurationsdatei //**smtp_tls_policy_maps**// die wir anschließend unserem Postfix-Mailserver bekannt geben.  +Den **__verifizierten Fingerprint__** hinterlegen wir nun in einer eigenen Konfigurationsdatei //**smtp_tls_policy_maps**// die wir anschliessend unserem Postfix-Mailserver bekannt geben.  
  
 Zunächst legen wir uns die benötigte Konfigurationsdatei an. Zunächst legen wir uns die benötigte Konfigurationsdatei an.
Zeile 2238: Zeile 2333:
    # postmap /etc/postfix/smtp_tls_policy_maps    # postmap /etc/postfix/smtp_tls_policy_maps
  
-Damit nun der SMTP-Client weiß wie er den richtigen Fingerprint (MD5 oder SHA1) des empfangenen Server-Zertifikates ermitteln soll, müssen wir den verwendeten **[[https://de.wikipedia.org/wiki/Hashfunktion|Hash-Algorithmus]]** unserem Server noch vorgeben. Dies tragen wir in der Sektion **TLS/SSL-VERSCHLÜSSELUNG** unserer Postfixinstallation ein.+Damit nun der SMTP-Client weiss wie er den richtigen Fingerprint (MD5 oder SHA1) des empfangenen Server-Zertifikates ermitteln soll, müssen wir den verwendeten **[[https://de.wikipedia.org/wiki/Hashfunktion|Hash-Algorithmus]]** unserem Server noch vorgeben. Dies tragen wir in der Sektion **TLS/SSL-VERSCHLÜSSELUNG** unserer Postfixinstallation ein.
    # vim  /etc/postfix/main.cf      # vim  /etc/postfix/main.cf  
  
Zeile 2294: Zeile 2389:
 Wir sehen in dem Beispiel die Einlieferung einer Nachricht via **submission Port 587**, gefolgt vom Verbindungsaufbau des **SMTP-Clients** in Richtung **mx1.tachtler.net[88.217.171.167]:25**.  Wir sehen in dem Beispiel die Einlieferung einer Nachricht via **submission Port 587**, gefolgt vom Verbindungsaufbau des **SMTP-Clients** in Richtung **mx1.tachtler.net[88.217.171.167]:25**. 
  
-Da wir aber den Fingerprint in unserer Konfigurationsdatei absichtlich falsch gesetzt habenkann die Überprüfung des Fingerprints kein positives Ergebnis bringen: +Wurde das Zertifikat ausgetauscht ohne dem versendenden Kommunikationspartner zu informierenscheitert die  verschlüsselte und verifizierte Verbindung, da die Überprüfung des Fingerprints kein positives Ergebnis mehr bringen kann
-   Oct 12 14:59:45 vml000087 postfix/smtp[20834]: CC17DC00092: to=<klaus@tachtler.net>, relay=mx1.tachtler.net[88.217.171.167]:25, delay=0.77, delays=0.06/0.01/0.7/0, dsn=4.7.5, status=deferred (Server certificate not verified) +   Oct  1 19:02:56 vml000087 postfix/smtp[2818]: Trusted TLS connection established to mx1.tachtler.net[88.217.171.167]:25: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits) 
-Die Nachricht wird also nicht versandt, sondern in die **//deffered//-Queue** gestellt!+   Oct  1 19:02:56 vml000087 postfix/smtp[2818]: DEA87C0008A: to=<klaus@tachtler.net>, relay=mx1.tachtler.net[88.217.171.167]:25, delay=88445, delays=88437/0.04/8.5/0, dsn=4.7.5, status=deferred (Server certificate not verified) 
 + 
 +Die Nachricht wird also nicht versandt, da nicht sichergestellt werden kann, dass wir auch wirklich mit dem richtigen Empfangssystem reden. Statt dessen wir die Nachricht in die **//deffered//-Queue** eingestelltAm besten überwacht man daher das **maillog** mit Hilfe einer gängigen Monitoring-Lösung wie **[[centos:web_c7:graylog2|graylog]]** oder **[[centos:web_c7:icinga:start|icinga 2]]**.
  
 <WRAP center round tip> <WRAP center round tip>
Zeile 2302: Zeile 2399:
  
 <WRAP center round important > <WRAP center round important >
-Hat man viele dieser Ziele, kann das mauelle Pflegen von Fingerprints zum zeitaufwändigen Unterfangen werden. Wesentlich einfacher ist hier die Nutzung einer verpflichtenden Verschlüsselung unter Zuhilfenahme der Option **dane-only**.+Hat man viele dieser Ziele, kann das manuelle Pflegen von Fingerprints zum zeitaufwändigen Unterfangen werden. Zumal bei anstehenden Zertifikatsänderungen rechtzeitig dafür gesorgt werden muss, dass das sendende System die neuen Fingerprints auch kennt. Beispiele aus der Praxis zeigen leider, dass viele professionelle Dienstleister und auch entsprechend versierte und geschulte Postmaster hier __grosse Schwierigkeiten__ beim Ablauf und rechtzeitigen Erneuerung der Fingerprints haben. \\ 
 +Wesentlich einfacher ist hier die Nutzung einer verpflichtenden Verschlüsselung unter Zuhilfenahme der Option **dane-only**.
 </WRAP> </WRAP>
  
Zeile 2389: Zeile 2487:
    # systemctl restart postfix.service    # systemctl restart postfix.service
  
 +Wir nun eine Nachricht an den Zielserver gesendet, für die wir einen **smtp_tls_security_level = //dane-only//** definiert haben, wird der Zertifikats-Fingerprint via DNSSEC-Anfrage geholt und mit dem Wert verglichen, den der SMTP-Client vom empfangenen Server-Zertifikat ermitelt hat. Sind beide Fingerprints gleich, wird unser MTA mit der Üertragung der Nachricht(en) fortfahren. Im Maillog unseres Servers wird dies entsprehend positiv vermerkt.
  
 +<code>Oct 13 09:53:36 vml000087 postfix/smtp[18312]: connect to mail.sys4.de[194.126.158.132]:25
 +Oct 13 09:53:36 vml000087 postfix/smtp[18312]: Verified TLS connection established to mail.sys4.de[194.126.158.132]:25: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
 +Oct 13 09:53:37 vml000087 postfix/smtp[18312]: 17D5FC00097: to=<p@sys4.de>, relay=mail.sys4.de[194.126.158.132]:25, delay=1.8, delays=0.05/0.02/0.71/1, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 3nZpz5107tz1G7x)
 +Oct 13 09:53:37 vml000087 postfix/qmgr[18157]: 17D5FC00097: removed
 +</code>
  
- +Unterscheiden sich aber beide Fingerprints wird die Kommunikation mit dem Zielsystem abgebrochen und die Nachricht in die **deffered**-Queue gestellt und ggfspäter wieder versucht die eMail zuzustellen
-FIXME +
- +
-Beispiel zu einem Konfigfehler: +
-<code>Oct 13 10:13:59 vml000087 postfix/smtp[1087]: warning: sys4.de: dane-only configured with dnssec lookups disabled +
-Oct 13 10:13:59 vml000087 postfix/smtp[1087]: warning: TLS policy lookup for sys4.de/mail.sys4.de: client TLS configuration problem +
-Oct 13 10:13:59 vml000087 postfix/smtp[1087]: warning: TLS policy lookup for sys4.de/mail.sys4.de: client TLS configuration problem</code> +
- +
-FIXME  +
-Negatives Überprüfungsergebnis des TLSA-Records (in diesem Fall war es der absichtlich zu Testzwecken gefälschte TLSA-Fingerprint des SMTP-Serverzeretifikates). +
  
 <code>Oct 13 12:32:22 mailslut1 postfix/smtp[27804]: Trusted TLS connection established to mx01.nausch.org[217.91.103.190]:25: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits) <code>Oct 13 12:32:22 mailslut1 postfix/smtp[27804]: Trusted TLS connection established to mx01.nausch.org[217.91.103.190]:25: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
Zeile 2407: Zeile 2501:
  
  
- 
- 
-FIXME 
- 
-<code>Oct 13 09:53:36 vml000087 postfix/smtp[18312]: connect to mail.sys4.de[194.126.158.132]:25 
-Oct 13 09:53:36 vml000087 postfix/smtp[18312]: Verified TLS connection established to mail.sys4.de[194.126.158.132]:25: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits) 
-Oct 13 09:53:37 vml000087 postfix/smtp[18312]: 17D5FC00097: to=<p@sys4.de>, relay=mail.sys4.de[194.126.158.132]:25, delay=1.8, delays=0.05/0.02/0.71/1, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 3nZpz5107tz1G7x) 
-Oct 13 09:53:37 vml000087 postfix/qmgr[18157]: 17D5FC00097: removed 
-</code> 
- 
-FIXME 
 ==== Perfect Forward Secrecy ==== ==== Perfect Forward Secrecy ====
 Zur Aktivierung von **[[http://www.postfix.org/FORWARD_SECRECY_README.html|PFS]]**((**P**erfect **F**orward **S**ecrecy)) sind nachfolgende Optionen von entscheidender Bedeutung. Zur Aktivierung von **[[http://www.postfix.org/FORWARD_SECRECY_README.html|PFS]]**((**P**erfect **F**orward **S**ecrecy)) sind nachfolgende Optionen von entscheidender Bedeutung.
Zeile 2427: Zeile 2510:
 # default: smtpd_tls_dh512_param_file = # default: smtpd_tls_dh512_param_file =
 #          smtpd_tls_dh1024_param_file = #          smtpd_tls_dh1024_param_file =
-smtpd_tls_dh1024_param_file = /etc/pki/postfix/private/dh_2048.pem+smtpd_tls_dh1024_param_file = /etc/pki/postfix/private/dh_4096.pem
 smtpd_tls_dh512_param_file = /etc/pki/postfix/private/dh_512.pem</code> smtpd_tls_dh512_param_file = /etc/pki/postfix/private/dh_512.pem</code>
   - **"Ephemeral Elliptic Curve Diffie-Hellman" Schlüsselaustausch**: Definition des Grads der Sicherheit beim EECDH Schlüsselaustausch \\ \\ <code bash># Django : 2014-10-19 - Grad der Sicherheit beim EECDH Schlüsselaustausch   - **"Ephemeral Elliptic Curve Diffie-Hellman" Schlüsselaustausch**: Definition des Grads der Sicherheit beim EECDH Schlüsselaustausch \\ \\ <code bash># Django : 2014-10-19 - Grad der Sicherheit beim EECDH Schlüsselaustausch
Zeile 2492: Zeile 2575:
 smtp_tls_loglevel = 1</code> smtp_tls_loglevel = 1</code>
  
-==== main.cf ==== 
-Somit ergibt sich (vorerst) folgende neue Abschnitt **TLS/SSL-Verschlüsselung** in unserer Hauptkonfigurationsdatei //**/etc/postfix/main.cf**//. 
- 
-<code bash>################################################################################ 
-## TLS/SSL-Verschlüsselung 
-# 
-# Django : 2014-10-19 - SSL/TLS - Schutz durch verschlüsselte Verbindungen 
-#          (Postfixbuch: Kapitel 20.2) 
-#          Pfade für die Key- und Zertifikatsdateien 
-# default: smtpd_tls_key_file = $smtpd_tls_cert_file 
-#          smtpd_tls_cert_file = 
-#          smtpd_tls_CAfile = 
-#          smtp_tls_CAfile = 
-smtpd_tls_key_file = /etc/pki/postfix/private/serverkey_2014-04-09.pem 
-smtpd_tls_cert_file = /etc/pki/postfix/certs/mx01.nausch.org.servercert.pem 
-smtpd_tls_CAfile = /etc/pki/postfix/certs/rapid_geotrust_equifax_bundle.pem 
- 
-smtp_tls_CAfile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem 
- 
- 
-# Django : 2014-10-25 - Minimaler TLS Cipher Grad für die opportunistischen TLS-Verschlüsselung 
-#          des Postfix SMTP-Daemon 
-#          http://www.postfix.org/postconf.5.html#smtpd_tls_ciphers 
-# default: smtpd_tls_ciphers = export 
- 
-# Django : 2014-10-25 - Minimaler TLS Cipher Grad für die opportunistischen TLS-Verschlüsselung 
-#          des Postfix SMTP-Client 
-#          http://www.postfix.org/postconf.5.html#smtp_tls_ciphers 
-# default: smtp_tls_ciphers = export 
- 
-# Django : 2014-10-25 - Liste der Chiffren oder Chiffre-Typen, die bei allen TLS  
-#          Sicherheitsstufen des Postfix SMTP-Daemon ausgeschlossen werden sollen. 
-#          http://www.postfix.org/postconf.5.html#smtpd_tls_exclude_ciphers 
-# default: smtpd_tls_exclude_ciphers =  
- 
-# Django : 2014-10-25 - Liste der Chiffren oder Chiffre-Typen des Postfix SMTP-Client   
-#          bei allen TLS Sicherheitsstufen ausgeschlossen werden sollen. 
-#          http://www.postfix.org/postconf.5.html#smtp_tls_exclude_ciphers 
-# default: smtp_tls_exclude_ciphers =  
- 
-# Django : 2014-10-19 - Minimum TLS Cipher für die verpflichtende Ver- 
-#          schlüsselung des Postfix SMTP-Daemon 
-#          http://www.postfix.org/postconf.5.html#smtpd_tls_mandatory_ciphers 
-# default: smtpd_tls_mandatory_ciphers = medium 
-smtpd_tls_mandatory_ciphers = high 
- 
-# Django : 2014-10-19 - Minimum TLS Cipher für die verpflichtende Ver- 
-#          schlüsselung des Postfix SMTP-Clients. 
-#          http://www.postfix.org/postconf.5.html#smtp_tls_mandatory_ciphers 
-# default: smtp_tls_mandatory_ciphers = medium 
-smtp_tls_mandatory_ciphers = high 
- 
-# Django : 2014-10-19 - Ausschlussliste der verpflichtenden TLS Verschlüsselung 
-#          des postfix SMTP-Daemons. 
-#          http://www.postfix.org/postconf.5.html#smtpd_tls_mandatory_exclude_ciphers 
-# default: smtpd_tls_mandatory_exclude_ciphers = 
-smtpd_tls_mandatory_exclude_ciphers = 
-           aNULL 
-           MD5 
-           RC4 
- 
-# Django : 2014-10-19 - Ausschlussliste der verpflichtenden TLS Verschlüsselung 
-#          des postfix SMTP-Clients. 
-#          http://www.postfix.org/postconf.5.html#smtp_tls_mandatory_exclude_ciphers 
-# default: smtp_tls_mandatory_exclude_ciphers = 
-smtp_tls_mandatory_exclude_ciphers = 
-           aNULL 
-           MD5 
-           RC4 
- 
-# Django : 2014-10-19 - Positiv-/Negativliste aller TLS-Protokolle, die der  
-#          Postfix SMTP-Server bei der opportunischtischen Verschlüsselung 
-#          berücksichtigen soll. 
-#          http://www.postfix.org/postconf.5.html#smtpd_tls_protocols 
-# default: smtpd_tls_protocols =  
-smtpd_tls_protocols =  
-           !SSLv2  
-           !SSLv3 
- 
-# Django : 2014-10-19 - Positiv-/Negativliste aller TLS-Protokolle, die der  
-#          Postfix SMTP-/LMTP-Client bei der opportunischtischen Verschlüsselung 
-#          berücksichtigen soll. 
-#          http://www.postfix.org/postconf.5.html#smtp_tls_protocols 
-# default: smtp_tls_protocols = !SSLv2  
-#          lmtp_tls_protocols = !SSLv2 
-smtp_tls_protocols =  
-           !SSLv2  
-           !SSLv3 
-lmtp_tls_protocols = $smtp_tls_protocols 
- 
-# Django : 2014-10-19 - Positiv-/Negativliste aller TLS-Protokolle, die der  
-#          Postfix SMTP-Server bei der verpflichtenden Verschlüsselung 
-#          berücksichtigen soll. 
-#          http://www.postfix.org/postconf.5.html#smtpd_tls_mandatory_protocols 
-# default: smtpd_tls_mandatory_protocols = !SSLv2 
-smtpd_tls_mandatory_protocols =  
-           !SSLv2 
-           !SSLv3 
- 
-# Django : 2014-10-19 - Positiv-/Negativliste aller TLS-Protokolle, die der  
-#          Postfix SMTP-/LMTP-Client bei der verpflichtenden Verschlüsselung 
-#          berücksichtigen soll. 
-#          http://www.postfix.org/postconf.5.html#smtp_tls_mandatory_protocols 
-# default: smtp_tls_mandatory_protocols = !SSLv2 
-smtp_tls_mandatory_protocols = 
-           !SSLv2 
-           !SSLv3 
-lmtp_tls_mandatory_protocols = $smtp_tls_mandatory_protocols 
- 
-# Django : 2014-10-19 - Opportunistische TLS-Verschlüsselung für den  
-#          SMTP-Daemon für den ankommenden Verkehr aktiviert; d.h. STARTTLS  
-#          wird dem Remote-SMTP-Client angeboten aber nicht zwingend  
-#          vorgeschrieben.  
-#          http://www.postfix.org/postconf.5.html#smtpd_tls_security_level 
-# default: smtpd_tls_security_level = 
-smtpd_tls_security_level = may 
- 
-# Django : 2014-10-19 - Opportunistische TLS-Verschlüsselung für den 
-#          SMTP-Client für den ausgehenden Verkehr aktiviert;  
-#          Opportunistische TLS-Verschlüsselung wird verwendet, sofern der 
-#          Zielserver eine TLS-Verschlüsselung anbietet. Unterstützt der  
-#          Zielserver keine TLS-Verschlüsselung wird unverschlüsselt über- 
-#          tragen! 
-#          http://www.postfix.org/postconf.5.html#smtp_tls_security_level 
-# default: smtp_tls_security_level =  
-smtp_tls_security_level = may 
- 
-# Django : 2014-10-19 -  EDH Server support 
-#          http://www.postfix.org/FORWARD_SECRECY_README.html 
-#          Definition des 512 bit Schlüssels (export ciphers) für die obsoleten 
-#          „Export“-Ciphers und des 2048-bit (non export ciphers) Schlüssels 
-#          für all die anderen EDH Cipher Suits. 
-# default: smtpd_tls_dh512_param_file = 
-#          smtpd_tls_dh1024_param_file = 
-smtpd_tls_dh1024_param_file = /etc/pki/postfix/private/dh_2048.pem 
-smtpd_tls_dh512_param_file = /etc/pki/postfix/private/dh_512.pem 
- 
-# Django : 2014-10-19 - Grad der Sicherheit beim EECDH Schlüsselaustausch 
-#          Ephemeral Elliptic-Curve Diffie-Hellman (EECDH) 
-#          http://www.postfix.org/postconf.5.html#smtpd_tls_eecdh_grade 
-# default: smtpd_tls_eecdh_grade = strong 
-smtpd_tls_eecdh_grade = ultra 
- 
-# Django : 2014-10-19 - Default Cipher Liste des Servers verwenden, statt der 
-#          vom Client genannten Wunsch-Ciphers 
-#          http://www.postfix.org/postconf.5.html#tls_preempt_cipherlist 
-# default: tls_preempt_cipherlist = no 
-tls_preempt_cipherlist = yes 
- 
-# Django : 2014-10-19 - Headerzeile in der eMail einfügen mit Informationen 
-#          zur verwendeten Verschlüsselung 
-#          http://www.postfix.org/postconf.5.html#smtpd_tls_received_header 
-# default: smtpd_tls_received_header = no 
-smtpd_tls_received_header = yes 
- 
-# Django : 2014-10-19 - Logging der TLS-Infomationen zu den Verbindungen im 
-#          Maillog des SMTP-Daemons für den ankommenden SMTP-Verkehr. 
-#          http://www.postfix.org/postconf.5.html#smtpd_tls_loglevel 
-# default: smtpd_tls_loglevel = 0 
-smtpd_tls_loglevel = 1 
- 
-# Django : 2014-10-19 - Logging der TLS-Infomationen zu den Verbindungen im 
-#          Maillog des SMTP-Clients für den ausgehenden SMTP-Verkehr. 
-#          http://www.postfix.org/postconf.5.html#smtp_tls_loglevel 
-# default: smtp_tls_loglevel = 0 
-smtp_tls_loglevel = 1 
-</code> 
  
 ===== Konfiguration aktivieren ===== ===== Konfiguration aktivieren =====
Zeile 2798: Zeile 2714:
  
 Mit nachfolgendem Aufruf kann überprüft werden, welche Ciphers angeboten werden. Mit nachfolgendem Aufruf kann überprüft werden, welche Ciphers angeboten werden.
-   # /usr/local/src/cipherscan-master/cipherscan -o /usr/local/src/cipherscan-master/openssl --curves -starttls imap imap.nausch.org:587+   # /usr/local/src/cipherscan-master/cipherscan -o /usr/local/src/cipherscan-master/openssl --curves -starttls smtp mx1.nausch.org:587
  
 <code>..................................... <code>.....................................
Zeile 2966: Zeile 2882:
 </pre></html> </pre></html>
  
 +==== ssl-tools.net ====
  
 +Für eine sichere Verschlüsselung beim eMailtransport muss der Mailserver STARTTLS unterstützen. Ein vertrauenswürdiges SSL-Zertifikat sollte ebenso wie DANE zum Einsatz kommen. Selbstredend darf der Server nicht für Heartbleed anfällig sein und Perfect Forward Secrecy unterstützen.
 +
 +All diese Dinge lassen sich über die Testseite https://de.ssl-tools.net/mailservers/ überprüfen. Über den Link Mailzustellung testen kann man auch noch die Mailzustellung testen. Als Ergebnis erhält man eine aussagekräftige Aufstellung der Ergebnisse, so z.B. für den Mailserver von nausch.org: https://de.ssl-tools.net/mailservers/nausch.org
 +
 +{{ :centos:mail_c7:sssl-tools-ergebnis.png?800 |Bild: Ergebnis des scans bei https://de.ssl-tools.net/mailservers/}}
 +
 +
 + 
  
 ==== eMail-Verkehr ==== ==== eMail-Verkehr ====
Zeile 3004: Zeile 2929:
   * **[[http://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]**   * **[[http://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]**
  
-~~DISCUSSION~~ 
  
  • centos/mail_c7/mta_5.1445517144.txt.gz
  • Zuletzt geändert: 22.10.2015 12:32.
  • von django