Weg mit dem Dreck
Spam-Mails filtern mit CRM114 und KMail
Mailfilter einrichten
Das Mailfilterprogramm von CRM114 greift auf eine Konfigurationsdatei, mehrere Listen wie eine Blacklist und eine Whitelist sowie jeweils eine standardmäßig 12 MByte große Hash-Datei für Spam und Ham.
Erstellen Sie in Ihrem Home-Verzeichnis mit mkdir ~/.crm114 ein Verzeichnis für die CRM114-Dateien und wechseln Sie mit cd ~/.crm114 dorthin. Kopieren Sie unter Debian und Ubuntu mit cp -a /usr/share/crm114/*.crm . die kompletten Programmdateien – minimal jedoch mailreaver.crm, maillib.crm, mailtrainer.crm, rewriteutil.crm – in das neue Verzeichnis. Bei der Upstream-Version verwenden Sie die Dateien aus dem Binär- oder Quelltext-Archiv. Das aktuelle Filterprogramm für CRM114 heisst mailreaver.crm. Das ältere mailfilter.crm sollten Sie nicht mehr verwenden.
Kopieren Sie zusätzlich die Konfigurationsdatei für den Mailfilter, die Datei mailfilter.cf, in Ihr CRM114-Verzeichnis und passen Sie sie mit Hilfe eines Texteditors an. Für die Integration in KMail benötigen Sie keinen Fernzugriff auf CRM114. Lassen Sie also trotz aller Warnungen die Zeile :spw: /DEFAULT_PASSWORD/ unverändert.
Wählen Sie bei einen geeigneten Decoder für Mime-kodierte Mailanhänge, indem Sie das Kommentarzeichen vor der entsprechenden :mime_decoder:-Zeile entfernen und vor allen anderen :mime_decoder:-Zeilen gegebenenfalls setzen. Prüfen Sie mit dem Befehl which /usr/bin/mimencode welcher Mime-Encoder auf Ihrem System installiert ist. Ersetzen Sie dabei /usr/bin/mimencode durch den jeweiligen Encoder.
Der Decoder openssl aus dem OpenSSL-Paket findet sich in der Regel bei einem üblichen Desktop-System. Von mimencode gibt es zwei Varianten: Die aus dem Paket metamail benötigt zum Dekodieren die Option -u im Aufruf. Im Zweifelsfall hilft ein Blick in die Manpage und das Ausprobieren auf der Befehlszeile.
Das Mailfilterprogramm fügt als Spam, Ham oder Unsicher eingestuften Mails nach Wunsch einen Prefix in der Betreff-Zeile im Header der E-Mail hinzu. KMail benötigt diese Information nicht, da das Mailfilter-Programm sie zusätzlich an anderer Stelle in den Header schreibt. Aktivieren Sie :spam_flag_subject_string: //, :unsure_flag_subject_string: // und ggf. :good_flag_subject_string: //, wenn Sie unveränderte Betreff-Zeilen vorziehen.
Standardmäßig protokolliert das Mailfilterprogramm alle bearbeiteten Mails in der Datei allmail.txt. Funktioniert der Mailfilter bei Ihnen wie gewünscht, sparen Sie mit :log_to_allmail.txt: /no/ den dafür benötigten Speicherplatz ein.
Die Konfigurationsdatei aus dem CRM114-Paket von Debian vor der Version 20060704a-3 hat einen Fehler[11]. Der Pfad zu mailtrainer.crm stimmt nicht. Stellen Sie folgende Schreibweise sicher: :trainer_invoke_command: /.\/mailtrainer.crm/.
Mit cssutil -rb spam.css und cssutil -rb nonspam.css erstellen Sie die Hash-Dateien für die Erkennungsmerkmale für Spam- und Ham-Mails. Der Befehl erstellt die angegebene CSS-Datei, falls noch nicht vorhanden, und gibt dann eine kleine Statistik aus.
Das Mailfilterprogramm greift auf zwei Listen-Dateien zurück, um eine kombinierte Black- beziehungsweise Whitelist zu realisieren oder zum Beispiel Mail-Adressen umzuschreiben. Für den Start genügt es, mit touch rewrites.mfp priolist.mfp leere Dateien anzulegen (siehe Kasten "Rewrite-Regeln und White-/Blacklists").
Vor der Integration in KMail testen Sie in der Shell, ob ihre Mailfilter-Installation funktioniert. Rufen Sie mit crm mailreaver.crm das CRM-Programm auf, tippen Sie irgendeinen Text und drücken Sie die Eingabetaste gefolgt von [Strg]+[D]. Das CRM-Programm sollte nun einige mit X-CRM114 beginnende Header-Zeilen anzeigen.
Antispam-Assistent
KMail bietet einen Antispam-Assistenten, der erkennt, welche Spamfilter Sie installiert haben und geeignete Filterregeln erstellt. Im Test kamen unter Debian Etch KMail aus KDE 3.5.5 und unter Suse 10.1 KMail aus KDE 3.5.1 zum Einsatz.
Der Antispam-Assistent von KMail aus KDE 3.5.5 kennt CRM114 noch nicht. Ab KDE-Version 3.5.6, die für Januar geplant ist, sollte KMail CRM114 erkennen [12]. Älteren Versionen von KMail bringen Sie CRM114 bei, indem Sie der Konfigurationsdatei kmail.antispamrc für CRM114 einen Eintrag hinzufügen (siehe Listing 2).
Sie finden diese Datei bei Debian und Ubuntu im Verzeichnis /etc/kde3 und unter Suse im Verzeichnis /opt/kde3/share/config. Alternativ kopieren Sie die Datei nach ~/.kde/share/config und bearbeiten Sie dort. Öffnen Sie diese Datei gegebenenfalls mit Root-Rechten in einem Texteditor und erhöhen Sie zunächst unter [General] bei tools= die Anzahl der Spamfilter um eins. Fügen Sie anschließend den Eintrag am Ende der Datei an und passen dabei in der ersten Zeile des Eintrags Spamtool #11 die Nummer des Eintrags an. Alternativ kopieren Sie einfach die entsprechende Datei von der LinuxUser-Webseite.
Legen Sie für Spam-Mails und für als unsicher eingestufte Mails je einen Ordner an. Klicken Sie dazu in der Ordnerliste zum Beispiel beim Ordner Mülleimer auf die rechte Mausstaste und wählen Sie Neuer Unterordner .... Ordner eines Online IMAP-Kontos bietet der Antispam-Assistent nicht zur Auswahl an, verwenden Sie in diesem Fall die ohnehin schnelleren lokalen Ordner.
Es empfiehlt sich, Spam-Mails nicht gleich in den Mülleimer zu verschieben, sondern zunächst in einen eigenen Ordner, da KMail alle Mails aus dem Mülleimer beim Beenden löscht. So haben Sie jederzeit Gelegenheit nachzuschauen, ob der Filter eine Mail fälschlicherweise als Spam eingestuft hat.
Erstellen Sie mit dem Antispam-Assistenten unter Extras | Anti-Spam Assistent ... in zwei Schritten die passenden Filterregeln. Wählen Sie dazu als Spamfilter CRM114 aus (siehe Abbildung 2). Im zweiten Schritt wählen Sie die Ordner für Spam-Mails und als unsicher eingestufte Mails.
Nun ist KMail bereit, CRM114 als Spamfilter zu nutzen. Die fünf neuen Filterregeln sollten am Anfang der Liste der Filterregeln stehen, damit Sie immer zuerst zum Einsatz kommen. Wählen Sie Einstellungen | Filter einrichten... und verschieben Sie die Spamfilter-Regeln gemäß Ihrer Reihenfolge mit den Pfeilsymbolen nach oben (siehe Abbildung 3).
In der Werkzeugleiste gibt es zwei neue Symbole. Mit dem grünen Haken markieren Sie erwünschte Mails und mit dem Symbol, das an die gelben Tüten mit dem grünen Punkt erinnert, markieren Sie unerwünschte Mails. Als Ham eingestufte Mails filtert KMail nach Ihren übrigen Filterregeln oder belässt Sie im Posteingang. Als Spam und als unsicher eingestufte Mails verschiebt KMail sofort in die entsprechenden Ordner.
Trainieren Sie nicht wie wild irgendwelche Mails. CRM114 verhält sich besonders am Anfang wie ein aufmerksames kleines Kind, das sehr schnell lernt. Dabei interessiert sich CRM114 jedoch nur für falsch als Spam oder Ham eingestufte Mails und für Mails, bei denen sich das Programm unsicher ist.
Trainieren Sie CRM114 oft, am besten jede Stunde oder laden die neuen Mails immer nur häppchenweise, indem die Übertragung zwischendrin abbrechen. Je öfter Sie trainieren, desto weniger Mails müssen Sie markieren, da CRM sie bereits kennt. Und CRM arbeitet so effektiver! Bereits nach den ersten Stunden filterte CRM im Test einen Großteil der Spam-Mails aus (siehe Abbildung 4).
Achten Sie besonders in der Anfangszeit jedoch noch regelmäßig auf fälscherlicherweise als Spam eingestufte Mails und markieren Sie diese als gewünscht. Auch hier lernt CRM114 mit einer angenehmen Geschwindigkeit.
Möchten Sie eine als Ham markierte Mail im Ordner für als unsicher eingestufte Mails erneut filtern, damit Sie im richtigen Ordner landet, wählen Sie Filter anwenden | Alle Filter anwenden aus dem Kontextmenü oder drücken Sie einfach [Strg]+[J].
Genaueres über das Einstufen einer Mail erfahren Sie mit der Taste [V] zum Anzeigen der Mail inklusive Header-Zeilen (siehe Abbildung 5). Suchen Sie nach der Header-Zeile X-CRM114-Status. Diese Header-Zeilen ändert KMail mit den Filterregeln vom Antispam-Assistenten nicht sofort, nachdem Sie eine E-Mail als Ham oder Spam markieren. In einer als Ham markierten steht immer noch UNSURE oder SPAM drin.
Erst nach dem erneuten Filtern leitet KMail die Mail noch einmal durch den Spamfilter hindurch. Ergänzen Sie daher die Filterregel Als Nicht-SPAM klassifizieren und bei Bedarf auch Als SPAM klassifizieren bei den Filteraktionen daher noch um Durch Programm leiten mit crm -u $HOME/.crm114 mailreaver.crm (siehe Abbildung 3).
IhrName@ihre.adresse.de>->MeineMailAdresse [[:space:]]Ihr Name>-> MeinName
[Spamtool #11] Ident=crm114 Version=1 Priority=65 VisibleName=CRM114 Executeable=crm -v | grep "CRM114" URL=http://crm114.sourceforge.net PipeFilterName=CRM114 Check PipeCmdDetect=crm -u $HOME/.crm114 mailreaver.crm ExecCmdSpam=crm -u $HOME/.crm114 mailreaver.crm --spam ExecCmdHam=crm -u $HOME/.crm114 mailreaver.crm --good DetectionHeader=X-CRM114-Status DetectionPattern=SPAM DetectionPattern2=UNSURE DetectionOnly=0 UseRegExp=0 SupportsBayes=1 SupportsUnsure=1
CRM114 kompilieren
Laden Sie das Quelltex-Archiv [13], entpacken Sie es und wechseln Sie in das neu erstellte Verzeichnis. Kompilieren Sie zunächst die Bibliothek TRE, die reguläre Ausdrücke handhabt. Wechseln Sie dazu in das Verzeichnis tre-x
.y.
z, also zum Beispiel tre-0.7.4. Konfigurieren Sie die Quellen mit ./configure bzw. ./configure --enable-static, wenn Sie CRM114 statisch linken möchten, übersetzen Sie mit make übersetzen Sie den Quelltext und installieren Sie mit su -c "make install" die Bibliothek.
Etwaige Fehlermeldungen bezüglich Tests ignorieren Sie dabei einfach. Der Befehl ls -l /usr/local/lib/libtre* sollte die neu installierten Bibliotheksdateien auflisten. Wollen Sie dynamisch linken, rufen Sie als Root ldconfig auf. Die Datei /etc/ld.so.conf sollte dafür den Pfad /usr/local/lib enthalten.
Wechseln Sie danach mit cd .. in das übergeordnete Verzeichnis. Das Makefile von CRM installiert standardmäßig nach /usr. Passen Sie die Variable prefix an, um etwa nach /usr/local zu installieren. Möchten Sie dynamisch linken, setzen Sie vor die Zeile LDFLAGS += -static -static-libgcc ein Kommentarzeichen. Führen Sie schließlich nacheinander die Befehle make clean, make und su -c "make install aus.
Rewrite-Regeln und White-/Blacklists
Mit Hilfe von rewrites.mfp weisen Sie CRM114 an, Ihren Namen, Ihre eigene Mail-Adresse und gegebenfalls IP-Adresse und Name des Mail-Gateways durch generische Namen zu ersetzen (siehe Listing 1). Sie geben dabei zuerst an, was zu ersetzen ist, gefolgt von >-> und der Ersatz-Zeichenfolge: Suchen
>->Ersetzen
. Mit >--> geht das Suchen auch über mehrere Zeilen. Reguläre Ausdrücke sind dabei erlaubt [4].
Dies dient dem Schutz ihrer Privatsphäre. Zudem reduzieren Sie den Lernaufwand für CRM114, da ihre eigenen Angaben für die Entscheidung zwischen Spam oder Ham unwesentlich sind. Im Test funktioniert CRM114 jedoch auch ohne Rewrites mit erstaunlicher Genauigkeit und Effizienz.
Für eine White- oder Blacklist besteht in der Regel keine Notwendigkeit, da CRM114 sehr schnell lernt. Das neue mailreaver.crm verwendet nur noch die kombinierte White- und Blacklist priolist.mfp. Ein Beispiel finden Sie bei Debian und Ubuntu unter /usr/share/doc/crm114/examples oder im Upstream-Archiv. Ersparen Sie sich die fehleranfällige manuelle Pflege einer White- und Blacklist.



