Auch ohne eigenen Mailserver hilft Spamassassin, lästigen Werbemüll zu filtern. Der Artikel erklärt das Zusammenspiel des Programms mit Evolution und KMail. Der Client Thunderbird hat dagegen einfache Spam-Erkennung schon eingebaut.
Um Spam-Erkennungssoftware zu verwirren, greifen Spammer zu immer perfideren Methoden. So entstellen sie beispielsweise Text und Subject, bis kaum noch lesbare Information übrig bleibt. Sie setzen zwischen die einzelnen Buchstaben Sonderzeichen, so dass ein einfacher Textvergleich nicht funktioniert: V.a.l.i.u.m ist eben nicht dasselbe wie Valium.
Gegen solche solche Tricks ist Spamassassin mittlerweile gewappnet. Für die gängigsten Werbe-Produkte prüft er, ob ein so entstellter (engl. “gappy”, lückenhafter) Markenname vorkommt. Eigentlich stellen sich die Spammer damit selbst ein Bein, denn im normalen E-Mail-Verkehr dürfte selten ein entsprechender Name auftauchen. Damit sinkt die Zahl der “False Positives”, der irrtümlich als Spam klassifizierten Nutz-Mails.
Gemeinsam Spam finden
Um die Aufklärungsquote zu steigern, greift der Spamdetektiv zu fortgeschrittenen Methoden: Spamassassin befragt Server, die im Internet kursierende Spam-Mails registrieren. Ähnlich funktionieren so genannte Blacklists wie die Spamhaus-Liste [1], die Adressen von Spamservern enthalten. Spamassassin führt für jede E-Mail mehrere Hundert solcher Überprüfungen durch. Neugierige finden eine Seite mit allen Tests auf der Homepage [2].
Erkennt Spamassassin eine Mail als Spam, markiert er sie durch zusätzliche Header-Zeilen, zum Beispiel X-Spam-Flag: YES. Mailprogramme oder weitere Filter lesen den Header und verfahren mit der E-Mail nach Benutzerwunsch, schmeißen sie entweder gleich weg oder legen sie in einen speziellen Mail-Folder ab. In weiteren Header-Zeilen liefert Spamassassin Zusatzinformationen zu seinen Tests:
X-Spam-Status: Yes, hits=7.1 ? tagged_above=-99.0 required=5.0 ? tests=BAYES_99,FORGED_YAHOO_RCVD,? MORTGAGE_PITCH
Neben der Einordnung der Mail als Spam (Yes) finden sich hier die erreichte Punktezahl (hits), der Spam-Grenzwert (required) und die durchgeführten Tests.
Zuhause filtern.
Wer den Mailserver nicht selbst betreibt, kann Spamassassin nicht dort laufen lassen. Als Ausweg bietet sich der Einsatz auf dem Client an, also auf dem Rechner, der die Mails vom Server holt. Die Lösung hat den kleinen Schönheitsfehler, vor dem Spamcheck die Mails erst zu herunterladen. Die Werbe-Mails kosten also immer noch Ressourcen, tauchen aber wenigstens nicht mehr im Mailprogramm auf.
Installation
Spamassassin ist weit verbreitet, deshalb gibt es für viele Distributionen fertige Pakete. Die meisten führen Spamassassin sogar auf den Installationsmedien, man muss es nur noch mit dem Paketmanager installieren. Fedora Core 2 wie auch Suse 9.1 bringen Version 2.6.3 mit.
Ein RPM des aktuellen Spamassassin 3.0.1 von http://atrpms.net/ finden Sie auf der Heft-CD. Dessen Installation ist allerdings eher etwas für Fortgeschrittene, denn häufig fehlen den Standard-Distributionen die nötigen, aktuellen Bibliotheken. Die findet man zwar auch leicht über entsprechende Suchmaschinen. Sie auf der eigenen Distribution zu installieren, ist aber wegen der Vielzahl an Abhängigkeiten nicht ganz einfach.
Der Artikel beschränkt sich deshalb auf Spamassassin 2.6. Die Antispam-Software setzt folgende Perl-Pakete voraus: perl-Time-HiRes, perl-Digest-SHA1, perl-Digest-HMAC und perl-Net-DNS. Installiert man mit einem grafischen Paketmanager, löst er solche Abhängigkeiten auf. Andernfalls ist Handarbeit gefragt.
Debian-User installieren die nötige Software am einfachsten mit apt-get install spamassassin. Allerdings müssen auch sie sich mit Version 2.64 begnügen.
Damit die Mailprogramme nach Spam suchen, muss im Hintergrund bereits Spamassassin laufen. Unter Fedora richtet das dauerhaft der Befehl chkconfig spamassassin on ein und startet das Programm auch gleich. Unter Suse erledigt dasselbe inserv spamd. Debian kennt zu diesem Zweck das Skript update-rc.d, das als Parameter den Servicenamen (spamassassin), das Kommando start, die Nummer des Skripts und schließlich den Runlevel verlangt.
In KMail einbauen
Als Besitzer einer neuen KMail-Version (ab 1.7) benutzen Sie einfach die eingebaute Spamassassin-Unterstützung (siehe Kasten Fortschritt). In älteren KMail-Varianten müssen Sie einen Umweg über gewöhnliche Mail-Filter einschlagen, der mit dem Menü Einstellungen | Filter beginnt (Abbildung 1).
Im folgenden Fenster legen Sie mit dem entsprechenden Button (siehe Abbildung 1) eine neue Regel an und nennen sie Spam finden. In der Auswahlliste klicken Sie auf <Feld im Vorspann>, wählen rechts daneben passt auf regulären Ausdruck. Im rechten Textfeld geben Sie einen Punkt ein, der als Regular Expression für ein beliebiges Zeichen steht. Damit haben Sie eine Filterregel angelegt, die auf jede eingehende E-Mail zutrifft.

