SMTP und IMAP auf der Konsole: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 22: | Zeile 22: | ||
=SMTP mit STARTTLS (Port 25)= | =SMTP mit STARTTLS (Port 25)= | ||
;Port 25 ist für Mailserver-zu-Mailserver – keine Authentifizierung | ;Port 25 ist für Mailserver-zu-Mailserver – keine Authentifizierung | ||
| − | * openssl s_client -starttls smtp -connect mail.it2XX.int:25 - | + | * openssl s_client -starttls smtp -connect mail.it2XX.int:25 -crlf |
<pre> | <pre> | ||
| Zeile 70: | Zeile 70: | ||
==Sitzung== | ==Sitzung== | ||
| − | * openssl s_client -connect mail.it2XX.int:465 | + | * openssl s_client -connect mail.it2XX.int:465 -crlf |
<pre> | <pre> | ||
| Zeile 106: | Zeile 106: | ||
;IMAP-Befehle müssen mit einer ID beginnen (a1, a2, ...) | ;IMAP-Befehle müssen mit einer ID beginnen (a1, a2, ...) | ||
;Auch hier ist die Verbindung sofort TLS-verschlüsselt | ;Auch hier ist die Verbindung sofort TLS-verschlüsselt | ||
| − | * openssl s_client -connect mail.it2XX.int:993 | + | * openssl s_client -connect mail.it2XX.int:993 -crlf |
<pre> | <pre> | ||
Aktuelle Version vom 5. Juni 2026, 07:50 Uhr
Ziel
In dieser Übung wird eine SMTP-Sitzung manuell durchgeführt. Dabei wird der Unterschied zwischen Envelope und Header sichtbar – und warum das für Spam und Phishing relevant ist.
Envelope vs. Header
- Zwei verschiedene Absender
Bei einer E-Mail gibt es zwei verschiedene "Von"-Angaben:
| Envelope | Header | |
|---|---|---|
| Befehl | MAIL FROM: |
From:
|
| Sichtbar für | Mailserver | Empfänger im Mailprogramm |
| Verwendung | Bounces, Spam-Prüfung (SPF) | Anzeige an den Benutzer |
| Kann gefälscht werden | Schwerer (SPF prüft dies) | Einfach |
!!!Wichtig!!! Phishing-Mails nutzen genau diesen Unterschied – der Header zeigt eine vertrauenswürdige Adresse, der Envelope verrät den echten Absender.
SMTP mit STARTTLS (Port 25)
- Port 25 ist für Mailserver-zu-Mailserver – keine Authentifizierung
- openssl s_client -starttls smtp -connect mail.it2XX.int:25 -crlf
220 mail.it2XX.int ESMTP Postfix (Debian) EHLO test 250-mail.it2XX.int 250-SIZE 10485760 250-STARTTLS 250 8BITMIME MAIL FROM:<spam@boese.example.com> 250 OK RCPT TO:<martha@it2XX.int> 250 OK DATA 354 End data with <CR><LF>.<CR><LF> From: bank@sparkasse.de To: martha@it2XX.int Subject: Ihr Konto wurde gesperrt Bitte klicken Sie hier: http://phishing.example.com . 250 OK: queued as 12345 QUIT 221 Bye
- Was hier passiert
- Envelope-Absender:
spam@boese.example.com– der echte Absender - Header-Absender:
bank@sparkasse.de– was Martha im Thunderbird sieht - Martha sieht eine Mail von der Sparkasse – obwohl sie von einem Spam-Server kommt
SMTPS (Port 465) mit Authentifizierung
- Port 465 ist für Mailclients – hier wird Auth zwingend verlangt
Wie funktioniert AUTH PLAIN?
AUTH PLAIN überträgt Benutzername und Passwort Base64-kodiert.
Das Format ist: \0Benutzername\0Passwort
- Base64-Wert erzeugen
- echo -ne '\0martha\0suxer' | base64
AG1hcnRoYQBzdXhlcg==
- Dekodieren zur Kontrolle
- echo "AG1hcnRoYQBzdXhlcg==" | base64 -d | cat -v
^@martha^@suxer
!!!Wichtig!!! Base64 ist keine Verschlüsselung – der Wert ist trivial dekodierbar. AUTH PLAIN ist nur sicher wenn die Verbindung TLS-verschlüsselt ist.
Sitzung
- openssl s_client -connect mail.it2XX.int:465 -crlf
220 mail.it2XX.int ESMTP Postfix (Debian) EHLO test 250-mail.it2XX.int 250-SIZE 10485760 250-AUTH PLAIN LOGIN 250 8BITMIME AUTH PLAIN AG1hcnRoYQBzdXhlcg== 235 2.7.0 Authentication successful MAIL FROM:<martha@it2XX.int> 250 OK RCPT TO:<bob@it2XX.int> 250 OK DATA 354 End data with <CR><LF>.<CR><LF> From: martha@it2XX.int To: bob@it2XX.int Subject: Test Testmail von martha. . 250 OK: queued as 67890 QUIT 221 Bye
- Was hier anders ist
- Ohne
AUTH PLAINverweigert der Server die Annahme - Envelope und Header stimmen überein – das ist eine legitime Mail
- TLS schützt die Übertragung – niemand sieht das Passwort im Klartext
IMAPS (Port 993)
- IMAP-Befehle müssen mit einer ID beginnen (a1, a2, ...)
- Auch hier ist die Verbindung sofort TLS-verschlüsselt
- openssl s_client -connect mail.it2XX.int:993 -crlf
* OK Dovecot ready
a1 LOGIN martha suxer
a1 OK Logged in
a2 LIST "" "*"
* LIST (\HasNoChildren) "." "INBOX"
a2 OK List complete
a3 SELECT INBOX
* 3 EXISTS
a3 OK Select complete
a4 FETCH 1 BODY[]
* 1 FETCH (BODY[] {412}
...Mailinhalt...
)
a4 OK Fetch complete
a5 LOGOUT
* BYE Logging out
a5 OK Logout complete
- Was hier passiert
LOGIN martha suxer– Benutzername und Passwort im Klartext, aber durch TLS geschütztLIST– zeigt alle MailboxenSELECT INBOX– öffnet den PosteingangFETCH– liest eine Mail- Im Gegensatz zu POP3 bleibt die Mail auf dem Server