Werbehinweise

Startseite » Software » Linux » Spamassassin 

Werbung

Spamassassin

Spamassassin und pop3filter

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.

Voraussetzungen

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.

Funktionsweise

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.

Start-/Stoppscript

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

 

Einstellungen bei Sylpheed

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.

Nachteile

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.

Alternative: Spamassassin-Plugin für Sylpheed-Claws

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.

Datenschutzerklärung
Durch die Nutzung der Website stimmen Sie der Verwendung von Cookies zur Durch­führung von Analysen und zum Erstellen von Inhalten und Werbung, welche an Ihre Interessen angepasst ist, zu.