claim.gif
Linux Magazin Linux User Easy Linux Ubuntu User International Linux Community
Erschienen in EasyLinux 04/2004   »   Ausgabe bestellen

Mit Mailfilter gegen Spam vorgehen

Kampf der Werbeflut

von Andreas Bauer und Andrea Müller


Leiden Sie unter Spam und Viren? Sehen Sie nicht länger tatenlos zu, tun Sie was dagegen. Mailfilter schaltet den Spam ab, schnell und verträglich.

Das Medium E-Mail wird zunehmend zur Belastungsprobe für seine Benutzer. Laut einer Studie der britischen MessageLabs sind etwa die Hälfte aller weltweit versandten Nachrichten Spam. Im Haufen von Viren und unerwünschter Werbepost gehen die eigentlichen Nachrichten häufig völlig unter.

Doch es gibt Mittel und Wege, dem Problem entgegenzutreten. Mailfilter [1] trennt die guten von den schlechten Nachrichten -- und zwar noch bevor diese Ihren Rechner zu Hause überhaupt erreichen.

Das Konzept ist denkbar einfach und effektiv zugleich: Das Programm verbindet sich autonom über das POP-Protokoll (Kasten 1) mit Ihrem Mail-Server und durchforstet dort den Inhalt auf Basis benutzerdefinierter Filter. Wenn es unerwünschte Werbepost entdeckt, wird diese gelöscht, und es bleiben nur die Nachrichten zurück, die wirklich interessieren.

Die Installation des praktischen Helfers erledigen Sie mit wenigen Mausklicks.

Mailfilter einspielen

SuSE-Linux-Anwender finden Mailfilter auf der EasyLinux-Download-Seite [2]. Laden Sie die passende RPM-Datei herunter und klicken Sie sie danach im Konqueror an. In der Vorschauansicht starten Sie die Installation über den Button Installiere Paket mit YaST. Die Software-Verwaltung fragt das root-Passwort ab, spielt Mailfilter ein und beendet sich.

Wer Red Hat Linux verwendet, besorgt sich Mailfilter ebenfalls aus unserem Download-Bereich [2]. Ein Doppelklick auf die heruntergeladene Datei startet redhat-install-packages, das zuerst das root-Passwort abfragt. Danach überprüft es, ob alle Abhängigkeiten erfüllt sind, und installiert das Programm.

Für Mandrake Linux finden Sie ein Paket unter [3]. Eventuell wurde das Programm inzwischen neu paketiert, so dass die hier angegebene Versionsnummer nicht mehr stimmt. Lassen Sie in diesem Fall einfach den Dateinamen weg und geben als Adresse nur den Ordner ein. Suchen Sie dort die aktuelle Mailfilter-RPM-Datei.

Doppelklicken Sie das Paket im Konqueror. Nach Eingabe Ihres Administrator-Passworts startet rpmdrake und spielt die Software ein.

Kasten 1: POP -- das Post Office Protocol

Mailfilter ist derzeit nur auf die Unterstützung von POP-Konten ausgelegt. POP steht für "Post Office Protocol" und ist Bestandteil typischer Mail-Clients wie KMail oder Evolution. Sie haben als Anwender die Wahl zwischen POP3 und APOP, wobei das letztere lediglich eine Erweiterung von POP3 ist, mit der Sie das Passwort verschlüsselt übertragen können. Leider bieten derzeit die wenigsten Internet-Provider dieses zusätzliche Sicherheits-Feature Wenn Sie also Mailfilter konfigurieren, sollten Sie zunächst POP3 wählen, um zu sehen, ob alles funktioniert.

Einrichtung

Die Konfiguration von Mailfilter mag auf den ersten Blick etwas spartanisch erscheinen, ist aber eigentlich recht intuitiv. Sie müssen dem Programm neben Angaben zu Ihren Mail-Konten lediglich die Schlagworte eingängiger Spam-Nachrichten beibringen.

