RBG Rechnerbetriebsgruppe der Technischen Fakultät · Universität Bielefeld |
|
|
Spamerkennung mit SpamAssassinSpamAssassin ist ein frei verfügbarer Mailfilter. Die zentrale Installation in der Technischen Fakultät ermöglicht allen Benutzern der Systeme die Detektierung und gesonderte Behandlung von Werbemails.
Wichtig:
Zur Zeit ist es nur möglich den SpamAssassin auf den
Linux Systemen der Techfak mit sa-learn zu trainieren!
Diese Systeme sind zum Login unter compute.linux.techfak.uni-bielefeld.de erreichbar. Aktuell: Erneutes Anlernen des SpamAssassinsDer Wechsel auf eine neue Mailserver-Architektur erfordert ein erneutes Anlernen des SpamAssassins. Dazu müssen zunächst die alten Bayes-Datenbanken entfernt werden:cd ~/.spamassassin rm bayes*Zur Zeit kann der SpamAssassin nur auf den Linux-Systemen der Techfak neu angelernt werden. Das folgende Beispiel beschreibt das Anlernen der Mails im mbox-Format. Dies ist die Grundeinstellung in der TechFak, bei der alle mails in einer Datei vorgehalten werden. ssh compute.linux.techfak.uni-bielefeld.de sa-learn --ham --showdots --mbox <gute Mail> sa-learn --spam --showdots --mbox <Spam-Mail>Einige Mailclients speichern Mails im Maildir-Format. Dabei wird jede Mail als eigene Datei in einem Unterverzeichnis gespeichert. In diesem Fall ist der SpamAssassin wie folgt anzulernen: ssh compute.linux.techfak.uni-bielefeld.de sa-learn --ham --showdots --dir <Verzeichnis mit guter Mail> sa-learn --spam --showdots --dir <Verzeichnis mit Spam-Mail>Wichtig ist, daß auf jeden Fall sowohl gute Mails (--ham) als auch Spam-Mails (--spam) angelernt werden. In beiden Fällen sind mindestens 200 Mails zu empfehlen, die Spamassassin Dokumentation rät zu 1000 bis 5000 Nachrichten. Bei einer größeren Menge zu verarbeitender Mails kann der Lernvorgang mehrere Minuten benötigen. Allgemeine Hinweise zur Verwendung von SpamAssassin1.1 Was muß ich als Benutzer tun, um SpamAssassin zu nutzen?1.2 Lokale Zustellung mit procmail 1.3 Mail filtern auf dem IMAP-Server 1.4 Benutzerspezifische Anpassungsmöglichkeiten 1.6 Freischalten und Sperren von Adressen 1.7 Verwendung des Bayes-Klassifikators 1.8 Weitere Konfigurationsmöglichkeiten
1.1 Was muß ich als Benutzer tun, um SpamAssassin nutzen zu können?
Fast nichts. Durch die zentrale Installation von SpamAssassin in der Technischen Fakultät werden bereits sämtliche eingehenden Mails durch SpamAssassin überprüft und gemäß den Standardeinstellungen behandelt. Dies bedeutet, daß sich im Header jeder Mail von SpamAssassin eingefügte Headerzeilen befinden, anhand derer eine Unterscheidung zwischen Spam und Nicht-Spam möglich ist. Für den Benutzer gilt es nun festzulegen, wie mit den als Spam erkannten Mails weiter verfahren werden soll. Da auch SpamAssassin nicht perfekt ist, empfiehlt es sich, als Spam erkannte Mails gesondert abzulegen und die entsprechende Mailbox weniger oft zu lesen als alle anderen. Wir raten explizit davon ab, als Spam gekennzeichnete Mail unbesehen zu löschen! In der Technischen Fakultät existieren derzeit zwei Alternativen für die Zustellung eingehender Mail. Zum einen ist dies die als Standard vorkonfigurierte lokale Zustellung in das Homeverzeichnis des jeweiligen Benutzers mit procmail, zum anderen die Weiterleitung von Mails auf den IMAP-Server der Technischen Fakultät. Da sich die zu verwendenden Filter-Mechanismen für die beiden Fälle aufgrund der beteiligten Systemkomponenten unterscheiden, sollen beide nachfolgend vorgestellt werden. 1.2 Lokale Zustellung mit procmail
Die Zustellung von Mail in lokale Mailboxen mit procmail kann durch eine im Homeverzeichnis des Benutzers angelegte Datei $HOME/.procmailrc beeinflußt werden. Dabei ist in jedem Fall mit größter Vorsicht vorzugehen, um Mailschleifen oder Mailverlust zu vermeiden. Eine vollständige Erläuterung der für procmail zu verwendenden Syntax ginge weit über den Umfang dieses Dokumentes hinaus, daher sei für weiterführende Informationen auf die ensprechenden Manualpages (procmail(1), procmailrc(5), procmailex(5)) verwiesen. Folgender $HOME/.procmailrc-Ausschnitt ist geeignet, um als Spam erkannte Mails in eine separate Mailbox SPAM, alle anderen in die Mailbox inbox zuzustellen: Eine differenziertere Zustellung ist mit Hilfe der von SpamAssassin generierten Headerzeile "X-Spam-Level" möglich, bei der keine binäre Unterscheidung zwischen Spam und Nicht-Spam getroffen wird, sondern vielmehr eine Angabe erfolgt, mit welcher Wahrscheinlichkeit es sich bei einer Mail um Spam handelt. Je höher diese Wahrscheinlichkeit ist, desto mehr "*" fügt SpamAssassin dieser Zeile hinzu::0 * ^X-Spam-Flag: YES SPAM # Beispiel fuer anderen Mailfolder * ^TO_maillingliste@someserver.de MAILINGLISTE # alles andere wird in die Default-Mailbox zugestellt Die Verwendung des Backslashes ("\") vor jedem "*" ist notwendig, da es sich bei "*" um ein Zeichen mit für die $HOME/.procmailrc besonderer Bedeutung handelt. 1.3 Mail filtern auf dem IMAP-Server:0 * ^X-Spam-Level: \*\*\*\*\*\*\*\*\*\*\*\*\*\*\* WAHRSCHEINLICH-SPAM :0 * ^X-Spam-Level: \*\*\*\*\*\*\*\*\* EVENTUELL-SPAM # Beispiel fuer anderen Mailfolder * ^TO_maillingliste@someserver.de MAILINGLISTE # alles andere wird in die Default-Mailbox zugestellt
Um eine Mailzustellung in verschiedene Mailboxen auf dem IMAP-Server zu bewirken, bedient man sich der speziell hierfür entwickelten Sprache SIEVE. Die auszuwertenden Headerzeilen sind identisch mit denen, die auch schon im obigen procmail-Beispiel auftauchen. Da die Spamfilterung mit SpamAssassin in der Technischen Fakultät aber generell über procmail erfolgt, sind einige Besonderheiten zu beachten. Statt die Mails wie bisher durch Anlegen einer Datei $HOME/.forward an den IMAP-Server weiterzuleiten, muß dies künftig ebenfalls mit einer minimalen $HOME/.procmailrc erfolgen: "insert-username-here" sollte hierbei selbstverständlich durch die eigene Loginkennung ersetzt werden.:0 * ^From:.*MAILER-DAEMON ERRORS :0 !insert-username-here@imap :0e inbox Die eigentliche Separierung der als Spam erkannten Mails in einen gesonderten Mailfolder auf dem IMAP-Server ist mit folgendem SIEVE-Skript möglich:
Analog ist natürlich auch hier eine differenziertere Unterscheidung anhand
der Headerzeile "X-Spam-Level" möglich:
1.4 Benutzerspezifische Anpassungsmöglichkeiten
SpamAssassin bietet jedem Benutzer die Möglichkeit, einen Großteil der Einstellungen spezifisch anzupassen. Alle diese Änderungen sind in der Datei $HOME/.spamassassin/user_prefs vorzunehmen - diese wird bei der ersten Verwendung von SpamAssassin automatisch erzeugt, kann aber auch von Hand angelegt werden. Mögliche Änderungen beinhalten ein Verändern der Gewichtungen der von SpamAssassin verwendeten Regelsätze, das explizite Freischalten oder Sperren bestimmter Emailadressen oder auch die zusätzliche Verwendung eines Bayes-Klassifikators zur Spamerkennung. 1.5 Anpassen der Scores
SpamAssassin fügt in den Header jeder Mail eine Zeile ein, an der abgelesen werden kann, aufgrund welcher Regeln eine Mail als Spam oder Nicht-Spam klassifiziert wurde. Sollte ein Benutzer feststellen, daß viele seiner Mails falsch klassifiziert wurden, so hat er die Möglichkeit, durch eine Veränderung der regelspezifischen einzelnen Scores die Klassifikation künftiger Mails zu beeinflussen, um den Wirkungsgrad von SpamAssassin zu vergrößern. Durch Hinzufügen eines Eintrags der Form wird für den Regelsatz "MICROSOFT_EXECUTABLE" ein Score von 4.0 erzwungen, der dem Gesamtscore hinzuaddiert wird, sofern die Regel auf die zu bewertende Mail zutrifft. Obiges Beispiel erhöht den Score für - unter den vorhandenen Unices sowieso nicht verwendbare - Windows-Binärdateien auf 4.0, womit sich viele Wurm- und Virusmails erfassen lassen. Gleichermassen können alle anderen von SpamAssassin verwendeten Regeln individuell angepasst werden. 1.6 Freischalten und Sperren einzelner Adressenscore MICROSOFT_EXECUTABLE 4.0
Hin und wieder kann es vorkommen, daß selbst erwünschte Mails einzelner Absender als Spam erkannt werden, oder daß Spam als "normaler Mailverkehr" erkannt wird. Für diesen Fall ist es möglich, einzelne Adressen explizit freizuschalten oder zu sperren. Dieses Beispiel bewirkt, daß alle Mails von my@friend.com und Mails, in denen als Local-Part der Absenderadresse "support" verwendet wird, auf keinen Fall als Spam markiert werden. Gleichermaßen werden alle Mails von evil@spammer.org als Spam markiert. 1.7 Verwendung des Bayes-Klassifikatorswhitelist_from my@friend.com support@* blacklist_from evil@spammer.org
Durch Hinzufügen eines Eintrags wird SpamAssassin angewiesen, zusätzlich zum normalen Regelsatz einen Bayes-Klassifikator zur Beurteilung der Mails heranzuziehen. Die zu verwendende klassifizierte Stichprobe für diesen Klassifikator muss von SpamAssassin vorerst mit Hilfe des Programms sa-learn gelernt werden, weitere Hilfe hierzu bietet die Manualpage zu sa-learn. Alternativ kann SpamAssassin auch derart konfiguriert werden, daß alle eingehenden Mails automatisch als Spam und Nicht-Spam gelernt werden, hierzu sind folgende Einträge vorzunehmen und gegebenenfalls anzupassen:use_bayes 1 Eine Kombination der beiden Varianten, also selbständiges Lernen und zusätzliches Trainieren mit bereits vorhandenen Mails, ist ebenfalls möglich. Die für den Bayes-Klassifikator verwendete Datenbasis wird für jeden Benutzer im Verzeichnis $HOME/.spamassassin vorgehalten und ist am Präfix "bayes" erkennbar. 1.8 Weitere Konfigurationsmöglichkeitenbayes_auto_learn 1 bayes_auto_learn_threshold_nonspam 0.1 bayes_auto_learn_threshold_spam 12.0
SpamAssassin bietet noch eine Reihe weiterer Anpassungmöglichkeiten, auf die hier aber nicht näher eingegangen werden soll. Eine vollständige Liste aller parametrisierbaren Optionen findet sich in der offiziellen Dokumentation oder in der Manualseite. |
| © 2011-2012 Universität Bielefeld   Verantwortliche Person: Dr. C. Gnörlich   Impressum | |