CWP – Spamassassin und Bayes Spamerkennung verbessern



Bitte unterstützt meine Arbeit



In meinem vorherigen Beitrag habe ich euch gezeigt wie man Spamassassin und Bayes konfiguriert HIER

Heute zeige ich euch wie man die Erkennung ob Spam oder nicht verbessert und die Treffergenauigkeit erheblich verbessern kann.

Die Bekämpfung von Spam ist immer eine heikle Situation. Auf organisatorischer Ebene muss eine Strategie zur Bekämpfung von Spam formuliert werden, um ein Maximum an Flexibilität und Effektivität für einzelne Benutzer, einzelne Organisationen und die gesamte Einrichtung zu erreichen.

Eine übliche Vorgehensweise besteht darin, einrichtungsweite Benutzerpräferenzen zu definieren und ein einziges, einrichtungsweites Regelwerk zu verwenden, mit dem SpamAssassin arbeiten kann – einschließlich Bayes-Datenbank(en).

Die Probleme beginnen, wenn einzelne Benutzer legitime E-Mails als Spam markieren, insbesondere den Firmen-Newsletter oder die Korrespondenz, für die sie sich vor einiger Zeit angemeldet haben, die sie aber nicht mehr erhalten möchten. Die Benutzer neigen dazu, die langfristigen Auswirkungen der Markierung dieser Nachrichten als Spam zu ignorieren, wenn sie sich überhaupt dessen bewusst sind, und wollen solche Nachrichten einfach nur loswerden.

Gängige Beispiele für die Art von Nachrichten, die oft als Spam markiert werden, obwohl es sich um legitimen Verkehr handelt, sind

  • Newsletter bei denen die Nutzer legitime Nachrichten als Spam markieren, anstatt sie abzubestellen
  • Benachrichtigungen von sozialen Netzwerken wie Google+, Facebook, Twitter usw. bei denen die Nutzer legitime Nachrichten als Spam markieren, anstatt ihre Benachrichtigungseinstellungen anzupassen.
  • Benachrichtigungen von Foren und/oder Diensten

Wenn genügend Nutzer diese Nachrichten als Spam markieren, wird das System beginnen, diese Nachrichten als Spam zu erkennen, und andere Nutzer können daran gehindert werden, dieselben oder ähnliche Nachrichten in ihrer INBOX zu erhalten.


Amavis, der standardmäßige Inhaltsfilter, der Viren- und Spamschutz bietet, umgibt SpamAssassin, um diese Flexibilität zu erreichen.

Separate Bayes-Datenbank(en) können auf der Grundlage von SpamAssassin-Konfigurationsdateien und SQL-Bayes-Benutzernamen pro Empfänger und pro Policy-Bank erstellt werden.

Ohne die Dinge zu sehr zu verkomplizieren, umfasst ein gängiges Szenario, das den Anti-Spam-Bemühungen ausreichend dient, die folgenden Aspekte;

  • Es wird ein gemeinsamer/Spam-Ordner erstellt, in dem alle Benutzer Nachrichten nachschlagen, lesen und einfügen können. Es ist beabsichtigt, dass Benutzer Nachrichten, die sie für Spam halten, in diesen Ordner verschieben oder kopieren.

Neuen Spam anlernen:
Optional können wir auch alle Ordner anzeigen lassen die Spam oder Junk heißen und sie anlernen:

find /var/spool/imap/ -type d -name "Spam" -o -name "Junk"
sa-learn --spam /path/to/folder/[0-9]*.


SpamAssassin lernt nicht von Nachrichten, die es bereits gelernt hat. Es ist nicht erforderlich, die Nachrichten zu bereinigen oder zu löschen, die SpamAssassin bereits kennengelernt hat, und das Bereinigen oder Löschen dieser Nachrichten trägt nur dazu bei, den Lernprozess zu beschleunigen.


Voreinstellung der Bayes-Datenbank

Da Bayes erst dann effektiv ist, wenn es etwa 200 Nachrichten gelernt hat, ist es empfehlenswert, die Bayes-Datenbank mit einigen qualitativ hochwertigen Ham- und Spam-Nachrichten vorzufüttern. Die Voreinstellung der Bayes-Datenbank mit einigen Ham- und Spam-Nachrichten wird mit dem öffentlichen SpamAssassin-Korpus durchgeführt. Der öffentliche Korpus besteht aus vielen als Ham und Spam eingestuften Nachrichten, die aus einer Vielzahl von Quellen gesammelt wurden.


Voreinstellung der Bayes-Datenbank mit dem öffentlichen SpamAssassin-Korpus

Ich habe die von SpamAssassin zur verfügung gestellten Datenbank hier auf dem Server und nun werden wir diese runterladen und unserem Spamassassin anlernen.

1. Ham und Spam Daten herunterladen

mkdir -p /tmp/
cd /tmp/
wget --recursive --timestamping --no-directories --level=1 --reject=gif,png,html,=A,=D https://painkiller-tech.com/Daten/salearn.tar.bz2


2. Das Archiv entpacken und in das Verzeichnis wechseln

for archive in `ls -1 *.tar.bz2`; do tar jxf $archive; done
cd salearn


3. Alle Dateien in den Ham Verzeichnissen anlernen

sa-learn --progress --ham *ham*/*


4. Nun das Selbe für alle Spam Verzeichnisse

sa-learn --progress --spam *spam*/*

5. Nun aktualisieren wir die Regeln und starten den Dienst neu damit die Änderungen geladen werden

sa-update
service amavisd-new restart


Auslaufende Nachrichten aus (gemeinsam genutzten) Spam-/Ham-Ordnern

Wenn wir Ordner freigeben, in die Benutzer Ham- und/oder Spam-Nachrichten verschieben oder kopieren können, ist es sinnvoll, den Inhalt dieser Ordner regelmäßig zu bereinigen, da die Ordnergröße sonst unendlich ansteigt. Führt den Ablauf nach der Ausführung von sa-learn aus.

sa-learn -p /etc/mail/spamassassin/local.conf --sync --force-expire


Natürlich können wir auch Mails aus unseren bestehenden Postfächern anlernen.

Auf meinem Server verwende ich die Maildir-Verzeichnisstruktur, zum Speichern meiner E-Mails.

In meinem Fall befinden sich die bereits gelesenen E-Mails im Posteingang im Pfad /var/vmail/example.org/username/cur. Die in diesem Ordner liegenden E-Mails sind kein Spam. Dies kann SpamAssassin mit dem folgenden Befehl mitgeteilt werden:

sa-learn --ham /var/vmail/example.org/username/cur/ --progress
100% [=======================================================]  10.43 msgs/sec 00m01s DONE
Learned tokens from 13 message(s) (18 message(s) examined)

Spam landet in meinem Fall im Pfad /var/vmail/example.org/username/Junk/cur. Diese Mails können mit dem folgenden Kommando verarbeitet werden.

sa-learn --spam /var/vmail/example.org/username/Junk/cur

Weitere Informationen findet man auf der offiziellen Homepage von SpamAssassin.

Related posts

CWP – Roundcube auf Version 1.5.6 updaten

CWP – MariaDB auf eine neue Version updaten

Verbessern des Nachrichtenflusses mit MTA-STS

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Read More