SMTP – Simple Mail Transfer Protocol: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
=== SMTP – Simple Mail Transfer Protocol ===
+
====Einführung in SMTP====
  
==== Aufbau einer E-Mail ====  
+
Das '''Simple Mail Transfer Protocol (SMTP)''' ist das Standardprotokoll für den Versand und die Weiterleitung von E-Mails. Es regelt, wie E-Mails zwischen Mailservern übertragen werden und welche Ports für die Kommunikation genutzt werden.  
  
 +
; '''Port 25''' 
 +
: Wird für die Server-zu-Server-Kommunikation (MTA-zu-MTA) genutzt, meist mit optionalem STARTTLS. 
 +
: Achtung: Viele Provider blockieren ausgehenden Traffic auf Port 25, um Spam zu verhindern. 
 +
 +
; '''Port 465''' 
 +
: Wird für Mail-Submission genutzt, **mit erzwungener TLS-Verschlüsselung (Implicit TLS)**. 
 +
: Diese Methode wird vom BSI empfohlen, da sie nicht durch Downgrade-Angriffe manipuliert werden kann. 
 +
 +
; '''Port 587''' 
 +
: Wird für Mail-Submission genutzt, aber mit **STARTTLS** (opportunistische Verschlüsselung). 
 +
: Das BSI rät von STARTTLS ab, da es durch Man-in-the-Middle-Angriffe entfernt werden kann. 
 +
 +
'''Hinweis:''' 
 +
Das **BSI empfiehlt ausdrücklich Port 465 für Mail-Submission**, da hier eine direkte TLS-Verbindung erzwungen wird. 
 +
Port 25 bleibt für den Transport zwischen Mailservern (MTA-zu-MTA), ist aber für Clients ungeeignet.
 +
 +
 +
Das '''Simple Mail Transfer Protocol (SMTP)''' ist das Standardprotokoll für den Versand und die Weiterleitung von E-Mails. Es regelt, wie E-Mails zwischen Mailservern übertragen werden und welche Ports für die Kommunikation genutzt werden. 
 +
 +
; '''Port 25''' 
 +
: Wird für die Server-zu-Server-Kommunikation (MTA-zu-MTA) genutzt, meist mit optionalem STARTTLS. 
 +
: Achtung: Viele Provider blockieren ausgehenden Traffic auf Port 25, um Spam zu verhindern. 
 +
 +
; '''Port 465''' 
 +
: Wird für Mail-Submission genutzt, **mit erzwungener TLS-Verschlüsselung (Implicit TLS)**. 
 +
: Diese Methode wird vom BSI empfohlen, da sie nicht durch Downgrade-Angriffe manipuliert werden kann. 
 +
 +
; '''Port 587''' 
 +
: Wird für Mail-Submission genutzt, aber mit **STARTTLS** (opportunistische Verschlüsselung). 
 +
: Das BSI rät von STARTTLS ab, da es durch Man-in-the-Middle-Angriffe entfernt werden kann. 
 +
 +
'''Hinweis:''' 
 +
Das **BSI empfiehlt ausdrücklich Port 465 für Mail-Submission**, da hier eine direkte TLS-Verbindung erzwungen wird. 
 +
Port 25 bleibt für den Transport zwischen Mailservern (MTA-zu-MTA), ist aber für Clients ungeeignet.
 +
}}
 +
 +
==== Aufbau einer E-Mail ====
 
Eine E-Mail besteht aus zwei Hauptbestandteilen:   
 
Eine E-Mail besteht aus zwei Hauptbestandteilen:   
  
; **Envelope (Umschlag)**  
+
; '''Envelope (Umschlag)'''  
: Der Umschlag enthält Informationen zur Zustellung, darunter den Absender und Empfänger. Diese Daten sind nicht direkt im Mail-Header sichtbar, sondern werden nur während der Übertragung verwendet.   
+
: Enthält die Adressen des Absenders und des Empfängers, die für die SMTP-Zustellung verwendet werden. Diese Informationen sind nicht im Header sichtbar.   
  
; **Header (Kopfzeilen)**  
+
; '''Header (Kopfzeilen)'''  
: Enthält Metadaten zur Nachricht. Wichtige Felder sind:   
+
: Enthält Metadaten zur E-Mail. Wichtige Felder sind:   
  
