Der maechtige Bayesian Filter
Ich gehe bei diesen Tipps davon aus, dass Sie Ihren Spamassassin erfolgreich konfiguriert und in den MTA integriert haben. Anleitungen zur Installation werden Sie in diesem Artikel leider nicht finden!
Ich benutze Exim als MTA auf einem Debian Server, mit Courier als Pop bzw. Imap Server. Ich nehme aber an, das die Lernbefehle auf allen Systemen gleich sein werden.
Wichtige Sachen
Zuallererst einmal fuer alle die sich fragen, wieso dieses Ding einfach nicht arbeiten will bzw. der Bayes nichts tut. Der Bayes benoetigt mindestens 200 Spam Mail Informationen und 200 Ham Mail (kein Spam) Informationen, damit er sinnvoll loslegen kann. Hat man die Spams Mails der letzten Zeit aufgehoben, duerfte es nicht schwer sein Ihn damit zu fuettern.
Wichtig zu beachten ist, dass es nicht reicht nur Spam zu filtern. Bayes benoetigt auch laufend neue Ham Mails um sicher arbeiten zu koennen. Also zwischendurch auch Ordner als Ham scannen die sicher Spam frei sind. Mehr dazu weiter unten.
Was man auch vermeiden sollte, ist benutzte Ordner des Mailsystems automatisch zu scannen. Es sollten immer nur Ordner gescannt werden, die sicher NUR Ham oder NUR Spam beinhalten, ansonsten koennte es zu verwechslungen beim Filtern kommen.
Aufrufen des Lernprogramms
Man kann die erhaltenen Spam Mails sammeln und wenn man Zeit hat das Lernprogramm drueber laufen lassen, bzw. mit einem Cronjob zu bestimmten Zeiten automatisch.
Die Befehle zum Lernen sind:
sa-learn –spam –showdots /folder/to/spam/
# Fuer Ham:
sa-learn –ham –showdots /folder/to/ham/
Um auf eine Uebersicht ueber die Bayes Datenbank zu kommen gibt es folgenden Befehl:
sa-learn –dump magic
Fuer die Konfiguration von Bayes in Spamassassin sind ein paar Variablen zu setzen.
# Bayes aktivieren
use_bayes 1
# Automatisches Lernen bei einem ueberschrittenen Grenzwert
bayes_auto_learn 1
# Grenzwert
required_score 5.0
# Beim Lernen den Header ’X-Bogosity’ ignorieren
bayes_ignore_header X-Bogosity
Zusaetzlich empfiehlt es sich im ACL Recipient Check des MTA noch ein paar Blacklisten einzufuegen. Bei Exim schau das folgendermassen aus:
deny message = Rejected because $sender_host_address is in a blacklist at $dnslist_domain
dnslists = smtp.dnsbl.sorbs.net