O'Reilly logo

Mit Open Souce-Tools Spam & Viren bekaempfen by Alexander Wirt, Peter Eisentraut

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

This is the Title of the Book, eMatter Edition
Copyright © 2005 O’Reilly & Associates, Inc. All rights reserved.
|
319
First
Max.
Linie
Max.
Linie
Anhang A
ANHANG A
Das SMTP-Protokoll
Dieser Anhang gibt eine kurze Einführung in das SMTP-Protokoll, um zum Ver-
ständnis des Buchs beizutragen.
Grundlagen
SMTP steht für Simple Mail Transfer Protocol. Es regelt die vom Absender gesteu-
erte Übertragung von elektronischer Post (E-Mail) zwischen zwei Rechnern. Das
»Abholen« von elektronischer Post vom Server auf den Client, also die vom Emp-
fänger gesteuerte Übertragung, wird üblicherweise über die Protokolle IMAP oder
POP3 durchgeführt und ist somit hier nicht Thema.
Das SMTP-Protokoll ist im RFC 2821 definiert. Dieses Dokument ersetzt das
ursprüngliche Dokument RFC 821, auf das gelegentlich noch verwiesen wird. Diese
Dokumente definieren nur das Übertragungsprotokoll. Das interne Format einer
gültigen E-Mail-Nachricht ist in RFC 822 und anderen Dokumenten definiert und
vom SMTP-Protokoll vollkommen unabhängig.
SMTP ist ein Client/Server-Protokoll. Der Client sendet Befehle an den Server, die-
ser antwortet mit einer Bestätigung oder einem Fehler. Der Client ist der Absender,
der Server ist der Empfänger der E-Mail. Beide Parteien können aber auch Mittels-
nner in einer Übertragungsreihe sein und müssen nicht der ursprüngliche Absen-
der oder der endgültige Empfänger sein. Man spricht bei einer solchen Weiterlei-
tung von Relaying.
SMTP ist textbasiertes Protokoll. Alle Befehle und Antworten sind lesbare Zeichen-
ketten. Zu Testzwecken ist es also möglich und üblich, SMTP-Befehle von Hand
einzutippen. SMTP erfordert am Ende jeder Zeile ein Carriage-Return gefolgt von
einem Zeilenwechsel, also Zeilenenden im Windows-Stil. Viele SMTP-Server haben
dabei jedoch eine gewissen Flexibilität.
This is the Title of the Book, eMatter Edition
Copyright © 2005 O’Reilly & Associates, Inc. All rights reserved.
320
|
AnhangA: Das SMTP-Protokoll
Links
Max.
Linie
Max.
Linie
Der SMTP-Dialog
Der folgende Ausschnitt zeigt einen vollständigen SMTP-Dialog. Mit dem Befehl
telnet hostname 25
kann man derartige Testsitzungen selbst durchführen. Die hervorgehobenen Zeilen
werden vom Client gesendet, die anderen Zeilen sind die Antworten des Servers.
220 mail.example.net ESMTP Postfix (Debian/GNU)
HELO workstation.example.net
250 mail.example.net
MAIL FROM: <joe@example.net>
250 Ok
RCPT TO: <bob@elsewhere.org>
250 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
From: foo <foo@bar.com>
To: bar <bar@foo.com>
Subject: Test
This is a test.
.
250 Ok: queued as 20FCE3C0026
QUIT
221 Bye
Die Zeilen des Servers beginnen stets mit einer Zahl, dem Statuscode. Daran kann
das Client-Programm erkennen, ob die Eingabe erfolgreich bearbeitet wurde. Die
Statuscodes werden unten erklärt. Der jeweils nachfolgende Text ist für die automa-
tische Bearbeitung uninteressant. Er ist nur für ckmeldungen an den Benutzer
oder für Log-Aufzeichnungen relevant.
Die Verwendung von Groß- und Kleinschreibung in SMTP-Befehlen ist egal, mit
Ausnahme der Benutzernamen in E-Mail-Adressen. Gewöhnlich werden SMTP-
Befehle großgeschrieben, wie auch hier.
In den folgenden Abschnitten wird der Verlauf des SMTP-Dialogs erläutert.
Begrüßung
Zuerst sendet der Server eine Begrüßungszeile. Diese enthält üblicherweise den
Hostnamen des Servers sowie Informationen über das verwendete SMTP-Server-
Produkt.
Als ersten Befehl muss der Client den Befehl
HELO mit dem eigenen Hostnamen als
Argument senden. Konzeptionell dient dieser Befehl als Begrüßung des Clients an
den Server, ist aber aus heutiger Sicht funktionell sinnlos. Aus diesem Grund wird
der Befehl von selbst gebauten Skripten oder schlecht implementierter Spam-Soft-
ware häufig vergessen. SMTP-Server ignorieren den Fehler zwar in der Regel, kön-
This is the Title of the Book, eMatter Edition
Copyright © 2005 O’Reilly & Associates, Inc. All rights reserved.
Der SMTP-Dialog
|
321
Rechts
Max.
Linie
Max.
Linie
nen aber so konfiguriert werden, dass sie den HELO-Befehl verlangen. Laut SMTP-
Standard wird der angegebene Hostname nicht überprüft, aber auch das kann teil-
weise eingeschaltet werden und der Spam-Abwehr dienen. Kapitel 3, Spam- und
Virenabwehr mit Postfix, Exim und Sendmail enthält Informationen dazu.
Clients, die das erweiterte SMTP-Protokoll (ESMTP) unterstützen – heutzutage die
meisten –, senden stattdessen den Befehl
EHLO. Für die Betrachtungen hier ist dieser
Befehl aber identisch.
Als Antwort auf
HELO oder EHLO gibt der Server seinen eigenen Hostnamen zurück.
Angabe des Absenders
Nach der Begrüßung sendet der Client den Befehl MAIL FROM: gefolgt von der
Absenderadresse. Diese Adresse muss laut RFC 821 wie gezeigt in spitzen Klam-
mern stehen und enthält nur die Adresse und keine Namen. Angaben wie
MAIL FROM: joe@example.net
oder
MAIL FROM: Joe User <joe@example.net>
sind also ungültig. (Sie entsprechen dem Standard RFC 822 für den Inhalt von E-Mail-
Nachrichten.) Viele SMTP-Server akzeptieren aber zumindest auch die erste Form.
Der angegebene Absender kann im Prinzip frei erfunden werden, wenn man seine
Identität zu verbergen versucht. Einige SMTP-Server können so konfiguriert wer-
den, dass sie zumindest die Plausibilität der Absenderangabe überprüfen.
Ein Sonderfall ist die Angabe:
MAIL FROM: <>
Dies ist ein so genannter Null Return Path, der verwendet wird, wenn das E-Mail-
System eine Fehlermeldung sendet. Falls die Fehlermeldung selbst einen Fehler
erzeugt, weiß das E-Mail-System, dass es auf diese E-Mail nicht antworten soll und
kann.
Auf die Angabe des Absenders reagiert der Server mit einer kurzen Bestätigung.
Angabe der Empfänger
Nach der Angabe des Absenders sendet der Client den Befehl RCPT TO: gefolgt von
der Adresse des Empfängers im selben Format wie oben beschrieben. Die Empfän-
geradresse muss natürlich richtig sein, wenn die E-Mail ankommen soll.
Auf die Angabe des Empfängers reagiert der Server wieder mit einer kurzen Bestäti-
gung.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required