Mailheader analysieren

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

Inhaltsverzeichnis
  1. Kopfzeilen
  2. Envelope-Adressen
  3. Received:-Zeilen
    1. Gefälschte Received:-Zeilen
    2. Transportwegverschlüsselung
  4. Beschwerde einreichen
  5. Links

In letzter Zeit kommt es häufiger vor, dass Leute Spam erhalten, der ihre eigene E-Mail-Adresse als Absender enthält. Viele bekommen dann erstmal Panik und vermuten, in ihren Rechner sei eingebrochen worden, und dieser würde jetzt zum Versenden von Spam missbraucht. Diese Annahme ist eigentlich immer grundfalsch. Die ganze Angelegenheit ist viel trivialer und auch nicht gefährlich, sondern bloß nervig. Dieser Artikel soll daher ein wenig erläutern, wie man die Kopfzeilen einer E-Mail lesen und deren Herkunft bestimmen kann.

Hinweis:

Hier soll jetzt nicht der Eindruck erweckt werden, dass niemals in Linux-Rechner eingebrochen und nachfolgend darüber Spam verschickt wird. Das kommt insbesonders bei Root-Servern durchaus vor. Nur erkennt man das dann garantiert nicht daran, dass die eigene Mail-Adresse für den Versand missbraucht wird.

Kopfzeilen

Um die folgenden Beispiele nachvollziehen zu können, sollte man zuerst in seinem E-Mail-Programm die Anzeige aller Kopfzeilen ("Header") aktivieren. Gerade die für den hier beschriebenen Zweck wichtigen Zeilen sind nämlich standardmäßig meist ausgeblendet. Jede Header-Zeile besteht aus dem Bezeichner, einem Doppelpunkt, und dem Inhalt des Headers, der den Rest der Zeile einnimmt. Ein Header kann sich auch über mehrere Zeilen erstrecken. In diesem Fall müssen die Folgezeilen mit einem Leerzeichen beginnen. Eine leere Zeile markiert das Ende des Header-Bereichs und den Beginn der eigentlichen Mail.

Grundsätzlich kann man die Kopfzeilen in zwei Gruppen unterteilen:

Envelope-Adressen

Verwirrung herrscht manchmal auch über die Beziehung der From:- und To:-Header zur Auslieferung der Mail. Es gibt nämlich keine. Diese sind eher vergleichbar mit einem traditionellen Briefkopf. Relevant für den Briefträger ist aber die Adresse, die auf dem Umschlag steht, und auch bei der elektronischen Post gibt es so eine Art Umschlag, auf englisch Envelope genannt.

Hinweis:

In deutsch lokalisierten E-Mail-Programmen werden die From:- und To:-Header meist als Von: und An: übersetzt, im Quelltext der Mail stehen sie aber stets auf Englisch, wie in den einschlägigen RFCs vorgeschrieben. Deswegen werden in diesem Artikel auch die standardisierten, englischen Bezeichner verwendet.

Die Nennung der Envelope-Adressen ist im SMTP-Protokoll vorgeschrieben und geschieht über die Befehle MAIL FROM: und RCPT TO:. (Näheres im Artikel Mailserver testen (Abschnitt „Mails-verschicken“).) Seriöse E-Mail-Clients sorgen natürlich dafür, dass die Adressen auf dem Envelope und im Header übereinstimmen, aber diese Übereinstimmung wird auf der Serverseite im Allgemeinen nicht erzwungen. Den Envelope-Absender kann man übrigens ebenfalls problemlos fälschen. Nur der Envelope-Adressat muss natürlich korrekt sein, damit die E-Mail am Bestimmungsort ankommt. Manche Mail-Server notieren abweichende Envelope- und Header-Adressen, indem sie der Mail einen Envelope-To:- respektive Return-Path:-Header hinzufügen. (Return-Path: bezeichnet die Adresse, wohin Fehlermeldungen geschickt werden können, welches der Envelope-Absender ist.)

Hinweis:

Ein seriöses Anwendungsszenario für abweichende Adressen ist die BCC-Funktion ("Blind Carbon Copy"). Solche Blindkopien werden nur über entsprechende Envelopes versendet, ohne dass ein entsprechender Hinweis in den Kopfzeilen vermerkt wird. Versendet man eine reine BCC-Mail ohne To:-Header, ergänzt der Server die folgende Zeile:

To: undisclosed-recipients:;

Received:-Zeilen

Wie oben schon erwähnt, muss man die Received:-Zeilen lesen, um die Herkunft einer E-Mail zu ermitteln. Diese sehen z.B. so aus (E-Mailadressen und persönliche Daten verfremdet):

Return-Path: <system @ ubuntuusers.de>
Received: from punkrock.otze ([unix socket])
 by punkrock (Cyrus v2.1.18-IPv6-Debian-2.1.18-5.1) with LMTP; Tue, 30 Dec 2008 21:56:09 +0100
Received: from localhost (localhost [127.0.0.1])
 by punkrock.otze (Postfix) with ESMTP id 8442B33F41
 for <otzenpunk@localhost>; Tue, 30 Dec 2008 21:56:09 +0100 (CET)
