SMTP: Unterschied zwischen den Versionen
Tina (Diskussion | Beiträge) |
|||
| (23 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| − | + | == SMTP – Simple Mail Transfer Protocol == | |
| + | Das '''Simple Mail Transfer Protocol (SMTP)''' ist das Standardprotokoll für den Versand und die Weiterleitung von E-Mails. Es definiert, wie E-Mails zwischen Mailservern übertragen werden. SMTP basiert auf einer Client-Server-Architektur und regelt sowohl die direkte Kommunikation zwischen Mailservern als auch die Übergabe von E-Mails durch Mail-Clients an einen Mailserver. | ||
| − | + | == SMTP-Protokollgrundlagen == | |
| − | |||
| − | |||
| − | + | SMTP ist ein textbasiertes Protokoll, bei dem Client und Server in einer definierten Abfolge von Kommandos und Antworten kommunizieren. Es wird für den Versand und die Weiterleitung von E-Mails genutzt, nicht jedoch für den Abruf von Nachrichten durch Endbenutzer. | |
| − | + | === 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. | |
| − | + | ||
| − | + | === Verbindungsaufbau === | |
| − | + | ||
| + | Der Verbindungsaufbau im SMTP-Protokoll umfasst folgende Schritte: | ||
| + | |||
| + | ; '''Verbindung herstellen''' | ||
| + | : Der Client (Absender) öffnet eine TCP/IP-Verbindung zum SMTP-Server des Empfängers auf Port 25 (Standard-SMTP-Port). | ||
| + | : Alternativ können auch andere Ports wie 587 (Submission) oder 465 (SMTPS) verwendet werden, um verschlüsselte Verbindungen herzustellen. | ||
| + | |||
| + | ; '''Verschlüsselung''' | ||
| + | : Eine TLS-Verschlüsselung kann durch den Einsatz von STARTTLS vereinbart werden, wodurch die Kommunikation zwischen Client und Server verschlüsselt wird. | ||
| + | : Das BSI empfiehlt jedoch, STARTTLS nicht mehr zu verwenden, sondern direkt '''SMTP über TLS (Port 465)''' zu nutzen. | ||
| + | |||
| + | == Kommunikation im SMTP-Protokoll == | ||
| + | |||
| + | Die Kommunikation zwischen Client und Server im SMTP-Protokoll erfolgt in mehreren Schritten: | ||
| + | |||
| + | ; '''Begrüßung''' | ||
| + | : Der SMTP-Server sendet eine Begrüßungsnachricht, um die Verbindung herzustellen. Diese Nachricht enthält normalerweise den Servernamen und einen Code wie ''220 mail.example.com ESMTP''. | ||
| + | |||
| + | ; '''Kommando-Austausch''' | ||
| + | : Nach der Begrüßung kommunizieren Client und Server miteinander, indem sie Nachrichten in Form von Kommandos und Antworten austauschen. | ||
| + | : Die meisten SMTP-Kommandos bestehen aus drei oder vier Buchstaben. Beispiele: | ||
| + | :: '''HELO''' – Begrüßung des Clients | ||
| + | :: '''EHLO''' – Erweiterte Begrüßung für ESMTP | ||
| + | :: '''MAIL FROM''' – Absender der E-Mail | ||
| + | :: '''RCPT TO''' – Empfänger der E-Mail | ||
| + | :: '''DATA''' – Beginn der Nachrichtenübertragung | ||
| + | :: '''QUIT''' – Verbindung beenden | ||
| + | |||
| + | ; '''Antworten des Servers''' | ||
| + | : Der Server antwortet auf jedes Kommando mit einem numerischen Antwortcode. Beispiel: | ||
| + | :: ''250 OK'' – Kommando erfolgreich | ||
| + | :: ''421 Service not available'' – Server nicht verfügbar | ||
| + | :: ''550 Requested action not taken'' – Fehlerhafte oder nicht erlaubte Empfängeradresse | ||
| + | |||
| + | == Ablauf einer SMTP-Kommunikation == | ||
| + | |||
| + | Die SMTP-Kommunikation erfolgt in mehreren Schritten: | ||
| + | |||
| + | # Der sendende Server öffnet eine TCP-Verbindung zum empfangenden Server auf Port 25 oder 587. | ||
| + | # Der Server begrüßt sich mit '''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. | ||
| + | |||
| + | == Beispiel einer SMTP-Sitzung == | ||
| + | |||
| + | <pre> | ||
| + | 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 | ||
| + | </pre> | ||
| + | |||
| + | == 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. | ||
| + | |||
| + | == SMTP-Ports und Sicherheit == | ||
| + | |||
| + | SMTP nutzt verschiedene Ports, abhängig von der Art der Verbindung und Sicherheitseinstellungen: | ||
| + | |||
| + | ; '''Port 25''' | ||
| + | : Wird für die Server-zu-Server-Kommunikation (MTA-zu-MTA) genutzt, oft mit optionalem STARTTLS. | ||
| + | : 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. | ||
| + | |||
| + | == Fazit == | ||
| + | |||
| + | SMTP ist das zentrale Protokoll für den E-Mail-Versand und definiert die Übertragung zwischen Mailservern sowie die Einlieferung durch Clients. | ||
| + | Moderne Sicherheitsrichtlinien empfehlen die Nutzung von '''Port 465 mit erzwungener TLS-Verschlüsselung''', um Downgrade-Attacken zu verhindern. | ||
| + | Während '''Port 25 für den Server-zu-Server-Verkehr genutzt wird''', ist '''Port 587 mit STARTTLS nicht mehr die bevorzugte Wahl'''. | ||
Aktuelle Version vom 11. März 2025, 21:50 Uhr
SMTP – Simple Mail Transfer Protocol
Das Simple Mail Transfer Protocol (SMTP) ist das Standardprotokoll für den Versand und die Weiterleitung von E-Mails. Es definiert, wie E-Mails zwischen Mailservern übertragen werden. SMTP basiert auf einer Client-Server-Architektur und regelt sowohl die direkte Kommunikation zwischen Mailservern als auch die Übergabe von E-Mails durch Mail-Clients an einen Mailserver.
SMTP-Protokollgrundlagen
SMTP ist ein textbasiertes Protokoll, bei dem Client und Server in einer definierten Abfolge von Kommandos und Antworten kommunizieren. Es wird für den Versand und die Weiterleitung von E-Mails genutzt, nicht jedoch für den Abruf von Nachrichten durch Endbenutzer.
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.
Verbindungsaufbau
Der Verbindungsaufbau im SMTP-Protokoll umfasst folgende Schritte:
- Verbindung herstellen
- Der Client (Absender) öffnet eine TCP/IP-Verbindung zum SMTP-Server des Empfängers auf Port 25 (Standard-SMTP-Port).
- Alternativ können auch andere Ports wie 587 (Submission) oder 465 (SMTPS) verwendet werden, um verschlüsselte Verbindungen herzustellen.
- Verschlüsselung
- Eine TLS-Verschlüsselung kann durch den Einsatz von STARTTLS vereinbart werden, wodurch die Kommunikation zwischen Client und Server verschlüsselt wird.
- Das BSI empfiehlt jedoch, STARTTLS nicht mehr zu verwenden, sondern direkt SMTP über TLS (Port 465) zu nutzen.
Kommunikation im SMTP-Protokoll
Die Kommunikation zwischen Client und Server im SMTP-Protokoll erfolgt in mehreren Schritten:
- Begrüßung
- Der SMTP-Server sendet eine Begrüßungsnachricht, um die Verbindung herzustellen. Diese Nachricht enthält normalerweise den Servernamen und einen Code wie 220 mail.example.com ESMTP.
- Kommando-Austausch
- Nach der Begrüßung kommunizieren Client und Server miteinander, indem sie Nachrichten in Form von Kommandos und Antworten austauschen.
- Die meisten SMTP-Kommandos bestehen aus drei oder vier Buchstaben. Beispiele:
- HELO – Begrüßung des Clients
- EHLO – Erweiterte Begrüßung für ESMTP
- MAIL FROM – Absender der E-Mail
- RCPT TO – Empfänger der E-Mail
- DATA – Beginn der Nachrichtenübertragung
- QUIT – Verbindung beenden
- Antworten des Servers
- Der Server antwortet auf jedes Kommando mit einem numerischen Antwortcode. Beispiel:
- 250 OK – Kommando erfolgreich
- 421 Service not available – Server nicht verfügbar
- 550 Requested action not taken – Fehlerhafte oder nicht erlaubte Empfängeradresse
Ablauf einer SMTP-Kommunikation
Die SMTP-Kommunikation erfolgt in mehreren Schritten:
- Der sendende Server öffnet eine TCP-Verbindung zum empfangenden Server auf Port 25 oder 587.
- Der Server begrüßt sich mit 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.
Beispiel einer SMTP-Sitzung
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.
SMTP-Ports und Sicherheit
SMTP nutzt verschiedene Ports, abhängig von der Art der Verbindung und Sicherheitseinstellungen:
- Port 25
- Wird für die Server-zu-Server-Kommunikation (MTA-zu-MTA) genutzt, oft mit optionalem STARTTLS.
- 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.
Fazit
SMTP ist das zentrale Protokoll für den E-Mail-Versand und definiert die Übertragung zwischen Mailservern sowie die Einlieferung durch Clients. Moderne Sicherheitsrichtlinien empfehlen die Nutzung von Port 465 mit erzwungener TLS-Verschlüsselung, um Downgrade-Attacken zu verhindern. Während Port 25 für den Server-zu-Server-Verkehr genutzt wird, ist Port 587 mit STARTTLS nicht mehr die bevorzugte Wahl.