Spam-Mails sind heute allgegenwärtig, kaum ein E-Mail-Account bleibt davon verschont. Tatsächlich stellen sie bereits den überwiegenden Teil des Mail-Aufkommens, weltweit etwa 60 Prozent. Dazu kommen immer mehr Viren und Würmer, die über infizierte Rechner elektronischen Müll in die ganze Welt verschicken.
Aufgrund fehlender Standards zur Spam-Verhinderung durch die Provider muss jeder einzelne Benutzer selbst aufrüsten. Wer seine E-Mails zum Beispiel mit fetchmail abruft, kann mit Hilfe des Standard-Programms procmail sehr wirkungsvolle Spam-Filter aufbauen. Wenn Sie den Filter regelmäßig pflegen und nachschärfen, können Sie damit über 80 Prozent Spam automatisch erkennen und vorab aussortieren lassen.
Auf den Kopf geschaut
Der Kopf einer E-Mail birgt die meisten Informationen, anhand denen Sie sinnvolle E-Mails von Spam und anderen Massen-Mailings unterscheiden können. Üblicherweise verbergen E-Mail-Programme den Kopf einer Nachricht und zeigen statt dessen die wenigen für den Benutzer interessanten Felder wie Absender, Empfänger, Datum und Betreff an.
Den Inhalt einer kompletten E-Mail finden Sie in den Ordnern Ihres E-Mail-Programms – vorausgesetzt, das Programm hat die Mails im so genannten Mbox-Format gespeichert. Listing 1 zeigt einen verkürzten Auszug eines E-Mail-Kopfes mit den für die Spam-Abwehr wichtigsten Feldern. Je nach E-Mail-Programm des Absenders und Software Ihres Providers fällt der Kopf mehr oder minder umfangreich aus.
Listing 1
Kopf einer E-Mail
Return-path: <h.g.esser@easylinux.de>
Envelope-to: mdoelle@localhost
Delivery-date: Mon, 22 Nov 2004 16:02:22 +0100
Received: from localhost ([127.0.0.1])
by troy.linux-magazin.de with esmtp (Exim 3.33 #1 (Debian))
id 1CWFhu-0000Sj-00
for <mdoelle@localhost>; Mon, 22 Nov 2004 16:02:22 +0100
Delivered-To: mdoelle@linuxnewmedia.de
Received: from [192.168.1.118] (kira.linux-magazin.de [192.168.1.118])
by mail.linux-new-media.de (Postfix) with ESMTP id 5F1552A402C
for <mdoelle@linuxnewmedia.de>; Mon, 22 Nov 2004 14:54:06 +0100 (CET)
Message-ID: <41A1EF2D.4020404@easylinux.de>
Date: Mon, 22 Nov 2004 14:52:45 +0100
From: Hans-Georg Esser <h.g.esser@easylinux.de>
To: =?ISO-8859-1?Q?Mirko_D=F6lle?= <mdoelle@linuxnewmedia.de>
Subject: Re: Procmail
In-Reply-To: <20041119175340.391D92A402D@mail.linux-new-media.de>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Falsche Adressen
Die in Zeile 1 genannte Rücksendeadresse kommt vom ersten Mailserver, der die Nachricht vom E-Mail-Programm des Benutzers entgegengenommen hat. Die Angabe stammt meist aus der Benutzerdatenbank des Servers, wenn sich der Versender wie heute üblich beim Mailserver anmelden musste. Es handelt sich um die "wahre" Absenderadresse – sie ist jedoch keinesfalls fälschungssicher.
Zeile 15 enthält die E-Mail-Adresse, die der Benutzer in seinem Mail-Client als Absender eingegeben hat und unter der er eine Antwort erwartet. Der Unterschied zwischen den Adressen in Zeile 1 und 15 wird deutlich, wenn sich etwa eine ganze Familie einen Internet-Zugang bei T-Online teilt: Für den Versand über T-Online verwenden alle den T-Online-Server – dieser setzt als Rücksendeadresse die E-Mail-Adresse des Vertragsinhabers ein. Für den Empfang nutzen alle Familienmitglieder jedoch ihre eigenen E-Mail-Adressen, zum Beispiel von Free-Mailern wie Web.de oder GMX – diese Adresse finden Sie dann in Zeile 15.
Ein wichtiges Indiz für Trojaner und Würmer ist die Message-ID in Zeile 13. Diese Angabe füllt normalerweise das E-Mail-Programm des Versenders aus, um Antworten der ursprünglichen E-Mail zuordnen zu können. Vielen Wurm-Mails fehlt die Message-ID – statt dessen setzt das Abruf-Programm fetchmail eine aus der Uhrzeit und dem Rechner-Namen generierte Message-ID in den Kopf der E-Mail ein. Mails mit Ihrer eigenen Domain in der Message-ID sind also praktisch ausnahmslos Trojanische Pferde.
Die Zeilen 8 bis 10 der Procmail-Konfigurationsdatei .procmailrc aus Listing 2 zeigen eine Regel zum Ausfiltern von E-Mails mit der eigenen Domain in der Message-ID – in diesem Fall lautet die eigene Domain troy.linux-magazin.de. Die Syntax ist relativ einfach: Die erste Zeile beginnt stets mit der Marke :0 gefolgt von dem zu durchsuchenden Teil der E-Mail, das "H" steht hier für den Header (Kopf).
Listing 2
Die Procmail-Konfiguration
MAILDIR=$HOME/mail LOGFILE=$HOME/.procmail.log LOGABSTRACT=all LOCKFILE=$HOME/.lockfile INBOX=/var/spool/mail/mdoelle ADDRESSBOOK=$HOME/.addressbook :0 H * ^Message-Id:.*troy\.linux-magazin\.de.* viren :0 H * ^Subject:.*[ÂÁÇõ¿].* spam :0 H * (girls|payment|prescription|viagra) spam :0 Hw * ? /usr/local/bin/checkaddrbook $ADDRESSBOOK bekannte



