Login
Newsletter
Mi, 7. Mai 2003, 23:10

Bogofilter in einen Postfix Server integrieren

Dies ist mein Versuch zu erklären, wie man am einfachsten bogofilter in eine bestehende Postfix-Installation integrieren kann. Ich gehe dabei von einem Debian/Woody-System mit einer funktionierenden Postfix-Installation aus.

Von Sven

Bogofilter ist ein Tool, das von Eric S. Raymond geschrieben wurde und auf Paul Grahams »A Plan for Spam« aufsetzt. Es benutzt unter u.a. das Bayesian-Filter-Verfahren, um Spam von »Ham« zu unterscheiden. Die Homepage von bogofilter lautet: http://bogofilter.sourceforge.net/. Meine Anleitung baut stark auf die in diesen beiden E-Mails beschriebene Vorgehensweise auf: http://www.kclug.org/archives/2002/oct/0489.shtml und http://archives.neohapsis.com/archives/postfix/2003-03/0053.html.

Ferner habe ich den Artikel aus dem O'Reilly Network als hilfreich empfunden. Der komplette Beitrag kann in englischer Sprache auf dieser Seite vorgefunden werden. Grundkenntnisse im Umgang mit Linux/Unix Systemen und Debian sind sehr von Vorteil.

1. Als erstes sollte man natürlich bogofilter installieren. Da bogofilter nicht in Debian/Woody enthalten ist, ist es jedem empfohlen, einen aktuellen Backport z.B. von http://www.apt-get.org/ herunterzuladen oder selber einen aus dem aktuellen Source-Paket von Debian/Sid zu bauen.

Ich habe das Paket aus folgendem Eintrag in sources.list verwendet (0.11.1.3):

deb http://debian.nfgd.net/debian stable/

Wer eine neuere Version (0.12.2) bevorzugt, kann auch das Paket von Adrian Bunk verwenden: http://www.fs.tum.de/~bunk/packages/

Nach dem Hinzufügen des Eintrags in die sources.list lässt sich bogofilter mit einem

apt-get update
apt-get install bogofilter

installieren.

2. Jetzt sollten Sie einen User anlegen, unter dem bogofilter später laufen wird. Ich habe diesen User »bfilter« genannt und sein $HOME als /var/bfilter festgelegt. Dieser User solte nicht in der Lage sein, sich am System anzumelden.

3. Bogofilter hat natürlich wie fast jede Software eine eigene Konfigurationsdatei. Normalerweise findet sich diese unter /etc/bogofilter.cf. Sie sollten nach Möglichkeit alle Kommentare in dieser Datei lesen und auf deren Basis die entsprechenden Optionen aktivieren und ggf. verändern. Weitere Parameter finden sich in der bogofilter-Manpage, auch online: http://bogofilter.sourceforge.net/bogofilter-man.html

4. Als nächstes müssen Sie bogofilter trainieren. Es wird empfohlen, 100-200 Spam-Mails und eben so viele Ham-Mails für den Anfang in die bogofilter-Datenbank zu indexieren. Die E-Mail-Sammlungen sollten jeweils in einer mbox-Datei vorliegen. Zur Indexierung wechseln Sie vom User root mittels su - bfilter unter die uid des Users bfilter. Nun sollten Sie sich im $HOME von bfilter, in meinem Fall /var/bfilter, befinden. Den Indexierungsprozess für die Spamsammlung starten Sie nun mittels:

bogofilter -s -v < /var/bfilter/spam.mbox

Die Indexierung für die Ham-Mails wird mittels:

bogofilter -n -v < /var/bfilter/ham.mbox

gestartet.

Die Ausgaben sollten in etwa so aussehen:

arthur:~# su - bfilter
bfilter@arthur:~$ pwd
/var/bfilter
bfilter@arthur:~$ bogofilter -s -v < spam.mbox
# 701 words, 3 messages
bfilter@arthur:~$ bogofilter -n -v < ham.mbox
# 31569 words, 77 messages

5. Um E-Mails an bogofilter weiter zu geben, verwende ich das folgende kleine Shell-Skript:

arthur:~# cat /usr/local/sbin/bfilter.sh
#!/bin/bash
export PATH=$PATH:/usr/sbin:/usr/lib
export HOME=/var/bfilter
cd $HOME
bogofilter -p | sendmail -i "$@"

6. Um bogofilter als Content-Filter in Postfix zu aktivieren, müssen Sie ein paar Änderungen in der Datei master.cf von Postfix durchführen. Als erstes sollte an die Zeile (so oder ähnlich, je nach Setup)

smtp inet n - - - - smtpd

ein

-o content_filter=bogofilter:

angehängt werden.

Am Ende der Datei fügen Sie zusätzlich noch diese Zeile ein:

bogofilter unix - n n - - pipe user=bfilter argv=/usr/local/sbin/bfilter.sh -f ${sender} -- ${recipient}

Mittels postfix reload sind Sie in der Lage, die Konfiguration von Postfix neu einzulesen, um bogofilter zu aktivieren.

Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten