Postfix tls erzwingen: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(7 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
==TLS Verschlüsselung==
+
=TLS Verschlüsselung=
 
*Es gibt 2 Möglichkeiten, einmal '''May''' und einmal '''Must'''.
 
*Es gibt 2 Möglichkeiten, einmal '''May''' und einmal '''Must'''.
 
*Um eine Mail verschlüsselt zu der Gegenseite zu bringen, muss die Gegenseite TLS konfiguriert haben.  
 
*Um eine Mail verschlüsselt zu der Gegenseite zu bringen, muss die Gegenseite TLS konfiguriert haben.  
  
*Bei '''May''' kann die Mail nicht verschlüsselt ankommen, da die Gegenseite kein TLS konfiguriert hat.
+
*Bei '''May''' kann die Mail nicht verschlüsselt ankommen, wenn die Gegenseite kein TLS konfiguriert hat.
[[Datei:tlsmay2.dia]]
+
[[Datei:tlsmay3.dia]]
 
*Bei '''Must''' wird ein SMTP-Paket verschickt, welches die Anfrage für TLS besitzt, so kann die Mail nur weiter geschickt werden, wenn die TLS verschlüsselung möglich ist.
 
*Bei '''Must''' wird ein SMTP-Paket verschickt, welches die Anfrage für TLS besitzt, so kann die Mail nur weiter geschickt werden, wenn die TLS verschlüsselung möglich ist.
[[Datei:tlsmust2.dia]]
+
[[Datei:tlsmust3.dia]]
  
 
+
=Praxis=
==Praxis==
 
 
*Wir melden uns auf dem Mailserver mit Hilfe des openssl s-clients an ->  openssl s_client -host mail.server.de -port 465
 
*Wir melden uns auf dem Mailserver mit Hilfe des openssl s-clients an ->  openssl s_client -host mail.server.de -port 465
 
*Nach dem Anmelden verschicken wir eine Mail an die gegenseite, sprich an den anderen Mailserver, welcher TLS konfiguriert hat.
 
*Nach dem Anmelden verschicken wir eine Mail an die gegenseite, sprich an den anderen Mailserver, welcher TLS konfiguriert hat.
Zeile 28: Zeile 27:
 
auth plain xxxxxxxxxxxxxxxxxxxx
 
auth plain xxxxxxxxxxxxxxxxxxxx
 
235 2.7.0 Authentication successful
 
235 2.7.0 Authentication successful
mail from: testuser@dmailserver.de
+
mail from: testuser@mailserver.de
 
250 2.1.0 Ok
 
250 2.1.0 Ok
 
rcpt to: user@gegenseite.de
 
rcpt to: user@gegenseite.de
Zeile 49: Zeile 48:
 
*Wenn TLS bei der Gegenseite konfiguriert ist, schickt der Mailserver der Gegenseite eine Bestätigung, dass TLS gestartet wird.  
 
*Wenn TLS bei der Gegenseite konfiguriert ist, schickt der Mailserver der Gegenseite eine Bestätigung, dass TLS gestartet wird.  
 
*Nun wird die TLS Verbindung aufgebaut und die Mail wird verschlüsselt versendet.
 
*Nun wird die TLS Verbindung aufgebaut und die Mail wird verschlüsselt versendet.
 +
 +
=Bei May Problemen=
 +
*Sollte trotz TLS konfiguration auf beiden seiten die Mail unverschlüsselt sein, so muss man die Domain in eine Liste eintragen, damit der Mailserver die TLS Verbindung mit dieser Domain "erzwingt"
 +
*Mapping-Datei erstellen, z.B. „/etc/postfix/tls_policy“ mit diesem Inhalt:
 +
<pre>
 +
gegenseite.de      encrypt
 +
</pre>
 +
*Um dies zu übernehmen, muss der Befehl -> '''postmap /etc/postfix/tls_policy''' ausgeführt werden.
 +
*Dann noch die Tabelle in der main.cf in der TLS-Policy referenzieren
 +
<pre>
 +
# TLS erzwingen
 +
smtp_tls_policy_maps = hash:/etc/postfix/tls_policy
 +
</pre>
 +
*Und zu letzt Postfix reloaden -> '''/etc/init.d/postfix reload'''

Aktuelle Version vom 7. Juni 2018, 14:37 Uhr

TLS Verschlüsselung

  • Es gibt 2 Möglichkeiten, einmal May und einmal Must.
  • Um eine Mail verschlüsselt zu der Gegenseite zu bringen, muss die Gegenseite TLS konfiguriert haben.
  • Bei May kann die Mail nicht verschlüsselt ankommen, wenn die Gegenseite kein TLS konfiguriert hat.

Datei:Tlsmay3.dia

  • Bei Must wird ein SMTP-Paket verschickt, welches die Anfrage für TLS besitzt, so kann die Mail nur weiter geschickt werden, wenn die TLS verschlüsselung möglich ist.

Datei:Tlsmust3.dia

Praxis

  • Wir melden uns auf dem Mailserver mit Hilfe des openssl s-clients an -> openssl s_client -host mail.server.de -port 465
  • Nach dem Anmelden verschicken wir eine Mail an die gegenseite, sprich an den anderen Mailserver, welcher TLS konfiguriert hat.
ehlo
501 Syntax: EHLO hostname
ehlo XXXX
250-my.mailserver.de
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250 SMTPUTF8
auth plain xxxxxxxxxxxxxxxxxxxx
235 2.7.0 Authentication successful
mail from: testuser@mailserver.de
250 2.1.0 Ok
rcpt to: user@gegenseite.de
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
subject: Testmail

Hallo Test 123
.
250 2.0.0 Ok: queued as 95E97BE1108
quit
  • Wenn die Mail verschickt wurde, Schauen wir uns einen Mitschnitt auf Wireshark an, um zu sehen, ob die Mail verschlüsselt bzw. angekommen ist.

Tlszensur1.png

  • Zu erst wird ein normaler 3-Wege-Handshake durchgeführt, um eine Verbindung aufzubauen.
  • Danach schickt der Mailserver der Gegenseite sein Banner. (gegenseite.mailserver.de)
  • Dann kommt ein EHLO von dem Mailserver. (EHLO ist ebenso wie HELO ein Kommando zur Übertragung von E-Mails, die Server müssen allerdings ESMTP verstehen)
  • Als nächstes schickt der Mailserver der Gegenseite den TLS start "befehl".
  • Wenn TLS bei der Gegenseite konfiguriert ist, schickt der Mailserver der Gegenseite eine Bestätigung, dass TLS gestartet wird.
  • Nun wird die TLS Verbindung aufgebaut und die Mail wird verschlüsselt versendet.

Bei May Problemen

  • Sollte trotz TLS konfiguration auf beiden seiten die Mail unverschlüsselt sein, so muss man die Domain in eine Liste eintragen, damit der Mailserver die TLS Verbindung mit dieser Domain "erzwingt"
  • Mapping-Datei erstellen, z.B. „/etc/postfix/tls_policy“ mit diesem Inhalt:
gegenseite.de       encrypt
  • Um dies zu übernehmen, muss der Befehl -> postmap /etc/postfix/tls_policy ausgeführt werden.
  • Dann noch die Tabelle in der main.cf in der TLS-Policy referenzieren
# TLS erzwingen
smtp_tls_policy_maps = hash:/etc/postfix/tls_policy
  • Und zu letzt Postfix reloaden -> /etc/init.d/postfix reload