1&1 Rootserver werden mit Plesk 8.x ausgeliefert. In Plesk enthalten ist Spam Assassin, dies wiederum enthält einen ganzen Sack voll Filter (Inhaltsfilter, ReqEx basiert, zu finden in /usr/share/spamassassin/*.cf) sowie einen Bayes Filter. Verzeichnisnamen beispielhaft für unseren Server mit Suse 9.3, dürfte bei neueren Suse Versionen aber nicht viel anders sein. In diesem Blog Post gibt es ein paar Ansätze, um die Filterleistung zu optimieren.
Eine ankommende eMail durchläuft nun jede einzelne dieser Filterregeln, trifft der Filter zu, wird der Spam Score der Nachricht hoch gezählt. Jeder Filter steigert den Spam Score um einen bestimmten Betrag, die Höhe der Steigerung ist in /usr/share/spamassassin/50-scores.cf hinterlegt. Übersteigt der Spam Score den in Plesk für das Postfach eingestellten Grenzwert, wird der Betreff der Nachricht mit “*** SPAM ***” gekennzeichnet, oder aber, falls gewünscht, direkt gelöscht.
Ein Bayes Filter ist ein sehr effektives Tool zur Spam Bekämpfung, allerdings reicht das Ergebnis dieses Bayes Filter nicht aus, in den Standard Score Einstellungen, eine Mail eindeutig als Spam zu klassifizieren, dafür gewichtet SpamAssassin die Bayes Auswertung zu niedrig.
Konkret: SpamAssassin empfiehlt einen Score von 5 als Spamgrenze zu nutzen, die Bayes_99%+ Regel aus dem SpamAssassin Regelwerk addiert aber maximal 3.5 Punkte zum Spam Score, das heilst: es müssen mindestens noch 2 andere Filter greifen, bevor bei einem Grenzwert von 5 eine Nachricht als Spam erkannt wird. Wir finden das zu niedrig und raten dazu, zumindest für BAYES_99 den Wert zu erhöhen, z.b. auf 4.5 – bzw. so nahe an den von Ihnen verwendeten Grenzwert zu setzen, wie Sie der Bayes Funktion vertrauen wollen.
Dazu muss man die Score Zuordnung ändern, am besten geschieht das entweder in /etc/mail/spamassassin/local.cf oder aber in /var/qmail/mailnames/<Domäne>/<MailAccount>/info/.spamassassin/user_prefs. mit Hilfe einer einfachen Zeile nach dem Muster
score BAYES_99 4.5
(So können übrigens auch die Bewertungen aller anderen Filter modifiziert werden).
Ein weiterer Fallstrick ist auch noch, dass SpamAssassin erst dann den Bayes Filter zum Einsatz bringt, nachdem der Postfach-Inhaber mindestens 200 Nachrichten als Spam und 200 Nachrichten als HAM in der Trainingsfunktion von Plesk zugeordnet hat. D.h. in der Praxis, ohne die Mithilfe durch den Inhaber des Mailkontos wird der Bayes Filter niemals oder zumindest niemals wirklich optimal funktionieren. Diese Mindestanzahl an trainierten eMails kann man zwar in der SpamAssassin Konfiguration ebenfalls noch vermindern, aber da ein Bayes Filter nur dann gut funktioniert, wenn er ausreichend mit Ham und Spam gefüttert wurde, wäre es der falsche Ansatz, einfach nur die Grenzen runter zu setzen. Wer sich also noch nie die Mühe gemacht hat, den SpamAssassin über das Plesk Kontrollpanel für das Mailpostfach zu trainieren, der muss sich nicht wundern, wenn er keine optimalen Ergebnisse erhält.
Trainieren in Plesk macht man am besten so: man holt seine eMail mal einen Tag nicht ab, oder weist sein E-Mail Programm an, Kopien der eMails auf dem Server zu belassen. Nur was auch noch im Postfach liegt, kann trainiert werden. Ein leeres Postfach taugt nichts zum Training. In Plesk geht man nun zu dem Postfach und dort in den SpamAssassin Bereich, dort auf den Reiter Training. Hier erhält man nun eine Liste aller eMails, die sich noch im Postfach befinden, gefiltert nach Alle, Spam, Nicht Spam und Unbekannt. Nun setzt man einfach ein Häkchen vor jedem Spam und klickt oben auf dem SPAM Knopf. Auf die gleiche Weise trainiert man die Hams, nur halt mit dem Nicht-Spam Knopf. Eine Nachricht, die trainiert wurde, wird mit einen Zahnrad Icon angezeigt. Eine Nachricht kann schon korrekt als Spam oder Ham erkannt sein, aber wenn da noch kein Zahnrad davor steht, wurde diese Nachricht noch nicht zum Training benutzt. SpamAssassin trainiert Nachrichten mit sehr hohem Spam Score teils automatisch als Spam, bzw. mit Spam Score unter 0.5 als Ham, aber der Grossteil des Trainings muss von Hand erfolgen. Nach erfolgreichem Training holt man dann seine eMails ab, bzw. lässt das Postfach nun leeren. Das Ganze wiederholt man in Regelmäßigen Abständen immer wieder mal.
In bestimmten Fällen könnte es hilfreich sein, die Filter von SpamAssassin manuell noch zu erweitern, in dem wir wiederum in der local.cf bzw. user_prefs eigene Filterregeln anhand von Regular Expressions definieren und diesen entsprechende Scores hinzufügen. Die Möglichkeiten sind auf der SpamAssassin Homepage im Hilfe Bereich gut und verständlich dokumentiert, die Tatsache, dass hier RegEx Ausdrücke zum Einsatz kommen, macht das ganze sehr flexibel. Das Rumspielen mit SpamAssassin lohnt sich auf jeden Fall.