Spamassassin
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.
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:
- Spamassassin installiert und funktionsfähig
- C-Compiler installiert
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