Abbildung 1: Das Filter-Fenster in KMail. Im linken unteren Bereich liegt der Button für eine neue Filterregel.
Fortschritt
Wer neuere Versionen von KMail (zum Beispiel 1.7.1) oder Evolution (ab 2.0) benutzt, kann sich einiges an Arbeit sparen. Die modernen Mailprogramme bringen Antispam-Mechanismen bereits mit. Die Installation von Evolution 2.0 setzt unter Fedora Core 3 sogar Spamassassin voraus.
KMail lässt dem Benutzer die Wahl zwischen Bogofilter, Annoyance und Spamassassin. Beim Start sucht das Programm selbst nach installierten Antispam-Programmen.
Unter Filteraktionen wählen Sie durch Programm leiten und geben im Textfeld dahinter spamc ein. Wenn Sie nun den Filterdialog schließen und per POP Ihre E-Mail abrufen, führt KMail für jede einzelne E-Mail spamc aus. Das Kommandozeilenprogramm kontaktiert den im Hintergrund laufenden Spamassassin-Server und übergibt ihm eine E-Mail zum Spam-Test. Zum Test starten Sie diesen Filtervorgang von Hand, indem Sie im Nachricht-Menü den Eintrag Filter anwenden wählen oder [Strg-J] drücken.
Fedora hat Spamassassin so voreingestellt, dass er Werbe-Mail mit einem [SPAM] in der Betreffzeile markiert. Natürlich fügt Spamassassin trotzdem neue Header-Zeilen in die E-Mail ein, um die Spam-Analyse zu dokumentieren. Die zusätzlichen Header machen Sie über Ansicht | Vorspann | Alle sichtbar – suchen Sie nach Zeilen, die mit X-Spam beginnen.
Solchermaßen markierte Werbe-Mail lässt sich leicht mit einer zweiten Filterregel entfernen. Dazu klappen Sie das erste Menüfeld aus und wählen dort X-Spam-Flag. Wenn im nächsten Feld schon enthält steht, brauchen sie im dritten nur noch YES einzutragen. Als Filteraktion verwenden Sie dieses Mal ablegen in Ordner mit dem Ziel Mülleimer. Wichtig ist, bei der zuerst definierten Regel Spam finden den Punkt Bearbeitung hier abbrechen ... abzuwählen. Nur dann wendet KMail den zweiten Filter überhaupt an.
Wann immer Sie nun Mail abrufen, durchläuft sie beide Filter, und Werbung landet im Mülleimer. Leider dauert das Mailholen nun auch etwas länger, denn KMail startet für für jede Mail das Programm spamc. Aktuelle KMail-Versionen brauchen weniger Ressourcen und sind etwas schneller.
Mit Evolution filtern
Grundsätzlich läuft in Evolution (Version 1.4.6) die Filtereinrichtung ähnlich wie bei KMail, die entsprechenden Menüs heißen lediglich anders und sind anders angeordnet. Der Punkt Werkzeuge | Filter öffnet den Filterdialog. Mit einem Klick auf Hinzufügen erscheint ein neues Fenster (Abbildung 2).
Geben Sie der Regel zuerst einen Namen, zum Beispiel Spam finden. In der oberen Liste, die zunächst Absender anzeigt, wählen Sie Regex-Treffer, und geben im rechten Textfeld einen Punkt ein. Wie bei KMail beschrieben, trifft diese Regel auf alle eingehenden Mails zu. Im unteren Teil des Fensters suchen Sie in der Liste den Punkt mit dem sperrigen Namen Nachricht an Bedienoberflächenbefehl weiterleiten aus. Ins Feld dahinter schreiben Sie /usr/bin/spamc.
Analog richten Sie eine zweite Regel Spam verschieben ein, die als Kriterium Bestimmte Kopfzeile, als Namen X-Spam-Flag und als Inhalt YES enthält (Abbildung 3).

