Vielen von Euch ist es sicher schon aufgefallen: der SPAM, die unerwünschten Werbe-Emails, nehmen täglich zu - zur Zeit (9/04) bekomme ich allein etwa 100 SPAM Mails pro Tag, dazu kommen noch die Virenwarnungen...
Das kann man alles per Hand lesen - muß man aber nicht! Ein sehr mächtiges Tool zum Filtern von Mail sind das Gespann procmail / spamassassin, damit läßt sich das SPAM-Aufkommen drastisch (bis nahezu Null) reduzieren. Im folgenden wird die Verwendung dieser Tools beschrieben, aus rechtlichen Gründen muß dies jedoch leider jeder User selber für sich einrichten oder mich explizit um die Einrichtung bitten (§206, Abs. 2, Nr. 2 StGB, Freiheitsstrafe bis zu 5 Jahre, und die tatsächliche Wertung durch die Gerichte ist noch völlig offen).
Zuallererst gilt es, eine gültige Konfigurationsdatei für den Spamassassin anzulegen. Das kann man per Hand machen (indem man in einem Editor die Datei ~/.spamassassin/user_prefs erzeugt) - muß man aber nicht. Unter anderem unter http://www.pipegrep.net/webuserprefs/demo.php und http://www.yrex.com/spam/spamconfig.php finden sich zwei Dienste, die es erlauben, über eine einfach zu bedienende Oberfläche die Datei user_prefs zu erzeugen. Wichtig sind hier vor allem:
Sobald das Verzeichnis ~/.spamassassin/ angelegt ist und die Datei ~/.spamassassin/user_prefs dort existiert geht es daran, Spamassassin zu trainieren. Je sorgfältiger dies erfolgt, umso besser funktioniert Spamassassin, und umso weniger Mail wird versehentlich als SPAM klassifiziert. Ich gehe im folgenden davon aus, daß alle Mails in einzelnen Dateien im sogenannten mbox-Format im Verzeichnis ~/Mail/ liegen. Eventuell gesammelte SPAM-Mails (die man jetzt sehr gut zum trainieren verwenden kann) liegen gegebenenfalls in einer Datei ~/Mail/spam. Dies ist z.B. das typische Setup, wenn Standard Unix-Programme wie elm, pine oder mutt als Mailer verwendet werden. Man kann dann wie folgt trainieren:
# SpamAssassin ist ein Perl-Programm
kogs1>/home/utcke%
module add perl
# wechsle ins Home-Verzeichnis
kogs1>/home/utcke%
cd
# Lege das Verzeichnis an...
kogs1>/home/utcke%
mkdir ~/.spamassassin
# ...und erzeuge die Datei user_prefs
kogs1>/home/utcke%
cp ~utcke/.spamassassin/user_prefs ~/.spamassassin/user_prefs
# trainiere erwünschte Mails (HAM)
kogs1>/home/utcke%
foreach file (`ls ~/Mail/* | grep -v spam`)
foreach?
sa-learn --showdots --ham --mbox $file
foreach?
end
# trainiere unerwünschte Mails (SPAM)
kogs1>/home/utcke%
foreach file (~/Mail/*spam*)
foreach?
sa-learn --showdots --spam --mbox $file
foreach?
end
Wer Mozilla als Mailer verwendet, findet seine Mails entsprechend statt in ~/Mail in .mozilla/$USER/*/Mail/, Netscape-User finden ihre Mails in ~/nsmail. Wer nicht weiß, wo sein Mailer die Mails ablegt (oder in welchem Format) kann mir gerne mailen, wir gehen dann gemeinsam auf Entdeckungsreise...
Bei Razor handelt es sich um einen sogenannten Network Checksum Tests, d.h. hier wird eine (fuzzy) Prüfsumme der empfangenen Mail mit einer Datenbasis von Mails verglichen, von denen bekannt ist, das es sich um Spam handelt - zur Zeit eine sehr zuverlässige Methode, Spam zu erkennen. Um Razor verwenden zu können, muß man es jedoch erst einmal initialisieren:
# Razor ist ein Perl-Programm
kogs1>/home/utcke%
module add perl
# create a default config file ~/.razor
kogs1>/home/utcke%
razor-admin -create
# Razor basiert auf einem Netzt des Vertrauens
# deshalb sollte man sich dort registrieren
kogs1>/home/utcke%
razor-admin -register -user=$USER@kogs.informatik.uni-hamburg.de
Die Registrierung ist notwendig, da Razor auf einem Netzwerk des Vertrauens aufbaut - um sich aber Vertrauen erwerben zu können, ist eben auch eine eindeutige Identifikation nötig.
Bei procmail handelt es sich um das Programm, welches die Mail letztendlich zustellt. Per default landet die Mail in /var/mail/$USER, man kann jedoch die Zustellung durch diverse Regeln beeinflussen. Alle diese Regeln werden in der Datei ~/.procmailrc gesammelt. Ein nahezu minimales ~/.procmailrc könnte wie folgt aussehen: