Wer seinen Spamassassin nicht nur in der Standardkonfiguration betreiben möchte, sondern darüber hinaus noch weitaus mehr Tests zum Erkennen von Spam nutzen. Hierfür hatte man früher über die Seite exit0.us ein Bash Script zur Verfügung gestellt bekommen, welches die Sare Checks herunterläd. Durch die Neuerungen in Spamassassin ist dieses Script überflüssig geworden, da man nun sa-update als nützliches Werkzeug an die Hand bekommt. Nur ich vermute, dass die wenigsten wissen werden wie man dies korrekt konfiguriert.
Und genau deswegen heute dieses HowTo. Man nehme einen handelsüblichen Server auf dem ein Spamassassin bereits vorinstalliert ist und auch funktioniert. Alles weitere wird nun beschrieben.
Inhalt
- Vorbereiten der Verzeichnisse
- Import der notwendigen GnuPG Keys
- Erzeugen der Konfigurationsdateien
- sa-update das erste Mal ausführen
- Optional: Cronjob einrichten
Und schon geht’s los…
1.) Vorbereiten der Verzeichnisse
Damit sa-update arbeiten kann benötigt es ein Verzeichnis in dem die GnuPG Keys und andere Daten abgelegt werden: sa-update-keys. Das Verzeichnis muss, sofern es nicht vorhanden ist erstellt werden. Ich traue nun mal jedem zu, dass er weiß wie ein Verzeichnis angelegt wird. Um später keinen Rechtefehler beim sa-update zu erhalten, geben wir dem Verzeichnis die Rechte 0600 für die User:Gruppe root:root. Im Endergebnis schaut dann alles so aus:
drwx------ 2 root root 4096 2009-03-30 06:46 sa-update-keys
Das war ja nun noch leicht Daher ziehen wir ohne Warten direkt zum nächsten Punkt weiter
2.) Import der notwendigen GPG Keys
Um sicherzustellen, dass die heruntergeladenen Regeldateien auch vom Entwickler stammen und nicht von bösen Buben, ist es notwendig dass wir die GnuPG Keys herunterladen und diese unserem lokalen Keyring hinzufügen. Nun laden wir erst einmal herunter:
wget http://spamassassin.apache.org/updates/GPG.KEY -O GPG-sa.KEY
wget http://daryl.dostech.ca/sa-update/sare/GPG.KEY -O GPG-dostech.KEY
Und schon haben wir die Keyfiles der beiden Channels. Da beide Dateien gleich lauten habe ich eine Output Anweisung bei wget angegeben, die uns 2 verschiedene Dateien anlegt. Nun müssen diese Keys in den Keyring importiert werden:
gpg --import GPG-sa.KEY
gpg --import GPG-dostech.KEY
Spamassassin bzw. sa-update hat aber noch einmal einen eigenen Keycache dem wir ebenfalls die Dateien zuführen müssen:
sa-update --import GPG-sa.KEY
sa-update --import GPG-dostech.KEY
Das wäre geschafft. Damit sind wir nun gerüstet die Channel und GPGKey Dateien anzulegen.
3.) Erzeugen der Konfigrationsdateien
sa-update bietet die Möglichkeit mehrere Regelsätze direkt herunterzuladen. Dazu legt man einfach eine Datei an in welcher die verschiedenen Regeln eingetragen werden. Bei einem Update übergibt man diese einfach zusammen mit der GnuPG Datei und schon werden die Regel automatisch heruntergeladen. Die notwendigen Inhalte folgen nun:
updates.spamassassin.org
70_sare_stocks.cf.sare.sa-update.dostech.net
70_sare_adult.cf.sare.sa-update.dostech.net
70_sare_spoof.cf.sare.sa-update.dostech.net
70_sare_bayes_poison_nxm.cf.sare.sa-update.dostech.net
70_sare_genlsubj_x30.cf.sare.sa-update.dostech.net
70_sare_oem.cf.sare.sa-update.dostech.net
70_sare_random.cf.sare.sa-update.dostech.net
70_sare_specific.cf.sare.sa-update.dostech.net
70_zmi_german.cf.zmi.sare.sa-update.dostech.net
70_sare_evilnum0.cf.sare.sa-update.dostech.net
70_sare_highrisk.cf.sare.sa-update.dostech.net
70_sare_header0.cf.sare.sa-update.dostech.net
70_sare_html0.cf.sare.sa-update.dostech.net
70_sare_obfu0.cf.sare.sa-update.dostech.net
70_sare_stocks.cf.sare.sa-update.dostech.net
70_sare_unsub.cf.sare.sa-update.dostech.net
70_sare_uri0.cf.sare.sa-update.dostech.net
70_sare_uri1.cf.sare.sa-update.dostech.net
70_sare_uri3.cf.sare.sa-update.dostech.net
70_sc_top200.cf.sare.sa-update.dostech.net
72_sare_bml_post25x.cf.sare.sa-update.dostech.net
99_sare_fraud_post25x.cf.sare.sa-update.dostech.net
88_FVGT_Bayes_Poison.cf.sare.sa-update.dostech.net
88_FVGT_Tripwire.cf.sare.sa-update.dostech.net
88_FVGT_rawbody.cf.sare.sa-update.dostech.net
88_FVGT_subject.cf.sare.sa-update.dostech.net
chickenpox.cf.sare.sa-update.dostech.net
Übrigens genau genommen sind dies nicht die direkten Regeln sondern sog. Channels in welchen die Regeln verwaltet werden (nur falls ein Schlaumeier wieder meint man müsse gleich mit Wissen prahlen). Die oben stehenden Zeilen dann einfach in eine Datei kopieren und wie folgt benennen: sare-sa-update-channels.chan
Als nächstes legen wir eine Datei für die beiden GnuPG Keys an. Man könnte diese auch direkt über die Option –gpgkey übergeben, da man sich aber die Zahlen-/Buchstabenkombinationen eher schlecht merken kann, nutzen wir dazu ebenfalls eine Datei:
856AA88A
5244EC45
Diese Zeilen kopieren wir nun ebenfalls in eine Datei und benennen diese: sare-sa-update-keys.chan. Fertig sind unsere beiden Konfigurationsdateien die wir nun im nächsten Schritt an sa-update übergeben.
4.) sa-update das erste Mal ausführen
Nachdem wir nun alle notwendigen Maßnahmen ergriffen haben, können wir das Update nun das erste Mal durchführen und die Regeldateien herunterladen. Ich empfehle beim beim ersten Update die Debug Option “-D” mit zu aktivieren, damit man auf Fehler aufmerksam wird.
sa-update --channelfile sare-sa-update-channels.chan --gpgkeyfile sare-sa-update-keys.chan -D
Es huschen nun eine ganze Menge Zeilen und Ausgaben über die Shell. Wie gesagt, solange keine Fehlermeldung erscheint ist alles normal. Spamassassin selbst kennt die Regeln nach dem Update aber noch nicht und muss daher mit der Option “–lint” aufgerufen werden. Auch hier kann man die Debug Option “-D” nutzen um weitere Fehler zu lokalisieren:
spamassassin --lint -D
Fertig Und nun darf der Spam gerne kommen.
5.) Optional: Cronjob zum automatischen Update anlegen
Sobald man Spamassassin installiert hat, wird auch (zumindest bei Debian) ein Cronjob angelegt der tägliche Updates des Spamfilters durchführt. Daher würde ich als erstes im Verzeichnis “/etc/cron.daily” nachsehen ob dort eine Datei namens “spamassassin” liegt. Wenn ja, dann diese mit einem Editor deiner Wahl öffnen und folgendes ersetzen:
# Update
umask 022
sa-update --channelfile /etc/mail/spamassassin/sare-sa-update-channels.chan --gpgkeyfile /etc/mail/spamassassin/sare-sa-update-keys.chan || exit 0
Bitte vorher nachsehen ob eine ähnliche Zeile bereits im Script vorhanden ist und diese dann durch die og. ersetzen. Nun kann der Crond jeden Tag die Updates herunter holen und in den Spamassassin laden. Mehr ist nicht zu tun