* '''From:''' Absenderadresse   
+
: '''From:''' Absenderadresse   
* '''To:''' Empfängeradresse   
+
: '''To:''' Empfängeradresse   
* '''Cc:''' Kopieempfänger (Carbon Copy)   
+
: '''Cc:''' Kopieempfänger (Carbon Copy)   
* '''Bcc:''' Verdeckte Kopieempfänger (Blind Carbon Copy), nicht für andere sichtbar  
+
: '''Bcc:''' Verdeckte Kopieempfänger (Blind Carbon Copy)   
* '''Subject:''' Betreff der Nachricht   
+
: '''Subject:''' Betreff der Nachricht   
* '''Date:''' Zeitpunkt des Versands   
+
: '''Date:''' Zeitpunkt des Versands   
* '''Message-ID:''' Eindeutige Kennung der Nachricht   
+
: '''Message-ID:''' Eindeutige Kennung der Nachricht   
* '''Reply-To:''' Adresse für Antworten   
+
: '''Reply-To:''' Adresse für Antworten   
* '''Received:''' Enthält die Routing-Informationen der Nachricht   
+
: '''Received:''' Routing-Informationen über die Mailserver, die die E-Mail verarbeitet haben 
 +
: '''MIME-Version:''' Gibt an, ob die E-Mail Multipart-Inhalte oder Anhänge enthält 
 +
: '''Content-Type:''' Definiert das Format der Nachricht, z. B. Text oder HTML  
  
; **Body (Nachrichtentext)**  
+
; '''Body (Nachrichtentext)'''  
: Der eigentliche Inhalt der E-Mail. Dieser kann reinen Text oder HTML enthalten. Anhänge werden mit MIME (Multipurpose Internet Mail Extensions) codiert.   
+
: Der eigentliche Inhalt der E-Mail. Er kann reinen Text oder HTML enthalten. Anhänge werden über MIME (Multipurpose Internet Mail Extensions) codiert.   
  
==== Beispiel einer E-Mail ====   
+
==== Beispiel einer E-Mail ====
 +
Ein vollständiges Beispiel einer SMTP-E-Mail mit Header und Body:  
  
<pre>
+
<pre>
From: alice@example.com
+
From: alice@example.com
To: bob@example.com
+
To: bob@example.com
Cc: charlie@example.com
+
Cc: charlie@example.com
Bcc: dave@example.com
+
Bcc: dave@example.com
Subject: Testmail
+
Subject: Testmail
Date: Tue, 12 Mar 2024 10:00:00 +0100
+
Date: Tue, 12 Mar 2024 10:00:00 +0100
Message-ID: <123456@example.com>
+
Message-ID: <123456@example.com>
MIME-Version: 1.0
+
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
+
Content-Type: text/plain; charset="UTF-8"
  
Hallo Bob,
+
Hallo Bob,
  
dies ist eine Testmail mit CC und BCC.
+
dies ist eine Testmail mit CC und BCC.
  
Grüße
+
Grüße
Alice
+
Alice
 
</pre>   
 
</pre>   
  
==== SMTP-Agenten ====   
+
==== SMTP-Agenten ====
 +
Bei der Verarbeitung einer E-Mail sind mehrere Komponenten beteiligt:  
  
; **MTA (Mail Transfer Agent)**  
+
; '''MTA (Mail Transfer Agent)'''  
: Ein MTA empfängt, speichert und leitet E-Mails weiter. Er kommuniziert mit anderen MTAs über SMTP und entscheidet anhand von DNS-Einträgen, wohin eine E-Mail zugestellt wird.   
+
: Nimmt E-Mails entgegen, speichert sie und leitet sie weiter.   
  
; **MDA (Mail Delivery Agent)**  
+
; '''MDA (Mail Delivery Agent)'''  
: Der MDA nimmt die E-Mail von einem MTA entgegen und speichert sie im Postfach des Empfängers.   
+
: Zuständig für die Ablage der E-Mail im Postfach des Empfängers.   
  
