19.
Januar
2011
Sei es der »Krankenkassentarif welcher kein optimales Preis/Leistungsverhältnis bietet« oder »Your Email have won 550.000.00 USD (Five Hundred and Fifty Thousand United States Dollars)« oder das mein »PayPal-Konto begrenzt wurde« – obwohl ich auf der eingehenden E-Mailadresse gar keins angemeldet habe...
Spam hat viele Gesichter und die meisten können von SpamAssassin erkannt werden. Jedoch werden nicht alle Spam-Mails als solche erfasst.
Auf meinem Mailserver werden eingehende Mails stets von SpamAssassin überprüft und was die Filter meiner E-Mailanbieter nicht herausgefiltert hat, wird teilweise lokal bei mir als Spam erkannt.
Der verbliebene Rest an Spam-Mails in der »Inbox« ist sehr gering. Dennoch wäre es natürlich schön, wenn auch diese in Zukunft als Spam erkannt und umgehend gefiltert werden.
Bei SpamAssassin kann dies durch den Aufruf von sa-learn
»trainiert« werden. Im Laufe der letzten Monate haben sich 241 E-Mails angesammelt, welche nicht als Spam erkannt worden sind. Diese werden einfach durch einen Konsolenaufruf bearbeitet:
root@farnsworth:~# sa-learn --spam --showdots /home/amy/Maildir/.spam
.........................................................................................
.........................................................................................
.............................................................
Learned tokens from 241 message(s) (241 message(s) examined)
Anmerken muss ich natürlich noch, dass die Option --showdots
für die Punkte sorgt. Ansonsten würde keine Fortschrittsausgabe erfolgen bis die Aktion abgeschlossen ist. Damit ich wenigstens etwas an der Konsole sehen kann eben diese Option.
Ansonsten sollte der Aufruf aufgrund seiner übersichtlichen Gestaltung eigentlich selbsterklärend sein. Ich sage sa-learn
, dass er SPAM von mir aus dem Verzeichnis /home/amy/Maildir/.spam
zum »trainieren« des Filters erhält.
Hätte ich meinen Mailserver so konfiguriert das er das Mbox-Format und nicht das Maildir-Format verwendet, müsste ich noch die Option --mbox
hinzufügen. Maildir-Verzeichnisse werden von sa-learn
erkannt beziehungsweise verarbeitet ohne das eine weitere Option dafür notwendig wäre.
Natürlich können auch »gute Mails« an SpamAssassin über sa-learn
verarbeitet beziehungsweise »trainiert« werden:
root@farnsworth:~# sa-learn --ham --showdots /home/amy/Maildir/.motor-talk/
.........................................................................................
.........................................................................................
.........................................................................................
.........................................................................................
.........................................................................................
.........................................................................................
.........................................................................................
.........................................................................................
.........................................................................................
.........................................................................................
.........................................................................................
.........................................................................................
.......................................
Learned tokens from 1107 message(s) (1107 message(s) examined)
Der Beispielaufruf ist für einen der angelegten Ordner im Maildir-Format. Sollte es vorkommen, dass Forenmitteilungen über neue Nachrichten beziehungsweise Postings in Threads (wie bei mir im Beispiel verwendet von »Motor-Talk«) als sogenannte »false-positives« erkannt werden, kann SpamAssassin über einen solchen Aufruf entsprechend trainiert werden.
Natürlich könnte man auch generell alle E-Mails mit dem Absender der entsprechenden Domain so filtern, dass sie SpamAssassin erst gar nicht durchlaufen, aber das wäre ein anderes Thema.
»Trainiert« wird übrigens ein sogenannter »Bayes-Filter« (nach dem Mathematiker Thomas Bayes benannt). Dieser erstellt salopp formuliert entsprechende Listen mit »verdächtigen Wörtern«, welche in den E-Mails dann gesucht werden.
Daher sollten nicht nur »schlechte Mails« für das Training verwendet werden, sondern auch »gute Mails« um die sogenannten »false positives«, also fälschlicherweise als Spam klassifizierte Mails zu vermeiden beziehungsweise zu vermindern.
X_FISH