Login
Login-Name Passwort


 
Newsletter
Werbung

Mi, 3. März 2004, 00:00

Spam/Viren-Filtern mit Sylpheed-Claws

Filtern von Mails mit Spamd/SpamAssassin, clamAV und f-prot mit Sylpheed-Claws. Remote-Filtern mit Spamd und SSL.

Einleitung

Sylpheed-Claws ist ein Mailprogramm, welches wohl zu den feature-reichsten seiner Gattung gehört. Trotzdem ist es auch für EinsteigerInnen einfach zu bedienen und zu konfigurieren. Aber auch für Profis bietet es einiges. So können nicht nur Mails variantenreich gefiltert werden, nein, auch Word-Dokumente und RTFs lassen sich per Tastenkombination als plain/text lesen. Ein weiteres nettes Feature ist das Ausführen von externen Programmen zum Filtern von Mails, d.h. die Filterregel wertet die Exitcodes von Programmen aus und filtert anhand dieser.

Was ist Spamd?

Spamd ist der Daemon des Spam-Scanners SpamAssassin. Spamd wird oftmals nur in Kombination mit einem Mailserver wie Qmail o.ä. eingesetzt, dabei ist es durchaus auch sinnvoll, ihn in Kombination mit normalen Clients einzusetzen, da das Einrichten eines Mailservers erstens nicht völlig trivial ist und zweitens für viele UserInnen einen riesigen Overhead darstellt.

Ein solcher Client, mit dem es möglich ist, externe Programme zum Filtern von Mails einzusetzen, ist Sylpheed-Claws. Diese Anleitung beschäftigt sich einerseits mit Spamassassin/Spamd in Verbindung mit Sylpheed-Claws, andererseits auch mit Spamd auf einem anderen Rechner, so daß nichtlokales Filtern der Nachrichten möglich ist. Ebenso sollen hier weitere Möglichkeiten, nervige Spammails und Viren aus den Mails zu filtern, nicht unerwähnt bleiben. Aus diesem Grunde wird kurz noch auf f-prot (nicht-freier Virenscanner) und clamAV (freier Virenscanner) eingegangen.

SpamAssassin/Spamd

Um Spamd zu verwenden, reicht es im Normalfall, das init-Skript zu verwenden (bei Gentoo: /etc/init.d/spamd start | stop | restart). Falls Ihre Distribution kein init-Skript anlegt, können Sie Spamd einfach per spamd -a -c starten. Die Option -a sorgt dafür, daß Spamd auf die mitgelieferten Whitelists zurückgreift, -c legt userspezifische Konfigurationsdateien an. Die Optionen, die ich hier empfehle, sind per Default in der Datei /etc/conf.d/spamd angegeben. Gentoo-User sind somit auch hier im Vorteil ;)

Wenn keine Fehlermeldungen kommen, ist Spamd am Laufen. Dies können Sie überprüfen, in dem Sie einfach eine Mail, die sicher Spam ist, folgendermaßen an Spamd übergeben: spamc -c < /pfad/zur/spammail

Filterregel für Sylpheed-Claws

Damit nun Sylpheed-Claws irgendetwas mit Spamd anfangen kann, muss in Sylpheed-Claws eine Filterregel angelegt werden. Öffnen Sie mit Ihrem Lieblingseditor die Datei ~/.sylpheed/matcherrc und fügen Sie unter &#91;filtering&#93; (ab Version 0.9.8, sonst zuoberst) folgende Zeile ein:

test "!(spamc -c < %F)" move "#mh/Mailbox/ihr/pfad"

Nun sollte SpamAssassin brav Ihre Mails filtern. Dies können Sie mit einem einfachen tail -f /var/log/mail.log prüfen.

Spamd remote über SSL verwenden

Sehr bald werden Sie, vor allem wenn Sie über eher langsame Hardware verfügen, merken, daß SpamAssassin nicht sonderlich schnell funktioniert. In meinem Fall stellte sich das Problem ein, daß ich einen nicht sonderlich schnellen Laptop habe und dieser trotz alledem alle meine Mails abholen sollte. So kam ich auf die Idee, mein Laptop die Mails zwar abholen zu lassen, allerdings die Checks auf meinem deutlich schnelleren Desktop durchführen zu lassen. Die zweite Maxime war, dass dies alles SSL-verschlüsselt passieren sollte, da ich ungern möchte, daß jemand meine Mails mitliest.