; **MUA (Mail User Agent)**  
+
; '''MUA (Mail User Agent)'''  
: Ein MUA ist das Programm oder die Schnittstelle, mit der der Benutzer E-Mails sendet oder empfängt.   
+
: Das E-Mail-Programm oder Webmail-Interface des Benutzers zum Senden und Empfangen von E-Mails.   
  
; **MSA (Mail Submission Agent)**  
+
; '''MSA (Mail Submission Agent)'''  
: Ein MSA nimmt E-Mails von einem MUA entgegen und leitet sie an einen MTA weiter.   
+
: Nimmt E-Mails von einem MUA entgegen und übergibt sie an den MTA zur Weiterleitung.   
  
==== Ablauf einer SMTP-Kommunikation ====   
+
==== Ablauf einer SMTP-Kommunikation ====
 +
Die SMTP-Kommunikation erfolgt in mehreren Schritten:  
  
1. **Verbindung aufbauen** 
+
# Der sendende Server öffnet eine TCP-Verbindung zum empfangenden Server auf Port 25 oder 587.   
  * Der sendende MTA öffnet eine TCP-Verbindung zum empfangenden MTA auf Port 25 oder 587.   
+
# Der Server begrüßt sich mit `HELO` oder `EHLO`
  * Begrüßung über `HELO` oder `EHLO`.   
+
# Der Absender (`MAIL FROM`) und Empfänger (`RCPT TO`) werden angegeben. 
 +
# Die Nachricht wird mit `DATA` gesendet, gefolgt von einem Punkt (`.`) zur Beendigung. 
 +
# Der Server bestätigt die Annahme mit `250 OK`. 
 +
# Die Verbindung wird mit `QUIT` beendet.   
  
2. **Absender und Empfänger spezifizieren** 
+
==== Beispiel einer SMTP-Sitzung ====
  * `MAIL FROM:<alice@example.com>` 
+
Hier ein Beispiel für eine SMTP-Interaktion zwischen zwei Servern:   
  * `RCPT TO:<bob@example.com>`  
 
  
3. **Nachricht senden** 
+
<pre>
  * `DATA
+
220 mail.example.com ESMTP
  * Header und Nachricht werden übertragen 
+
EHLO sender.example.com
  * Abschluss mit `.
+
250-mail.example.com
 +
250-SIZE 10485760
 +
250-STARTTLS
 +
250 AUTH PLAIN LOGIN
 +
MAIL FROM:<alice@example.com>
 +
250 OK
 +
RCPT TO:<bob@example.com>
 +
250 OK
 +
DATA
 +
354 End data with <CR><LF>.<CR><LF>
 +
From: alice@example.com
 +
To: bob@example.com
 +
Subject: Test
  
4. **Bestätigung und Beenden** 
+
Dies ist eine SMTP-Testnachricht.
  * Server antwortet mit `250 OK` 
 
  * Verbindung wird mit `QUIT` beendet 
 
  
==== Beispiel einer SMTP-Sitzung ====  
+
.
 +
250 OK: queued as 12345
 +
QUIT
 +
221 Bye
 +
</pre>  
  
<pre> 
+
==== Erweiterungen von SMTP ====
220 mail.example.com ESMTP 
+
SMTP kann durch verschiedene Erweiterungen ergänzt werden:   
EHLO sender.example.com 
 
250-mail.example.com 
 
250-SIZE 10485760 
 
250-STARTTLS 
 
250 AUTH PLAIN LOGIN 
 
MAIL FROM:<alice@example.com> 
 
250 OK 
 
RCPT TO:<bob@example.com> 
 
250 OK 
 
DATA 
 
354 End data with <CR><LF>.<CR><LF> 
 
From: alice@example.com 
 
To: bob@example.com 
 
Subject: Test  
 
  
Dies ist eine SMTP-Testnachricht.   
+
; '''STARTTLS''' 
 +
: Ermöglicht die Verschlüsselung der Verbindung mit TLS.   
  
.  
+
; '''SMTP AUTH'''  
250 OK: queued as 12345 
+
: Authentifiziert den Absender mit Benutzername und Passwort.  
QUIT 
 
221 Bye 
 
</pre>  
 
  
==== Erweiterungen von SMTP ====  
+
; '''DSN (Delivery Status Notification)''' 
 +
: Ermöglicht die Rückmeldung über den Zustellstatus der E-Mail.  
  