Received: from punkrock.otze ([127.0.0.1])
 by localhost (punkrock.otze [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id VaEx9k10wxvZ for <otzenpunk@localhost>;
 Tue, 30 Dec 2008 21:56:06 +0100 (CET)
Received: from pop.1und1.de (localhost [127.0.0.1])
 by punkrock.otze (Postfix) with ESMTP id 4A89133F40
 for <otzenpunk@localhost>; Tue, 30 Dec 2008 21:56:06 +0100 (CET)
Delivery-Date: Tue, 30 Dec 2008 21:51:48 +0100
Received: from eshu.ubuntu-eu.org (eshu.ubuntu-eu.org [88.191.92.57])
 by mx.kundenserver.de (node=mxeu22) with ESMTP (Nemesis)
 id 0MKr6C-1LHlZ53hyx-000hdT for otzenpunk@example.com; Tue, 30 Dec 2008 21:51:48 +0100
Received: from dongo.ubuntu-eu.org ([213.95.41.16])
 by eshu.ubuntu-eu.org with esmtp (Exim 4.69)
 (envelope-from <system @ ubuntuusers.de>)
 id 1LHlZ5-0000D5-HK
 for otzenpunk@example.com; Tue, 30 Dec 2008 21:51:47 +0100

Da ein Mailserver seine Received:-Zeile immer an den Anfang der Mail schreibt, geben diese zusammen genommen den Verlauf der Mail rückwärts wieder:

Die Mail hatte also ihren Ursprung auf dongo.ubuntu-eu.org.

Gefälschte Received:-Zeilen

Leider sind Received:-Zeilen auch nicht komplett fälschungssicher. Zwar trägt jeder seriöse Mailserver, über den eine Mail gesendet wird, seine Daten nach bestem Wissen ein, aber er hat keine Möglichkeit, die Echtheit der bereits vorhandenen Received:-Zeilen zu überprüfen. Das bietet Spammern die Möglichkeit, am Anfang beliebige gefälschte Received:-Zeilen einzutragen.

Hier ein Beispiel von einer echten Spammail.

Return-Path: <poultice9 @ bugs.debian.org>
Received: from punkrock.otze ([unix socket])
 by punkrock (Cyrus v2.1.18-IPv6-Debian-2.1.18-5.1) with LMTP; Mon, 27 Oct 2008 11:30:09 +0100
Received: from localhost (localhost [127.0.0.1])
 by punkrock.otze (Postfix) with ESMTP id 69B3A33F3D
 for <otzenpunk@localhost>; Mon, 27 Oct 2008 11:30:09 +0100 (CET)
Received: from punkrock.otze ([127.0.0.1])
 by localhost (punkrock.otze [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id gzNqf3Jt+FA2 for <otzenpunk@localhost>;
 Mon, 27 Oct 2008 11:30:09 +0100 (CET)
Received: from pop.1und1.de (localhost [127.0.0.1])
 by punkrock.otze (Postfix) with ESMTP id E376233F30
 for <otzenpunk@localhost>; Mon, 27 Oct 2008 11:30:08 +0100 (CET)
Delivery-Date: Mon, 27 Oct 2008 11:25:28 +0100
Received: from mail.geodezia.hu (mail.geodezia.hu [62.77.225.150])
 by mx.kundenserver.de (node=mxeu2) with ESMTP (Nemesis)
 id 0MKpdM-1KuPHh08sd-000Zjm for otzenpunk@example.com; Mon, 27 Oct 2008 11:25:27 +0100
Received: from [62.77.225.150] by bugs.debian.org; Mon, 27 Oct 2008 11:25:27 +0100

Offensichtlich hat der Spammer (vergeblich) versucht, die Seriosität des Debian-Projektes zu nutzen, um whitelist- oder bayes-basierte Spamerkennungssysteme auszutricksen. Dieselbe Absicht steckt übrigens auch dahinter, wenn ein Spammer den Adressaten des Spams als Absender einträgt. Es wird davon ausgegangen, dass

Wenn man Kunde bei einem großen Mailprovider ist, erhält man auch gelegentlich Spam, der anscheinend von jemandem mit einer ganz ähnlichen E-Mail Adresse stammt. Das ist derselbe Trick, bloß dass der Spammer eine lange alphabetische Liste an E-Mailadressen blockweise bespammt und dabei jeweils die erste Adresse als Absender benutzt. Das ist für den Betroffenen mitunter sehr ärgerlich, weil sein Postfach dann mit Nicht-Zustell-Benachrichtigungen überflutet wird und er u. U. wütende Beschwerden von wildfremden Leuten erhält, die keine Mail-Header lesen können und ihn fälschlicherweise für den Verursacher des Spams halten.

Transportwegverschlüsselung

Daneben enthalten die Received-Zeilen auch Informationen zu den verwendeten Übertragungsprotokollen und damit darüber, ob die Übertragung verschlüsselt oder in Klartext stattfand. Das Thunderbird-AddOn Paranoia 🇬🇧⮷ bereitet daraus Informationen zur Transportwegverschlüsselung bei empfangenen E-Mails anschaulich auf.

Beschwerde einreichen

Manchmal kann es sinnvoll sein, Spam an geeigneter Stelle zu melden. Wenn ein gecrackter Server zum Versenden genutzt wurde, sind die Betreiber vielleicht sogar dankbar darüber, wenn man sie auf das Problem aufmerksam macht. Seriöse Provider dulden auch keine Spammer unter ihren Kunden und gehen dagegen vor, wenn man sie benachrichtigt.

Auf der anderen Seite möchte man aber natürlich nicht den Spammer mit der Nase darauf stoßen, dass die eigene Mailadresse nicht nur gültig ist, sondern auch regelmäßig gelesen wird. Außerdem hat man im Allgemeinen auch nicht unbegrenzt Zeit für so was, es sei denn, man möchte die Beschäftigung mit Spam zum neuen Hobby machen.

Folgende Richtlinien könnten dabei nützlich sein: