Spamassassin

Aus Wiki
Zur Navigation springen Zur Suche springen

Allgemein

Spamassassin ist "DER" Spamfilter auf Mailserverebene schlechthin. Neben seiner Leistungsfähigkeit und Flexibität (Erweiterungen mittels Plugins) ist er relativ leicht einzurichten im Zusammenspiel mit → Postfix. Spamassassin verbraucht allerdings sehr sehr viele der ohnehin knappen Resource der NSLU. Möglich ist der Einsatz aber dennoch.

Installation

Installation

ipkg update
ipkg install perl-archive-tar
ipkg install perl-net-dns
ipkg install spamassassin


User+Gruppe für den Spam Daemon anlegen:

vi /etc/passwd

Folgenden Eintrag ergänzen:

spamd:x:40:40:spamd:/opt/var/spool/spamd:
vi /etc/group

Folgenden Eintrag ergänzen:

spamd:x:40:spamd

Arbeitsverzeichnis anlegen und Berechtigungen anpassen:

mkdir -p /opt/var/spool/spamd/.spamassassin
chown -R spamd:spamd /opt/var/spool/spamd/.spamassassin
chmod 777 /opt/var/spool/postfix/maildrop


Anpassen der Konfigurationsdatei

vi /opt/etc/spamassassin/local.cf

Folgende Einstellungen vornehmen (evtl auskommentieren):

rewrite_header Subject *****SPAM*****
report_safe 1
required_score 5.0

Mit diesen Einstellungen wird erreicht, dass eine erkannte Spammail mit dem Betreff *****SPAM***** versehen wird und die Originalnachricht als Anhang (report_safe 1) im Posteingang abgelegt wird. Jede Mail wird nach verschiedenen Kriterien klassifiziert und pro erfülltes Kriterium ein bestimmter Scorewert addiert. Sobald der errechnete Score über dem Wert required_score liegt, gilt die untersuchte mail als Spam.


Anlegen eines Startskripts

Bei der Installation wurde evtl. nicht automatisch ein Startscript für Spamassassin angelegt.

vi /opt/etc/init.d/S62spamd

Folgende Zeilen einfügen, falls diese nicht vorhanden sind:

#!/bin/sh
echo "Starting spamd"
/opt/bin/spamd -d -c -m 1 -u spamd -p 785 --max-conn-per-child=20

Erweiterung der Postfix Konfiguration

Für den Einsatz von Spamassassin muss die Postfix-Konfigurationsdatei master.cf editiert werden.

vi /opt/etc/postfix/master.cf

Folgenden Eintrag auskommentieren, durch voranstellen eines # - Zeichens:

smtp inet n - n - - smtpd

Stattdessen folgenden Eintrag unterhalb einfügen:

smtp inet n - n - - smtpd -o content_filter=spamassassin

Sodass sich folgender Ausschnitt ergibt:

#smtp inet n - n - - smtpd
smtp inet n - n - - smtpd -o content_filter=spamassassin

und zusätzlich folgenden Eintrag am Ende ergänzen.

(ACHTUNG: user muß um ein Leereichen eingrückt werden)
spamassassin unix - n n - - pipe
 user=spamd argv=/opt/bin/spamc -f -e /opt/sbin/sendmail -oi -f ${sender} ${recipient}

Postfix und Spamassassin neu starten:

/opt/etc/init.d/S69postfix restart
/opt/etc/init.d/S62spamd start

Spamassassin testen

Eine mail an einem lokalen User z.B. tux mit folgendem Inhalt (Betreff egal) senden:

XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X

Bitte den Text exakt so kopieren. Keine Zeichen hinzufügen oder weglassen. Dies ist eine standardisierte Testmessage für Spamfilter, die definitiv als SPAM erkannt werden muss.

Die Mail sollte mit dem Originalbetreff und vorgestelltem *****SPAM***** im Postfach von Benutzer tux ankommen.


Regelmäßige Updates

Die Regeln und Programm-Module können regelmäßig upgedated werden. Test der Update-Funktion:

/opt/bin/sa-update --channel updates.spamassassin.org --nogpg

Falls keine Fehler auftreten, kann der Update-Vorgang regelmäßig (z.B. täglich/wöchentlich/monatlich) mittels → Crontab ausgeführt werden.

vi /etc/crontab

bzw. bei Installation von Cron via ipkg (siehe → Crontab):

vi /opt/etc/crontab