* **STARTTLS** – Verschlüsselte Verbindung mit TLS 
+
; '''PIPELINING'''  
* **SMTP AUTH** – Authentifizierung des Absenders 
+
: Erlaubt das Senden mehrerer Befehle in einer Übertragung, um die Effizienz zu steigern.  
* **DSN (Delivery Status Notification)** – Rückmeldung über Zustellstatus  
 
* **PIPELINING** – Mehrere Befehle in einer Übertragung   
 
  
==== Fazit ====
+
==== Fazit ====
SMTP regelt den Versand und Empfang von E-Mails zwischen Servern. Dabei arbeiten verschiedene Agenten wie MTA, MDA und MSA zusammen. Eine E-Mail enthält Header, Body und Routing-Informationen. Durch Erweiterungen wie STARTTLS und SMTP AUTH kann die Sicherheit verbessert werden.
+
SMTP ist das zentrale Protokoll für den E-Mail-Versand. Es definiert, wie E-Mails weitergeleitet werden und welche Komponenten an der Verarbeitung beteiligt sind. Durch Erweiterungen wie STARTTLS und SMTP AUTH kann die Sicherheit erhöht werden.
 +
}}

Aktuelle Version vom 11. März 2025, 21:33 Uhr

Einführung in SMTP

Das Simple Mail Transfer Protocol (SMTP) ist das Standardprotokoll für den Versand und die Weiterleitung von E-Mails. Es regelt, wie E-Mails zwischen Mailservern übertragen werden und welche Ports für die Kommunikation genutzt werden.

Port 25
Wird für die Server-zu-Server-Kommunikation (MTA-zu-MTA) genutzt, meist mit optionalem STARTTLS.
Achtung: Viele Provider blockieren ausgehenden Traffic auf Port 25, um Spam zu verhindern.
Port 465
Wird für Mail-Submission genutzt, **mit erzwungener TLS-Verschlüsselung (Implicit TLS)**.
Diese Methode wird vom BSI empfohlen, da sie nicht durch Downgrade-Angriffe manipuliert werden kann.
Port 587
Wird für Mail-Submission genutzt, aber mit **STARTTLS** (opportunistische Verschlüsselung).
Das BSI rät von STARTTLS ab, da es durch Man-in-the-Middle-Angriffe entfernt werden kann.

Hinweis: Das **BSI empfiehlt ausdrücklich Port 465 für Mail-Submission**, da hier eine direkte TLS-Verbindung erzwungen wird. Port 25 bleibt für den Transport zwischen Mailservern (MTA-zu-MTA), ist aber für Clients ungeeignet.


Das Simple Mail Transfer Protocol (SMTP) ist das Standardprotokoll für den Versand und die Weiterleitung von E-Mails. Es regelt, wie E-Mails zwischen Mailservern übertragen werden und welche Ports für die Kommunikation genutzt werden.

Port 25
Wird für die Server-zu-Server-Kommunikation (MTA-zu-MTA) genutzt, meist mit optionalem STARTTLS.
Achtung: Viele Provider blockieren ausgehenden Traffic auf Port 25, um Spam zu verhindern.
Port 465
Wird für Mail-Submission genutzt, **mit erzwungener TLS-Verschlüsselung (Implicit TLS)**.
Diese Methode wird vom BSI empfohlen, da sie nicht durch Downgrade-Angriffe manipuliert werden kann.
Port 587
Wird für Mail-Submission genutzt, aber mit **STARTTLS** (opportunistische Verschlüsselung).
Das BSI rät von STARTTLS ab, da es durch Man-in-the-Middle-Angriffe entfernt werden kann.

Hinweis: Das **BSI empfiehlt ausdrücklich Port 465 für Mail-Submission**, da hier eine direkte TLS-Verbindung erzwungen wird. Port 25 bleibt für den Transport zwischen Mailservern (MTA-zu-MTA), ist aber für Clients ungeeignet. }}

Aufbau einer E-Mail

Eine E-Mail besteht aus zwei Hauptbestandteilen:

