SpamAssassin

Aus LinuxUser 07/2002

SpamAssassin

Die vegetarische Mailbox - nie wieder Spam

Sie bekommen dauernd Post von Ihnen völlig unbekannten Menschen oder Computern? Angebote, die Sie wirklich nicht interessieren? Wenn die Mailbox ständig mit lästigen Werbe-Mails gefüllt wird, hilft SpamAssassin.

SpamAssassin ist ein Mail-Filter, der Werbe-Mails erkennt und markiert. Was mit den als Spam identifizierten Mails passiert, bleibt Ihnen überlassen. Die Erkennung erfolgt über bekannte Textbausteine im Bodyder Mail, wie z. B. “Try it out for FREE! (for a limited time only…)” oder “To be removed from our list please reply with `remove'”. Weitere Kriterien sind die ausschließliche Verwendung von HTML oder bestimmte Modifikationen im Headerder Mail. Für all diese Erkennungsmuster verteilt SpamAssassin Negativpunkte – ist eine (individuell konfigurierbare) Höchstgrenze überschritten, wird die Mail als Werbung markiert.

Installation und Konfiguration

Sie können SpamAssassin entweder als vorgefertigtes Paket (.rpm oder .deb) installieren oder es aus den Sourcen selbst bauen. Die entsprechenden Dateien finden Sie auf der Heft-CD im Verzeichnis LinuxUser/spamassassin/. Nach dem Mounten der CD führen Sie als Superuser root entweder rpm -Uvh spamassassin-2.20-1.i386.rpm (auf RPM-basierten Systemen) oder dpkg -i spamassassin_2.20-1_i386.deb (auf Debian-Systemen) aus. Sollte es bei dieser Vorgehensweise zu Problemen kommen (auf älteren SuSE-Systemen z. B. fehlten einige Pakete), installieren Sie die Sourcen wie folgt:

cd /usr/local/src/
tar xzvf /cdrom/LinuxUser/spamassassin/Mail-SpamAssassin-2.20.tar.gz

Ein neues Verzeichnis Mail-SpamAssassin-2.20 wird angelegt; wechseln Sie in dieses und rufen Sie das Perl-Script auf, welches das Makefile erzeugt:

cd Mail-SpamAssassin-2.20
perl Makefile.PL

Anschließend installieren Sie das Programm im Zweierschritt:

make spamassassin
make install

SpamAssassin lässt sich aber auch ohne root-Rechte im eigenen Home-Verzeichnis installieren – praktisch, wenn es nicht Ihr eigener Rechner ist. In diesem Fall melden Sie sich als Benutzer am System an und laden mit dem Programm wget die Sourcen vom Server, z. B. mit

wget http://www.spamassassin.org/released/Mail-SpamAssassin-2.20.tar.gz

Am besten legen Sie – sofern noch nicht vorhanden – in Ihrem Home-Verzeichnis ein neues Verzeichnis namens bin an (mkdir ~/bin). Wechseln Sie in das Verzeichnis (cd bin) und packen Sie das komprimierte Archiv dort wie oben beschrieben aus. Nun können Sie die gleichen Schritte wie weiter oben durchführen, verzichten aber (da Ihnen die Root-Rechte fehlen) auf das abschließende make install. Alle Konfigurationsdateien und Filterregeln werden daher im eigenen Home-Verzeichnis abgelegt. Diese finden Sie im Unterverzeichnis rules bzw. bei normaler Installation in /usr/share/spamassassin/.

White Lists

Dort liegt auch eine Datei namens user_prefs.template – eine Vorlage, mit der sich SpamAssassin den eigenen Wünschen anpassen lässt. Wenn Sie SpamAssassin einmal ohne Parameter aufrufen und mit [Strg-d] direkt wieder beenden, kopiert das Programm diese Vorlage in ein neu angelegtes Unterverzeichnis .spamassassin in Ihrem Home-Verzeichnis. Die Datei ist selbsterklärend und einfach zu konfigurieren. Die Punktzahl, ab wann eine Mail als Spam markiert wird, stellen Sie beispielsweise mit required_hits 5 ein. Ebenso kann hier eine Whitelist für Mails von bestimmten Adressen angelegt werden, die oft fälschlich als Spam eingestuft werden. Hinter dem Eintrag whitelist_from folgen die Spezifikationen – entweder in einer einzigen Zeile oder in mehreren Einträgen:

whitelist_from    redaktion@linux-user.de
whitelist_from    @L: *@linux-user.de
whitelist_from    @L: *.uni-koeln.de

Sie sehen hier, dass Sie neben vollständigen Adressen auch bestimmte Domains oder Subdomains freigeben können. Der Eintrag für sogenannte Blacklists funktioniert genauso, z. B. blacklist_from @L: *.microsoft.com – alle Mails dieser Domain werden nun automatisch wie Werbung behandelt.

Der Aufruf von SpamAssassin und der Einsatz verschiedener Parameter hängen davon ab, ob Sie SpamAssassin in Ihrem Home oder systemweit installiert haben. Daher werden in den beiden folgenden Abschnitten immer beide Möglichkeiten berücksichtigt.

SpamAssassin und Procmail – ein starkes Team

In LinuxUser 04/2002 [2] haben wir ausführlich beschrieben, wie Procmail eingerichtet wird. Um SpamAssassin als Filter einzusetzen, benötigen Sie zwei Einträge in der ~/.procmailrc. Ist das Programm systemweit installiert, sieht der Eintrag so aus:

:0fw
| spamassassin -P
:0:
  • ^X-Spam-Status: Yes caughtspam

Liegt das Programm in Ihrem Home-Verzeichnis, muss zunächst der vollständige Pfad angegeben werden. Dazu kommt noch der Parameter -c konfigurationsdatei, um SpamAssassin zu verraten, wo die Regeln liegen:

:0fw
| /home/user/bin/SpamAssassin/spamassassin -P -c /home/user/bin/SpamAssassin/rules
:0:
  • ^X-Spam-Status: Yes caughtspam

Die hier vorgestellten Filterregeln sagen Procmail zunächst mit dem f-Flag, dass es die ankommende Mail an einen Filter übergibt. Das w steht für “wait” – die erfolgreiche Beendigung des Filterprogrammes wird abgewartet. Danach kommt der Aufruf des eigentlichen Filters. Die zweite Regel sorgt dafür, dass alle Mails, die einen Header “X-Spam-Status: Yes” haben, also von SpamAssassin als Werbung identifiert wurden, im Folder caughtspam abgelegt werden. Es ist sinnvoll, diesen Eintrag vor allen anderen Regeln in Procmail einzufügen, da die Filterregeln der Reihe nach abgearbeitet werden.

Mails werden markiert, indem in das Subject @L: *@L: *@L: *@L: *@L: *SPAM@L: *@L: *@L: *@L: *@L: * eingefügt wird; in der Mail selbst stehen die Bewertungskriterien, wie Sie in Abbildung 1 sehen können.

Abbildung 1: Bewertungskriterien für Spam

Abbildung 1: Bewertungskriterien für Spam

SpamAssassin mit KMail verwenden

Sollten Sie Ihre Mails lieber lokal lesen und dazu KMail verwenden, müssen Sie nicht auf den SpamAssassin verzichten. Um den Filter in KMail zu aktivieren, wählen Sie in der Menüleiste des Programmes Einstellungen und dann Filter einrichten. Konfigurieren Sie die Filterregeln, wie in Abbildung 2 zu sehen. Sollte das Programm lokal installiert sein, müssen auch hier der komplette Pfad und die Konfigurationsdatei angegeben werden. Statt spamassassin -P steht in dem Feld dann /home/user/bin/SpamAssassin/spamassassin -P -c /home/user/bin/SpamAssassin/rules.

Abbildung 2: Filterregeln in KMail konfigurieren

Abbildung 2: Filterregeln in KMail konfigurieren

 

Abbildung 3: Spam in KMail - links ohne SpamAssassin, rechts mit

Abbildung 3: Spam in KMail – links ohne SpamAssassin, rechts mit

Noch mehr Whitelists

SpamAssassin kann so eingestellt werden, dass er die Whitelist automatisch erweitert: Es werden durchschnittliche Klassifizierungen der Mail analysiert und für die Einstufung neuer Mails mit herangezogen. Wenn also Ihr bester Freund es lustig findet, eine ganze Mail mit Wörtern wie “hot teens” oder “Viagra” zu schmücken, lässt der Filter ihn aufgrund früherer Einordnungen trotzdem passieren. Damit diese automatische Whitelist verwendet wird, muss das Programm immer mit dem zusätzlichen Parameter -a aufgerufen werden. Jetzt passiert Folgendes: Bei jeder neu eingehenden Mail, die nicht als Spam eingeordnet wird, werden alle enthaltenen E-Mail-Adressen in die Auto-Whitelist aufgenommen (~/.spamassassin/auto-whitelist.dir und ~/.spamassassin/auto-whitelist.pag). Wer in dieser Liste landet, dessen spätere Mails werden nur bei Erreichen einer höheren Spam-Quote auch als Spam eingestuft..

Adressen, die fehlerhaft als Spam-Absender einstuft wurden, lassen sich manuell zur Whitelist hinzufügen. Speichern Sie die betreffende Mail in einem eigenen Folder, z. B. nospam. Rufen Sie spamassassin -W < nospam auf. Damit werden die enthaltenen Adressen der Whitelist automatisch hinzugefügt: In Zukunft wird Mail von diesen Absendern nicht mehr als Spam behandelt. Um eine Mail von der Spam-Markierung zu befreien, verwendet man spamassassin -d < nospam > neuermailfolder – hier liegt jetzt die gesäuberte Mail.

Mehrere Tests auf dem lokalen Rechner und mit einem Server Account zeigten, dass SpamAssassin sehr zuverlässig läuft – bisher hatte der Filter eine hundertprozentige Trefferquote. Weiterhin kam es zu Wettbewerben unter SpamAssassin-Anwendern (“Mein Spam erzielt mehr Punkte als Deiner!”); ein anderer begeisterter Nutzer wollte dem Filter den “Nützlichstes Programm seit vi”-Award verleihen – und bevor es jetzt zu einem Flamewar über Emacs oder vi kommt, tragen wir das doch lieber per Mail aus – mit vielen !!! im Subject.

Glossar

Header

Eine E-Mail besteht aus drei Teilen: Envelope (= Umschlag), Header (= Nachrichtenkopf) und Body (= Nachrichtentext. Während der Umschlag nur für das Transportprogramm (MTA = Mail Transfer Agent) von Bedeutung ist, werden Body und Header vom Mail-Programm ausgewertet. Die Syntax des Nachrichtenkopfes ist im RFC 822 [1] exakt festgelegt, damit die einzelnen Felder (z. B. “Date:”, “From:”, “Subject:” oder “To:”) korrekt ausgewertet werden können. Die Angaben in diesen Feldern können vom Absender beliebig modifiziert werden und müssen nicht mit denen im Umschlag übereinstimmen. Es kann also eine E-Mail an Undisclosed.Recipients@linux-user.de adressiert sein, aber in einem Envelope stecken, der an redaktion@linux-user.de adressiert ist. Bei vielen Mail-Programmen werden nur einige oder gar keine dieser Felder angezeigt. Es ist jedoch für die meisten Mail Clients kein Problem, vollständige Header einzublenden.

Body

Nach dem Header und einer Leerzeile folgt der eigentliche Text der E-Mail. Laut RFC 822 ist nur ASCII-Text im Mail Body erlaubt. Dank der Entwicklung des MIME-Standards (“Multipurpose Internet Mail Extensions”, RFC 1521) ist es mittlerweile möglich, auch andere Datentypen zu versenden; dazu gehört nicht nur das Verschicken von Attachments, sondern auch das Benutzen anderer Zeichensätze.

Infos

[1] http://www.faqs.org/rfcs/rfc822.html

[2] Andreas Kneib: Der Meister der Rezepte – Mails bearbeiten mit procmail, LinuxUser 04/2002, S. 70

[3] http://www.spamassassin.org/

LinuxUser 07/2002 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben