Vorneweg zur Erklärung: Es wird hier von zwei einzelnen Komponenten gesprochen.
Spamassassin ist ein Tool, welches Mails als Spamm identifizieren kann. An Spamassassin
übergebene Mails werden analysiert und erhalten aufgrund verschiedener Regeln »Spam-Punkte«.
Wie eine Mail bewertet ist, ist auf einer anderen Seite meiner Homepage kurz erklärt. Bei dem
Winows-Tool »SAproxy« habe ich unter dem Punkt Effizienz ein Beispiel für eine solche
Punktevergabe angegeben.
pop3filter ist ein transparenter Proxy, welcher mittels Spamassassin Mails bearbeitet und
somit Mails als Spam markiert werden können.
Weiter unten auf dieser Seite gehe ich darauf ein, wie Sylpheed-Claws unter Linux mit dem
Plugin für Spamassassin genutzt werden kann.
Für das Script, welches weiter unten zu finden ist, wird folgendes vorausgesetzt:
• 2.4.x Kernel (wegen iptables)
• pop3filter, ein transparenter POP3-Proxy
• Spamassassin
• Ein Linuxrechner, welcher als Gateway/Router agiert
Das Beispiel bezieht sich auf den Einsatz des Proxys auf einem Linux Router. Alle
POP3-Verbindungen durchlaufen diesen Router und können daher bequem via iptables-Regeln
umgeleitet werden.
Der pop3filter Proxy ist ursprünglich nur für das Abfragen eines einzelnen POP3-Servers
programmiert worden. Daher muß man für jeden abzufragenden POP3-Filter jeweils einen
pop3filter Proxy starten.
Im Script werden die abzurufenden POP3-Server angegeben, das Script selbst leitet die
Anfragen aus dem LAN an die Server dann an den Proxy weiter. Sollte ein Server abgefragt
werden der nicht in der Liste steht, so wird die Verbindung direkt (nicht über einen Proxy)
aufgenommen.
Im Script werden die Proxys auf den Ports 11011
ff. betrieben, die
Regel für iptables leitet die Anfrage darauf um.
Das folgende Script kann beispielsweise unter /usr/bin/pop3filter.sh
abgespeichert werden. Über crontab
oder in Verbindung mit
/etc/ppp/ip-up.local
und /etc/ppp/ip-down.local
kann das Script die
Proxyserver aktivieren oder deaktivieren.
Gestartet werden die Proxyserver mit /usr/bin/pop3filter.sh start
, beendet mit
/usr/bin/pop3filter.sh stop
. Natülich werden die iptables-Regeln mit erstellt.
#! /bin/bash iptables="/sbin/iptables" localif=eth0 pop3filter_base=11011 servers="pop.puretec.de pop.gmx.net pop.t-online.de" case "CONTENT" in start) # set policies for i in $servers do $iptables -t nat -A PREROUTING -i $localif -p tcp \ -d $i --dport 110 -j REDIRECT --to-port ${pop3filter_base} $iptables -t nat -A PREROUTING -i lo -p tcp \ -d $i --dport 110 -j REDIRECT --to-port ${pop3filter_base} pop3filter -f $i 110 ${pop3filter_base} 'spamassassin -L -e' pop3filter_base=$((pop3filter_base+1)) done ;; stop) # flush policies for i in $servers do $iptables -t nat -D PREROUTING -i $localif -p tcp \ -d $i --dport 110 -j REDIRECT --to-port ${pop3filter_base} $iptables -t nat -D PREROUTING -i lo -p tcp \ -d $i --dport 110 -j REDIRECT --to-port ${pop3filter_base} pop3filter_base=$((pop3filter_base+1)) done killall pop3filter ;; *) echo -n "Usage: pop3filter.sh [start|stop]" esac
Da ein transparenter Proxy verwendet wird, entfallen Veränderungen an den POP3-Einstellungen jeglicher MUAs. Aber: Natürlich sollten Filterregeln erstellt werden. Als Spam eingestufte Mails können so automatisch verschoben werden. Sie landen beispielsweise in einen extra dafür angelegten Ordner.
Das Abrufen der E-Mails verlangsamt sich. Da jede Mail erst noch durch den Spamassassin
umgeleitet wird, entsteht natürlich eine Verzögerung.
Ich hatte gelegentlich Probleme damit, dass sich Sylpheed-Claws während des Mailsabrufen via
Proxyserver »verabschiedet« hat. Evtl. ist ein Timeout schuld daran? Ich weiß es nicht.
Beim Autor des Proxys läuft dieser jedenfalls seinen Angaben nach problemlos – allerdings
eben auch nur für einen einzigen POP3-Server im Netz.
Wird nur ein Rechner verwendet, so kann auch Sylpheed-Claws so konfiguriert werden, dass
es die Mails mittels eines Plugins selbst checkt. Sollte die vorkompilierte Version von
Sylpheed nicht die notwendigen Plugins bereitstellen (was mich aber wundern würde), so kann
natürlich auch selbst kompiliert werden. Zuvor sind aber noch einige Pakete zu installieren.
Bezogen auf Debian GNU/Linux:
apt-get install spamassassin clamav libclamav1-dev
Sourcen von Sylpheed-Claws herunterladen: Sourceforge.
Kopieren, vorzugsweise nach /usr/src/
und anschließend das Archiv entpacken:
tar xvjf sylpheed-0.9.3claws.tar.bz2
Anschließend folgt der klassische Dreierpack bestehend aus ./configure
,
make
und make install
. Für Letzteres werden natürlich Rootrechte benötigt.
Damit auch alle Plugins mit installiert werden, müssen beim ./configure
noch
Optionen angegeben werden:
cd sylpheed-0.9.3claws ./configure --enable-clamav-plugin --enable-spamassassin-plugin \ --enable-trayicon-plugin
Sollte beim make
permanent ein =no
erscheinen und den Bildschirm füllen,
bitte die Ausgabe des Fehlers kontrollieren. Sollte er wie folgt aussehen...
checking for IMLIB - version >= 1.9... no *** Could not run IMLIB test program, checking why... *** The test program failed to compile or link. See the file config.log *** for the exact error that occured. This usually means IMLIB was *** incorrectly installed or that you have moved IMLIB since it was *** installed. In the latter case, you may want to edit the imlib-config *** script: /usr/bin/imlib-config = no
...ist noch folgendes zu installieren:
apt-get install gdk-imlib1-dev
Nach dem Kompilieren kann man über das Menü von Sylpheed-Claws die Plugins einfach
einbinden. Sie befinden sich in $PREFIX/lib/sylpheed/Plugins
. Typisch wäre
/usr/lib/sylpheed/Plugins
wenn man ein Plugin als Paket installiert hat, oder in
/usr/local/lib/sylpheed/Plugins
wenn man selbst von den Sourcen installiert hat.
Das Menü wird folgendermaßen aufgerufen: Einstellungen - Plugins - Plugin laden. Wurden die beiden Plugins für Spamassassin korrekt geladen sollte das Fenster mit den Plugins folgendermaßen aussehen:
Es muß zweimal Spamassassin aufgeführt sein. Das eine ist spamassassin.so
, das
zweite spamassassin_gtk.so
. Letzteres ist das Plugin für die grafische Oberfläche,
mit der das eigentliche Plugin konfiguriert wird. Dies sieht folgendermaßen aus (auf das
verkleinerte Bild klicken, es öffnet sich ein Browserfenster mit dem Screenshot in
Originalgröße):
Die Größenbeschränkung der »maximalen Nachrichtengröße« macht Sinn: Spammails sind meist
nicht sonderlich groß. Daher müssen nicht alle Mails Spamassassin durchlaufen. Vorallem Mails
mit großen Anhängen würden das System ansonsten in die Knie zwingen. Daher sollte man die
Einstellung bei 250 kByte belassen.
Spamassassin muß nicht lokal auf dem Rechner installiert sein. Es kann auch ein Spamassassin
mittels (transparentem) Proxy-Server im Netzwerk verwendet werden. Sollte es sich nicht um
einen transparenten Proxy-Server handeln, so muß er natürlich mittels IP oder Rechnername
angesprochen werden.
Hinweis: Auch in diesem Fall wird das Abholen der E-Mails etwas verlangsamt. Die Mails werden
zunächst komplett heruntergeladen und durchlaufen anschließend den Spamassassin.
Abschließend noch ein Screenshot vom Plugin für das Taskbar-Icon. Zwar hat es nichts mit dem
Thema Spamassassin zu tun, aber wenn schon Plugins angesprochen werden: Dann darf es auch
nicht fehlen.
Es handelt sich dabei – wie könnte es anders sein – um das Icon ganz rechts, dem stilisierten
Postfach. Sylpheed-Claws kann einfach mit einem Doppelklick verkleinert werden, außerdem
zeigt das Plugin auch eingegangene Mails an. Sehr bequem in der Handhabung und vorallem
übersichtlich.