Inhalt

Ankündigungen
Neuigkeiten
RBG
Dienstleistungen
GZI
Rechnernutzung
·Allgemeines zum Einstieg
·Unix und die Arbeitsumgebung
·E-Mail
-Meine E-Mail-Adresse
-Verschlüsselung mit GnuPG
-E-Mail weiterleiten
-IMAP verwendern
-Spam filtern
-Mailversand mit SMTP Auth
MitarbeiterInnen
Nützliche Links


Spamerkennung mit SpamAssassin

SpamAssassin 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 SpamAssassins

Der 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 SpamAssassin

1.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.5 Anpassen der Scores

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:

:0
* ^X-Spam-Flag: YES
SPAM

# Beispiel fuer anderen Mailfolder
* ^TO_maillingliste@someserver.de
MAILINGLISTE

# alles andere wird in die Default-Mailbox zugestellt

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-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
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

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:

:0
* ^From:.*MAILER-DAEMON
ERRORS

:0
!insert-username-here@imap

:0e
inbox
"insert-username-here" sollte hierbei selbstverständlich durch die eigene Loginkennung ersetzt werden.

Die eigentliche Separierung der als Spam erkannten Mails in einen gesonderten Mailfolder auf dem IMAP-Server ist mit folgendem SIEVE-Skript möglich:

require "fileinto";

if header :contains ["X-Spam-Flag"] "YES" {
       fileinto "SPAM";
       stop;
}

else {
        fileinto "INBOX";
        stop;
}

Analog ist natürlich auch hier eine differenziertere Unterscheidung anhand der Headerzeile "X-Spam-Level" möglich:
require "fileinto";

if header :matches ["X-Spam-Level"] "\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*" {
	fileinto "WAHRSCHEINLICH-SPAM";
	stop;
}

elsif header :matches ["X-Spam-Level"] "\*\*\*\*\*\*\*\*\*" {
	fileinto "EVENTUELL-SPAM";
	stop;
}

else {
	fileinto "INBOX";
	stop;
}

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

	score MICROSOFT_EXECUTABLE 4.0
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 Adressen

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.

	whitelist_from my@friend.com support@*
	blacklist_from evil@spammer.org 
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-Klassifikators

Durch Hinzufügen eines Eintrags

	use_bayes	1
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:
	bayes_auto_learn			1
	bayes_auto_learn_threshold_nonspam	0.1
	bayes_auto_learn_threshold_spam		12.0
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öglichkeiten

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