X-Spam-Flag den Inhalt YES führt.” width=”300″ height=”68″ />
X-Spam-Flag den Inhalt YES führt.Billiglösung
Mag man sich nicht mit der Installation eines zusätzlichen Programms herumschlagen und im Mailclient Filter einrichten, bringt der Mozilla-Ableger Thunderbird [3] eine einfachere Lösung. Er besitzt einen Mechanismus, der im Lauf der Zeit lernt, was der jeweilige Benutzer Spam als Spam ansieht und was nicht.
Die Konfiguration beginnt bei Extras | Junk-Filter | Einstellungen (Abbildung 4). Im folgenden Dialog sollte die Option Eingehende Nachrichten, die als Junk eingestuft werden, verschieben in: nicht angekreuzt sein, damit Sie den eingebauten Filter erst einmal trainieren können.
Schließen Sie den Dialog und holen Sie per Knopfdruck die Mail vom Server. Thunderbird markiert nun alle Emails als Junk, indem es ein Mülltonnen-Icon neben das Datum setzt. Nun gehen Sie aufmerksam durch die Liste und entfernen mit einem Klick das Icon von jeder Nutzmail. Beim nächsten Testlauf wird Thunderbird eine bessere Trefferquote erzielen. Sind Sie mit den Trainingsergebnissen zufrieden, legen Sie im Junk-Filter-Dialog fest, dass Thunderbird die Spam-Mails gleich in den Abfallordner verschiebt.
Lebensaufgabe
Der Spam-Erkenner Spamassassin lässt sich ohne großen Aufwand auf dem eigenen Rechner installieren und als Filter dem eigenen Mailprogramm verfügbar machen. Die Lösung ist nicht optimal, denn die Werbe-E-Mails müssen erst über den Internetanschluss auf den eigenen Rechner. Hat man keinen Zugang zum Server, ist das aber immer noch der beste Weg.
Durch seine Vielzahl an Tests fällt Spamassassins Erfolgsquote recht hoch aus, zumal das Programm aktualisierte Listen im Internet heranzieht. Für Fortgeschrittene bietet Spamassassin eine Menge Potenzial: er lässt sich durch neue Regeln verbessern und mit Werbe-Emails gezielt trainieren. Die Man-Page zum Programm sa-learn gibt dazu Hinweise.
Glossar
-
Spam
-
Ursprünglich war Spam ein Markenname für Dosenfleisch, der durch einen Sketch der britischen Komikertruppe Monty Python berühmt wurde. Heute steht Spam für die Flut an Werbe-E-Mail, die jeden Benutzer zum Wahnsinn treibt.
-
Header
-
Der E-Mail-Header enthält einige Zeilen an Verwaltungsinformationen. Neben Sender und Empfänger umfasst der Header auch viele Zeilen, die der Benutzer normalerweise nicht zu Gesicht bekommt. E-Mail-Clients erlauben, alle Header-Zeilen einzublenden.
-
Regular Expression
-
Sonderzeichen, die viele Linux-Programme als Platzhalter für andere Zeichen verstehen. So vertritt ein ein Punkt ein einzelnes Zeichen, ein Stern (*) dessen beliebig häufige Wiederholung (das schließt auch
keinmalmit ein).
Infos
[1] http://www.spamhaus.org/sbl/
[2] In Spamassassin 2.6 eingebaute Tests http://spamassassin.apache.org/tests_2_6x.html
[3] Email-Client Thunderbird: http://www.mozilla.org/products/thunderbird/
[4] Deutsche Sprache für Thunderbird: http://www.mozilla.org/projects/l10n/postinst-notes/tb03.html






