Wie verbessere ich die Funktion von Spamassassin?

Mit ein paar einfachen Mitteln ist es möglich den Spamassassin auf dem Webserver als wirklich brauchbares Antispamtool zu nutzen.

In Verbindung mit Plesk muss man zunächst einmal die globale Konfiguration aktivieren, weil ansonsten gibt es eine eigene Konfiguration für jedes Postfach.
Bei Debian ist das alles kein Problem, der Schalter “greift”, bei Suse scheint SW-Soft jedoch mal wieder was verbockt zu haben und man muss dieses Option für jedes Postfach deaktivieren.
Ist jedoch auch nicht so tragisch da man per Domain eine Konfiguration für alle Postfächer der Domain setzen kann.

Der nächste Schritt wäre die Konfiguration der /etc/mail/spamassassin/local.cf.
Meine schaut wie folgt aus:

rewrite_header subject *****SPAM*****
required_score 5.00
report_safe 1
use_bayes 1
use_bayes_rules 1
bayes_auto_learn 1
bayes_min_ham_num 10
bayes_min_spam_num 10
bayes_file_mode 777
bayes_path /var/spool/spamassassin/bayes
bayes_auto_learn_threshold_spam 5.5
skip_rbl_checks 0
ok_languages all
ok_locales all


Ich möchte hier nicht alle “Schalter” erklären weil sie entweder selbsterklärend sind, oder einfach zuviel Input dahinter steckt um das hier niederzutippen.

Eigentlich wichtig ist nur bayes_min_ham_num 10 und bayes_min_spam_num 10. Dieses sagt dem Bayesfilter das er schon nach 10 erkannten Spams oder Hams anfangen soll seine Datenbank zu trainieren. Ich glaube wenn man dieses Schalter nicht aufführt fängt er erst bei 250 an.

In den Ordner /etc/mail/spamassassin kann man sich auch ein paar zusätzliche Regeln ablegen welche dann bei der Punktevergabe berücksichtigt werden. Z.B. antidrug.cf bogus-virus-warnings.cf chickenpox.cf evilnumbers.cf sa-random.cf tripwire.cf MIME Validation Ruleset German Language Ruleset.
Diese Regeln werden “extern” gepflegt und müssen ab und aktualisiert werden.

Den SA einmal neustarten damit die geänderte Konfiguration und die Regeln übernommen werden.

Nun müssen wir dem Bayes noch einen Haufen Spams und Hams geben, damit seine DB eine vernünftige Grundlage hat.
Früher konnte man bei spamhouse.org entdprechende mboxen herunterladen, aber leider gibt es dieses Projekt nicht mehr.
Hier gibt es jedoch zwei, wenn auch veraltete, mboxen mit Spam.
Diese läd man sich herrunter und führt sa-learn –spam –mbox /pfad/zur/mbox aus.
Kontrollieren ob dies geglückt ist kann man indem man die Zeitstempel der Dateien bayes_seen und bayes_toks in /var/spool/spamassassin/ kontrolliert. Diese müssten sich nun geändert haben, bzw die Dateien erstellt worden.

Eigentlich bräuchte der Bayes auch einen Schwung Hams um vernünftig unterscheiden zu können, nur leider habe ich keine mbox mit Ham finden können. Aber durch ein wenig manuelles Training passt da schon.

Um den Bayes nun manuell zu trainieren, bzw anzufüttern muss man 3 Postfächer anlegen.
Jeweils eins für Spam, Ham und forgett. Z.B. einfach spam@deinedoamin.tld.
Diese Postfächer lasse ich alle 4 Stunden via Cron lernen:

1 */4 * * * sa-learn –spam /var/qmail/mailnames/domain.tld/spam/Maildir/new/
2 */4 * * * sa-learn –ham /var/qmail/mailnames/domain.tld/ham/Maildir/new/
3 */4 * * * sa-learn –forget /var/qmail/mailnames/domain.tld/forget/Maildir/new/

Und alle 24h mittels eines einfachen sh-Scripts löschen:

#/bin/sh
rm /var/qmail/mailnames/domain.tld/spam/Maildir/new/*.*
rm /var/qmail/mailnames/domain.tld/ham/Maildir/new/*.*
rm /var/qmail/mailnames/domain.tld/forget/Maildir/new/*.*

Das löschen alle 24 Stunden reicht vollkommen, da eMails die einmal gelernt wurden nicht mehr neu gelernt werden.

Nun müsst ihr, bzw eure eMailnutzer nurnoch alles was vom SA nicht als Spam markiert wurde an spam@deinedomain.tld weiterleiten, alles was “echte” eMails sind, also Ham, an ham@deinedomain.tld weiterleiten und fälschlich erkannte eMails an forget@deinedomain.tld weiterleiten.

Hierbei ist es wichtig das zumindest am Anfang einige Hams weitergeleitet werden, da der Bayes, wie oben erwähnt, noch keine Hams im Bauch hat.

Diese Modifikationen haben bei mir bewirkt das ich verdammt lange keine eMail an mein Spampostfach weiterleiten musste -> funzt prima bei mir.

Meine Angaben hier beziehen sich auf Suse10 mit Plesk 8.1 und sind alle ohne Verbindlichkeit.

Wer sich noch weiter über die Möglichkeiten von Spamassassin informieren möchte, dem sei dieses Buch empfolen.
Dort werden Spam-Basics, die generelle Funktionsweise des SA, Regeln, Black- und Greylistingmöglichkeiten, RBL, externe Spamdatenbanken usw. ziemlich gut erläutert.

Falls noch Fragen oder Verbesserungen sind, feel free to comment!




Trackback-Url Trackback

6 Kommentare für “Wie verbessere ich die Funktion von Spamassassin?”

  1. www.gravatar.com
  2. www.gravatar.com
  3. www.gravatar.com
  4. www.gravatar.com
  5. www.gravatar.com
  6. www.gravatar.com
blog stats