3 Beispiele für die Updateintervalle (ein Eintrag ist ausreichend)

  • Tägliche Updates (4:00 Uhr):
0 4 * * * root /opt/bin/sa-update --channel updates.spamassassin.org --nogpg
  • Wöchentliche Updates (z.B. Montag / 4:00 Uhr)
0 4 * * 1 root /opt/bin/sa-update --channel updates.spamassassin.org --nogpg
  • Monatliche Update (z.B. an jedem 1. Tag/ 4:00 Uhr)
0 4 1 * * root /opt/bin/sa-update --channel updates.spamassassin.org --nogpg


Optional: Spamassassin Plugins

Die Funktionalität von Spamassassin kann durch Plugins erweitert werden. Zahlreiche Plugins sind bereits standardmäßig installiert und aktiviert. Sehr hilfreiche Plugins, die die Erkennungsrate von Spam deutlich erhöhen können sind nicht enthalten. Dabei handelt es sich um Razor2 und DCC. Diese sollen nun im Folgenden installiert werden. Diese müssen allerdings manuell heruntergeladen, compiliert und installiert werden.

Voraussetzung:

Installation DCC

Downloaden und entpacken der aktuellsten Version von DCC:

mkdir -p /work
cd /work
wget http://www.dcc-servers.net/dcc/source/dcc-dccproc.tar.Z
tar xzvf dcc-dccproc.tar.Z

Wechslen ins entpackte Verzeichnis (/work/dcc-dccproc-1.3.95 für DCC-Version 1.3.95). Tatsächliches Verzeichnis mit ls ermitteln.

cd /work/dcc-dccproc-1.3.95

Erzeugen eines symbolischen links auf den C-Compiler /opt/bin/gcc nach /bin/cc. Ansonsten findet das folgende Konfigurationsscript den Compiler nicht und bricht mit einem Fehler ab:

ln -s /opt/bin/gcc /bin/cc

DCC-Paket konfigurieren, bevor es kompliert wird:

./configure --bindir=/opt/sbin --with-uid=spamd --homedir=/opt/var/dcc --mandir=/opt/share/man

Compilieren:

make
make install


Installation Razor

Downloaden und entpacken von Razor. Das Razor-SDK-Paket enthält einige benötigte Perl-Module und das Razor-Agents-Paket enthält das eigentliche Razor Programm. Vor dem Download bitte unter http://sourceforge.net/project/showfiles.php?group_id=3978 die aktuellen Versionen von SDK und Agent ermitteln und evtl. die unten angegebenen Pfade anpassen.

cd /work
wget http://downloads.sourceforge.net/razor/razor-agents-sdk-2.07.tar.bz2
wget http://downloads.sourceforge.net/razor/razor-agents-2.85.tar.bz2
tar vxf razor-agents-sdk-2.07.tar.bz2
tar vxf razor-agents-2.85.tar.bz2

Installieren des SDK-Pakets:

cd razor-agents-sdk-2.07
perl Makefile.PL
make
make test
make install

Installieren des Razor-Agenten:

cd ../razor-agents-2.85
perl Makefile.PL
make
make test
make install

Konfigfile für Razor anlegen:

razor-admin -create

Registrieren von Razor:

razor-admin -register

Das Konfigfile und Registrierungsfile wurden mit obigen Befehlen für den User "root" in seinem Verzeichnis /root angelegt. Da Spamassassin unter dem User "spamd" läuft, müssen die Konfigfiles ins Homeverzeichnis des Users spamd kopiert werden:

cp -R /root/.razor /opt/var/spool/spamd/

Aktivieren der Plugins

Damit Spamassassin die Plugins verewendet, müssen diese noch aktiviert werden.

vi /opt/etc/spamassassin/v310.pre

Kommentarzeichen vor den Plugins DCC und Razor entfernen:

loadplugin Mail::SpamAssassin::Plugin::DCC
loadplugin Mail::SpamAssassin::Plugin::Razor2

Zusätzlich muß Razor und DCC noch in der Local.cf aktiviert werden:

vi /opt/etc/spamassassin/local.cf

Folgende Einträge auskommentieren bzw. ergänzen:

skip_rbl_checks 0
use_razor2      1
use_dcc         1
dcc_home        /var/dcc

Spamassassin neustarten, um die Plugins zu aktivieren. Mit dem Killbefehl wird spamassassin angehalten.

kill `pidof spamd`
/opt/etc/init.d/S62spamd