Zur Konfiguration verwenden Sie die Textdatei .mailfilterrc in Ihrem Home-Verzeichnis. Der Punkt am Anfang des Dateinamens ist kein Druckfehler, sondern essenziell, damit Mailfilter Ihre Einstellungen auch findet. Damit Sie nicht die ganze Datei selbst schreiben müssen, liegt in unserem Download-Bereich eine vom Programmautor ausführlich kommentierte Beispielkonfiguration, die Sie nur um wenige Angaben ergänzen müssen.

  1. Laden Sie die .mailfilterrc herunter und speichern Sie sie in Ihrem Home-Verzeichnis.
  1. Öffnen Sie die Datei mit Kwrite oder Gedit, um die nötigen Anpassungen vorzunehmen. Alle mit einer Raute (#) beginnenden Zeilen sind Kommentare, die Mailfilter ignoriert: Sie enthalten Hinweise zu den einzelnen Optionen und Regeln.
  1. Im ersten Abschnitt bringen Sie Mailfilter bei, um welche Konten er sich kümmern soll. Ein Grundgerüst für zwei Mail-Konten ist in der Beispieldatei schon vorbereitet.
    SERVER   = Name.Ihres.POP-Servers
    USER     = Ihr.User.Name
    PASS     = Ihr.Passwort
    PROTOCOL = POP3
    PORT     = 110
    Die Felder rechts von den Gleichheitszeichen ersetzen Sie durch Ihre persönlichen Angaben, also durch den Server, bei dem Sie Post abholen, den Benutzernamen beim Mail-Provider und das zugehörige Passwort. POP3 und Port 110 können Sie fast immer unverändert übernehmen.
  1. Als zweites müssen Sie noch eine Log-Datei angeben, also die Datei, in die Mailfilter Status- und Fehlermeldungen protokolliert:
    LOGFILE = /home/<I>User-Name<I>/mailfilter.log
    In diesem Beispiel ersetzen Sie User-Name durch den Namen, mit dem Sie sich unter Linux anmelden.
  1. Die Zeile Test=yes hat eine besondere Bedeutung: Damit arbeitet Mailfilter im Simulationsmodus. Das Programm löscht dann keine Mails, sondern vermerkt in der Log-Datei nur, welche Mails es anhand des aktuellen Regelwerks gelöscht hätte. Mit dieser Option verlieren Sie nicht versehentlich Nachrichten, weil der eine oder andere Filter noch nicht so arbeitet wie ursprünglich erhofft. Belassen Sie das unbedingt vorerst bei der Voreinstellung. Jeder Anwender erhält andere Mails, und Sie sollten nie eine Mailfilter-Regel übernehmen, ohne vorher im Testmodus sichergestellt zu haben, dass sie keine erwünschten Nachrichten löscht. Funktionieren alle Regeln zu Ihrer Zufriedenheit, setzen Sie eine Raute vor die Zeile, um Mailfilter "scharf zu schalten".
  1. REG_CASE = no und REG_TYPE = extended übernehmen Sie ebenfalls. Damit unterscheidet Mailfilter nicht zwischen Groß- und Kleinschreibung und verwendet erweiterte reguläre Ausdrücke für die Filter.

Nun folgen die Regeln, nach denen die Mailfilter die Nachrichten überprüft. Sie werden auf Basis von regulären Ausdrücken (Kasten 2) festgelegt und haben die Form:

DENY  = Ausdruck
ALLOW = Ausdruck

DENY dient zum Löschen, Ausdrücke hinter dem ALLOW-Schlüsselwort hingegen markieren die wichtigen Mails. Dazu ein kurzes Beispiel:

DENY  = ^From:.*hotmail.com
ALLOW = ^From:.*erwin.huber@hotmail.com

Mit diesen Regeln löscht Mailfilter alle Nachrichten, die von Hotmail kommen, bis auf die Ihres Bekannten Erwin Huber. Das wirkt auch gut gegen den Virus Swen (siehe auch [5]), der in großer Zahl von nur wenigen Absenderadressen kommt, die Sie so effizient blocken. Man nennt den Ansatz auch Black- und White-Listing, da man mit DENY schwarze Schafe bestimmt und durch ALLOW die Ausnahmen angeben kann.

Damit Ihnen keine Mails von guten Bekannten entgehen, finden Sie einen dreizeiligen ALLOW-Abschnitt vor allen anderen Regeln. Entfernen Sie die Kommentarzeichen vor den Zeilen und tragen Sie anstelle der Beispieladressen (*freund@provider\.de) die Mail-Anschriften wichtiger Kontakte ein. Für die Adresse redaktion@easylinux.de sähe die passende Zeile so aus:

ALLOW = ^From:.*redaktion@easylinux\.de

Der Punkt in easylinux.de wird mit dem \ maskiert, da er in regulären Ausdrücken eine besondere Bedeutung hat: Er steht für ein beliebiges Zeichen.

Wollen Sie Mails von allen Absendern einer bestimmten Domain, etwa von meinefirma.de, freischalten, geht das mit

ALLOW = ^From:.*@meinefirma\.de

Sie können beliebig viele weitere ALLOW- und DENY-Zeilen in die Datei .mailfilterrc eintragen.

Kasten 2: Schlagworte als reguläre Ausdrücke

Mailfilter benutzt reguläre Ausdrücke [2], um Filterregeln zu definieren. Diese kommen aus der Welt der formalen Sprachen und bieten dem Benutzer ein hohes Maß an Flexibilität zur Kategorisierung von Zeichenketten. Der Ausdruck

^Subject:.*Viagra

erfasst Nachrichten, in deren Betreffzeile irgendwo das Wort Viagra auftaucht, z. B. Subject: Viagra! oder Subject: Buy Viagra now!. Dabei legt der einleitende Zirkumflex (das Dachsymbol "^") fest, dass Subject am Zeilenanfang stehen muss. ".*" steht für eine beliebig lange Zeichenkette, auch für die leere.

Statt Subject können Sie auch From (Von), CC (Kopie) sowie andere Schlüsselworte eines Mail-Headers angeben. Nur im Text einer Nachricht kann Mailfilter nicht suchen -- das wäre nur möglich, wenn die Nachricht sich bereits auf Ihrem Computer befände.

Zusätzliche Informationen zu regulären Ausdrücken finden Sie unter [4,5,6,7]. Dort sind unter anderem komplette Mailfilter-Regeln aufgelistet, die Ihnen den Einstieg erleichtern. Die Mailfilter-FAQ mit den am häufigsten gestellten Fragen finden Sie nach der Installation des Tools auch auf Ihrer Festplatte. Bei Red Hat und Mandrake Linux liegt sie im Verzeichnis /usr/share/doc/mailfilter-0.6, SuSE-Linux-Anwender werden unter /usr/share/doc/packages/mailfilter fündig. Auch die Man-Pages zu mailfilter, mailfilterrc und mailfilterex helfen bei der Benutzung des Programms.

Eine sehr ausführliche .mailfilterrc-Datei mit wirksamen Regeln finden Sie unter [8]. Besonders empfehlenswert sind die mit DENY=^Received: beginnenden Zeilen: Dort steht, über welche Mail-Server die Nachricht gelaufen ist, und die DENY-Regeln in dieser Datei enthalten Rechner, die als Spam-Versender bekannt sind. Auch diese Regeln sollten Sie jedoch erst im Testbetrieb überprüfen.

Danach folgen die Löschregeln, die E-Mails nach bestimmten Spam-Merkmalen löschen. So entsorgt die Beispielkonfiguration z. B. alle Nachrichten, in deren Betreff Viagra oder die abgewandelte Schreibweise V1agra oder V.I.A.G.R.A auftaucht.

Einige potenziell gefährliche Regeln sind mit einer Raute auskommentiert, darunter eine Regel, die Mails mit leerer Betreffzeile entfernt. Oft ein Zeichen von Spam, sieht man das hin und wieder auch bei Mails Computer-unerfahrener Nutzer, die vorschnell auf Senden geklickt haben.

Sie schalten diese Regeln frei, indem Sie das vorangestellte Kommentarzeichen entfernen. Finden Sie im Testmodus Regeln, die Sie nicht nutzen wollen, deaktivieren Sie sie durch eine Raute (#) am Anfang der Zeile.

Weitere Features

Damit ist bei Mailfilter noch lange nicht Schluss. Das Programm bietet Ihnen auch die Möglichkeit, nach Größe zu filtern. Das ist praktisch, wenn man ständig längere Anhänge erhält:

MAXSIZE_DENY  = 2000000
MAXSIZE_ALLOW = 5000000

Die erste Zeile legt fest, dass keine Nachricht größer als 2 MByte sein darf, es sei denn, sie kommt von einem Sender, der durch eine ALLOW-Regel bestimmt werden kann. In so einem Fall wären 5 MByte die Obergrenze.

Diese Regel sollten Sie nur dann benutzen, wenn Sie einen genauen Überblick über die Nachrichten haben, die Sie bekommen. Nutzen Sie eine Adresse beruflich, ist die Gefahr zu groß, dass die Regel unbeabsichtigt E-Mails von potenziellen Kunden oder Geschäftspartnern löscht -- aus diesem Grund finden Sie sie auch nicht in der Beispielkonfiguration.

Mailfilter in Aktion

Haben Sie die .mailfilterrc-Datei wie oben geschrieben angepasst, steht dem Testbetrieb nichts mehr im Weg. Wie Sie dabei vorgehen, hängt davon ab, welches E-Mail-Programm Sie verwenden. Mailfilter ist ein eigenständiges Programm, das nicht für einen bestimmten Mail-Client entwickelt wurde. In einigen Mail-Programmen wie KMail lassen sich externe Helfer über die Einstellungen integrieren. Vor jedem Mail-Abruf startet der KDE-Mailer dann erst Mailfilter. Zur Einrichtung sind nur wenige Schritte nötig:

Integration in KMail

Öffnen Sie über Einstellungen / KMail einrichten den Konfigurationsdialog und wechseln Sie zum Punkt Netzwerk. Markieren Sie im Register Empfang das erste eingerichtete Konto. Über Ändern öffnet sich der Account-Dialog. Tragen Sie dort hinter Vorverarbeitungs-Befehl mailfilter ein (Abbildung 1).

Abb. 1: Im Konten-Dialog integrieren Sie den Werbewächter in KMail.

Für die anderen Konten ist das nicht nötig: Einmal gestartet, fragt Mailfilter nacheinander alle Posteingangs-Server ab, die in seiner Konfigurationsdatei stehen. Ob alles funktioniert, sehen Sie beim nächsten Mail-Abruf in der Statusleiste von KMail (Abbildung 2).

Abb. 2: In der Statusleiste zeigt KMail den Mailfilter-Aufruf an.

Mailfilter manuell starten

Bei Mail-Programmen die einen solchen Vorverarbeitungsbefehl nicht bieten, rufen Sie Mailfilter einfach von Hand auf. Öffnen Sie dazu eine KDE-Konsole und geben mailfilter ein. Die vorbeihuschenden Ausgaben des Programms müssen Sie nicht studieren, denn all das landet auch in der Log-Datei, wo Sie es später in Ruhe lesen. Sobald Sie selbst wieder Befehle eingeben können, hat Mailfilter seine Arbeit beendet. Nun holen Sie die restliche Post mit Ihrem Mail-Programm ab.

Regeln anhand der Log-Datei überprüfen

Sowohl im Test- als auch im Löschmodus führt Mailfilter Protokoll über die Nachrichten, auf die einer der Filter zutrifft. Sie kontrollieren seine Arbeit, indem Sie die Datei mailfilter.log in Ihrem Home-Verzeichnis öffnen. Die Zeilen in der Datei sind sehr lang (Abbildung 3), doch das muss Sie nicht schrecken: Der Aufbau ist immer gleich und daher recht einfach zu lesen.

Abb. 3: Die Log-Datei listet alle gelöschten Mails und die verantwortlichen Regeln auf.

Zu Beginn jeder Abfrage trägt Mailfilter den Server und das Datum ins Log ein. Danach folgt die Zahl der wartenden Mails, in Abbildung 2 sind das 30 Stück. Jede der mit Deleted beginnenden Zeilen bezieht sich auf eine gelöschte Nachricht und besteht aus den Feldern Absender, Betreff, Datum und der verantwortlichen Filterregel in eckigen Klammern.

Entdecken Sie im Testbetrieb, dass Mailfilter eine erwünschte Mail gelöscht hätte, suchen Sie die Regel in der .mailfilterrc-Datei und enfernen sie oder passen sie so an, dass sie keine normalen Mails erwischt.

Auch im Normalbetrieb sollten Sie die Log-Datei regelmäßig kontrollieren. Löscht das Programm tatsächlich einmal eine Mail, die Sie erhalten wollten, können Sie den Absender per Mail kontaktieren und bitten, die Nachricht nochmal zu verschicken.

Was für wen?

Mailfilter kann rasch die Werbeflut eindämmen, und schon nach wenigen Tagen können Sie einen Satz Regeln zusammenstellen, der fast keine unerwünschte Post mehr durchlässt. Das spart Zeit, da der Müll vor dem Mail-Check entsorgt wird, und zudem Nerven, weil Sie nicht jede Nachricht selbst anschauen müssen um herauszufinden, ob sie relevante Informationen enthält.

Ideal ist das Programm für Anwender, die einen Überblick über die zu erwartenden Mails haben. Wer noch nie im Leben eine erwünschte Mail mit den Begriffen Xanax, Viagra oder Patch im Betreff erhalten hat, kann solche Nachrichten guten Gewissens entsorgen. Für Mail-Konten, bei denen Sie nicht absehen können, wer Ihnen welche Mails schickt, wie bei beruflich genutzten Adressen, ist Kshowmail (siehe Artikel ab Seite ##) die bessere Lösung. (eba)

Infos
[1] Mailfilter Homepage: http://mailfilter.sourceforge.net/
[2] Pakete für Red Hat und SuSE Linux: http://www.easylinux.de/Download/
[3] Paket für Mandrake: ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/Mandrake-devel/contrib/i586/mailfilter-0.6-1mdk.i586.rpm
[4] Regulärer Ausdruck -- Wikipedia: http://de.wikipedia.org/wiki/Regul%E4rer_Ausdruck
[5] Pro-Linux: http://www.pl-forum.de/berichte/appfokus/mailfilter/mailfilter.html
[6] Mailfilter FAQ: http://mailfilter.sourceforge.net/faq.html
[7] Swen und Mailfilter: http://hullen.de/helmut/Rechnerraum/virspam/mailfilter.html
[8] Beispiel-Konfiguration mit deutschen Kommentaren: http://www.tuxpost.de/mailtools/mailfilterrc

Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.

Druckerfreundliche Version | Feedback zu dieser Seite | Datenschutz | © 2017 COMPUTEC MEDIA GmbH | Last modified: 2007-01-25 17:08

Nutzungsbasierte Onlinewerbung

[Linux-Magazin] [LinuxUser] [Linux-Community] [Admin-Magazin] [Ubuntu User] [Smart Developer] [Linux Events] [Linux Magazine] [Ubuntu User] [Admin Magazine] [Smart Developer] [Linux Magazine Poland] [Linux Community Poland] [Linux Magazine Brasil] [Linux Magazine Spain] [Linux Technical Review]