Als erstes konfiguriert man den Spamd auf dem Desktop so, dass er Verbindungen von außen annimmt. Im Falle der Distribution Gentoo editieren Sie hierzu die Datei /etc/conf.d/spamd und fügen folgende Optionen ein:

SPAMD_OPTS="-a -c -i 192.168.0.12 --ssl -A 192.168.0.13"

Der Option -i folgt die IP-Adresse des Desktops, der Option -A die Hosts, die den Spamd verwenden dürfen. Die Option --ssl, wer hätte das gedacht, sorgt dafür, daß Spamd SSL-Verbindungen annimmt. Nun fehlen noch die SSL-Zertifikate. Diese werden am einfachsten unter Gentoo mit dem Skript erstellt, welches unter /usr/lib/ssl/apache2-mod_ssl/gentestcrt.sh versteckt ist. Debian sollte unter /usr/lib/ssl/misc ein ähnliches Skript bereitstellen. Da dieses Skript in Gentoo nur existiert, wenn mod_ssl installiert ist, steht es hier zum Dowload.

Nach der Ausführung des Skriptes sollten zwei Dateien existieren: server.cert und server.key. Nun müssen diese beiden Dateien noch an die richtige Stelle kopiert werden und schon sollte der Spamd auch nicht-lokal und SSL-verschlüsselt erreichbar sein.

cp server.key /etc/mail/spamassassin/certs/server-key.pem
cp server.cert /etc/mail/spamassassin/certs/server-cert.pem

Nun noch /etc/init.d/spamd &#91;re&#93;start oder ein killall spamd; spamd -a -c -i 192.168.0.12 --ssl -A 192.168.0.13 &amp; und dann läuft es!

Filterregel für Remote-Spamd

Als nächstes muss der Client, in meinem Falle Sylpheed-Claws auf dem Laptop, wissen, daß er auf den Remote-Spamd zugreifen soll. Nun ist es aber so, dass ich nicht immer die Möglichkeit habe zum Desktop zu connecten. Auch unterwegs möchte ich Mails abrufen können. Das folgende Skript schaut nach, ob der Host (Desktop), auf dem Spamd läuft, erreichbar ist. Wenn ja, verwendet es zum Check den Remote-Spamd, wenn nicht, den lokalen des Laptops. Hier also das Skript:

#!/bin/bash
# (c) Copyright 2004: Lars Strojny
# Released under the GPL
# This program is free software. You can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License.
SERVERIP="192.168.0.13"
if ping -c 1 $SERVERIP > /dev/null 2>&1
then # Legen Sie hier den Pfad fest, in dem Ihr userspez. SpamAssassin-Ordner liegt.
 SPATH="/home/$USER/.spamassassin"
 # Überprüfen, ob sich an den lokalen Einstellungen bzw. Spam-Definitionen
 # etwas verändert hat. Wenn ja, werden die Files aktualisiert.
 FILE=$(find $SPATH -cnewer $SPATH/date.ref)
 if &#91; "$FILE" != "" &#93;
 then
 scp $FILE $SERVERIP:.spamassassin/
 touch $SPATH/date.ref
 fi
 spamc -c -S -d $SERVERIP
else
 spamc -c
fi

Dieses Skript speichern sSie nun z.B. unter /usr/bin/spamcheck und machen es mit chmod a+x /usr/bin/spamcheck für alle User ausführbar. Nun muss noch die Filterregel in Sylpheed-Claws leicht angepasst werden. Dazu öffnen Sie wiederum die Datei ~/.sylpheed/matcherrc und ändern die Regel für spamc:

test "!(/usr/bin/spamcheck < %F)" move "#mh/Mailbox/ihr/pfad"

clamAv und F-Prot

Nun zu den Virenscannern. Viele werden erst einmal kopfschüttelnd fragen, zu was man einen Virenscanner unter Linux bräuchte. Das ist natürlich richtig, aus sicherheitstechnischen Gründen gibt es keinerlei Veranlassung, auf einen solchen zurückzugreifen. Problematisch werden Viren dann, wenn sie in Überzahl auftreten und ein Postfach vollspammen. Doch hier kann Abhilfe gefunden werden. Hierzu installieren sie eines der beiden Pakete (wer die Treffsicherheit erhöhen will, installiert beide, die Verzögerung ist selbst auf langsamen Rechnern minimal) und richten die Filterregeln wie folgt ein:

Kommentare (Insgesamt: 0 || Kommentieren )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung