Regeln von Spamassassin

Aus
Die druckbare Version wird nicht mehr unterstützt und kann Darstellungsfehler aufweisen. Bitte aktualisiere deine Browser-Lesezeichen und verwende stattdessen die Standard-Druckfunktion des Browsers.

Über Spamassassin

Spamassassin besitzt ein sehr umfangreiches Regelwerk zur Spambekämpfung. Wenn Spamassassin (sa) neuinstalliert wurde, ist dessen Datenbank noch leer und damit ist die Trefferquote ziemlich gering. Zwar lassen sich die Regeln manuell hinzufügen oder vordefinierte Regelsätze aus dem Internet herunterladen und als Files einfügen, aber eine der Stärken von sa ist es, dass er sich die Regeln selbstständig (sa-update) laden kann.

Automatisches Update

  1. perl installiert (via ipkg)
    könnte auch mit dem Default Perl gehen (nicht getestet)
  2. spamassassin installiert (via ipkg) und konfiguriert
    Wie man spamassassin einrichtet steht im Forum (Stichworte: purzel und dovecot) oder hier im Wiki
  3. sa-update auf der Konsole z.B. $ sa-update --nogpg --channel saupdates.openprotect.com ausgeführt
    Beim ersten Aufruf von sa-update wird eine Ellenlange Fehlermeldung bezüglich fehlender Perl Module ausgespuckt. Diese sollten sich via ipkg installieren lassen. In der Fehlermeldung stehen die Module als Perl::MODULE in ipkg ist die Benamsung leider etwas anders. Aber mittels eines $ ipkg list | grep perl | grep MODULE lassen sich die ipkg Namen schnell ermitteln.
    Am Ende werden es ein zwei Module sein die fehlen, aber sa-update sollte jetzt bis zur Namensauflösung für die Update Server kommen
    Wenn diese erfolglos verläuft dann schaut den nächsten Punkt an (4). Wenn der Name aufgelöst werden konnte seid ihr durch und die Regeln sollte automatisch heruntergeladen und in sa integriert werden. Der sa-update Aufruf lässt sich auch in crontab eintragen
    z.B. sa-update --nogpg --channel saupdates.openprotect.com --channel updates.spamassassin.org>>/dev/null
  4. dns Server im LAN (z.B. dnsmasq via ipkg)
    Wie ich im Intenet gelesen habe ist es so, dass die meisten Router (via DNS Forwarding, den Namen nicht auflösen können). Bei mir war es auch so und drum installierte ich noch dnsmasq auf einer 2. Diskstation. Die IP Adresse des dnsmasq Daemons muss auch noch in die IP Konfig der DS rein (entweder fix eingetragen oder via dhcp im LAN als primären DNS Server ausliefern lassen). Danach sollte die Namensauflösung der Update Server dann korrekt laufen.

Manuelles Training

sa hat auch sehr mächtige statistische Wortfilter, nur müssen diese trainiert werden um effektiv zu sein. Ich habe schon von bis zu 5000 Spam und Ham Meldungen gelesen, die nötig sein sollen, um die statistischen Filter auszureizen. Man kann dabei mittels
sa-learn --spam|ham [--progress] /path/to/spam|ham
das Training auf Verzeichnisse mit Ham und solche mit Spam Meldungen loslassen. Das Format der Email-Dateien sollte .eml sein (in Thunderbird gibt es eine Erweiterung SmartSave, die Emails aus ganzen Verzeichnisstrukturen in .eml exportieren kann) und das spam resp ham Verzeichnis darf keine Unterverzeichnisse haben (Dazu gibt es zwei Optionen in SmartSave Include subfolders und Preserve subfolder structure. Erstere sollte aktiviert sein und Letztere nicht)


Man kan Spamassassin auch direkt auf Mailboxen loslassen. Da braucht man nicht den Umweg über einen Export zu machen sa-learn --progress --ham|spam /volume1/homes/USER/.Maildir/imapfolder.imapsubfolder/{cur,new} Das Maildir Format speichert die Emails im jeweiligen Verzeichnis in den folgenden zwei Unterverzeichnissen: cur (current) und new (new). Die beiden Unterverzeichnisse heissen immer gleich. Gerade wenn man sa-learn auf den Spamfolder loslässt, kann es von Vorteil sein nur den Unterordner cur zu scannen. Damit vermindert man das Risiko, dass eine neue Email im Spamfolder (z.B. weil der Emailclient glaubt es sei Spam) als Spam gelernt wird. Jahlives 14:59, 24. Feb. 2010 (UTC)


Die Kombination aus statistischen Filtern (Training) und Regelsätzen (in Files resp durch sa-update) ist sehr stark. Dabei ist es wichtig zu beachten, dass erst die Regelsätze geprüft werden und dann die statistischen Filter drankommen. In die zweite Stufe kommt eine Email nur wenn sie vorher durch die Regelsätze noch nicht als SPAM taxiert wurde. Da die Regelsätze via sa-update aber sehr genau treffen und hohe Spampunkte erzeugen, gehen die meisten Spammails gar nicht mehr durch die Wortfilter. Daher ist es wichtig beim Einsatz beider Verfahren die als Spam markierten Email immer auch in den Spamfolder als .eml zu exportieren und dann immer wieder mal den $ sa-learn --spam drüberzulassen