Envelope (Umschlag)
Enthält die Adressen des Absenders und des Empfängers, die für die SMTP-Zustellung verwendet werden. Diese Informationen sind nicht im Header sichtbar.
Header (Kopfzeilen)
Enthält Metadaten zur E-Mail. Wichtige Felder sind:
From: Absenderadresse
To: Empfängeradresse
Cc: Kopieempfänger (Carbon Copy)
Bcc: Verdeckte Kopieempfänger (Blind Carbon Copy)
Subject: Betreff der Nachricht
Date: Zeitpunkt des Versands
Message-ID: Eindeutige Kennung der Nachricht
Reply-To: Adresse für Antworten
Received: Routing-Informationen über die Mailserver, die die E-Mail verarbeitet haben
MIME-Version: Gibt an, ob die E-Mail Multipart-Inhalte oder Anhänge enthält
Content-Type: Definiert das Format der Nachricht, z. B. Text oder HTML
Body (Nachrichtentext)
Der eigentliche Inhalt der E-Mail. Er kann reinen Text oder HTML enthalten. Anhänge werden über MIME (Multipurpose Internet Mail Extensions) codiert.

Beispiel einer E-Mail

Ein vollständiges Beispiel einer SMTP-E-Mail mit Header und Body:

From: alice@example.com
To: bob@example.com
Cc: charlie@example.com
Bcc: dave@example.com
Subject: Testmail
Date: Tue, 12 Mar 2024 10:00:00 +0100
Message-ID: <123456@example.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"

Hallo Bob,

dies ist eine Testmail mit CC und BCC.

Grüße
Alice

SMTP-Agenten

Bei der Verarbeitung einer E-Mail sind mehrere Komponenten beteiligt:

MTA (Mail Transfer Agent)
Nimmt E-Mails entgegen, speichert sie und leitet sie weiter.
MDA (Mail Delivery Agent)
Zuständig für die Ablage der E-Mail im Postfach des Empfängers.
MUA (Mail User Agent)
Das E-Mail-Programm oder Webmail-Interface des Benutzers zum Senden und Empfangen von E-Mails.
MSA (Mail Submission Agent)
Nimmt E-Mails von einem MUA entgegen und übergibt sie an den MTA zur Weiterleitung.

Ablauf einer SMTP-Kommunikation

Die SMTP-Kommunikation erfolgt in mehreren Schritten:

  1. Der sendende Server öffnet eine TCP-Verbindung zum empfangenden Server auf Port 25 oder 587.
  2. Der Server begrüßt sich mit `HELO` oder `EHLO`.
  3. Der Absender (`MAIL FROM`) und Empfänger (`RCPT TO`) werden angegeben.
  4. Die Nachricht wird mit `DATA` gesendet, gefolgt von einem Punkt (`.`) zur Beendigung.
  5. Der Server bestätigt die Annahme mit `250 OK`.
  6. Die Verbindung wird mit `QUIT` beendet.

Beispiel einer SMTP-Sitzung

Hier ein Beispiel für eine SMTP-Interaktion zwischen zwei Servern:

220 mail.example.com ESMTP
EHLO sender.example.com
250-mail.example.com
250-SIZE 10485760
250-STARTTLS
250 AUTH PLAIN LOGIN
MAIL FROM:<alice@example.com>
250 OK
RCPT TO:<bob@example.com>
250 OK
DATA
354 End data with <CR><LF>.<CR><LF>
From: alice@example.com
To: bob@example.com
Subject: Test

Dies ist eine SMTP-Testnachricht.

.
250 OK: queued as 12345
QUIT
221 Bye

Erweiterungen von SMTP

SMTP kann durch verschiedene Erweiterungen ergänzt werden:

STARTTLS
Ermöglicht die Verschlüsselung der Verbindung mit TLS.
SMTP AUTH
Authentifiziert den Absender mit Benutzername und Passwort.
DSN (Delivery Status Notification)
Ermöglicht die Rückmeldung über den Zustellstatus der E-Mail.
PIPELINING
Erlaubt das Senden mehrerer Befehle in einer Übertragung, um die Effizienz zu steigern.

Fazit

SMTP ist das zentrale Protokoll für den E-Mail-Versand. Es definiert, wie E-Mails weitergeleitet werden und welche Komponenten an der Verarbeitung beteiligt sind. Durch Erweiterungen wie STARTTLS und SMTP AUTH kann die Sicherheit erhöht werden. }}