Spamassassin: Whitelisting in MySQL DB speichern

6

So wie die Bayes Werte in einer DB gespeichert werden können, lohnt es sich auh evtl. das automatische whitelisting in eine MySQL DB zu verlegen.

  • Vorraussetzungen
perl -MCPAN -e shell
install DBD::mysql

apt-get install libtie-cache-perl libdbd-mysql-perl
  • Nun wird die notwendige DB angelegt
mysqladmin -p create spamassassin_db -u root
  • Vergabe der Rechte für einen speziellen User
grant all privileges on spamassassin_db.* to spamassassin_usr@localhost identified by 'password';
  • anlegen der notwendigen Tabellen
mysql -u root spamassassin_db -p < /usr/share/doc/spamassassin/sql/awl_mysql.sql  
  • /etc/spamassassin/local.cf um die SQL-DB Einträge erweitern
use_auto_whitelist 1
user_awl_dsn DBI:mysql:spamassassin_db:localhost
user_awl_sql_username spamassassin_usr
user_awl_sql_password <pwd>
user_awl_sql_table awl       

Dabei müssen Sie darauf achten, dass der Zugriff auf die alte autowhiteliste deaktiviert wurde

#auto_whitelist_path /var/spool/spamassassin/auto-whitelist
#auto_whitelist_file_mode 0666  

eine Änderung der Konfiguration der bayes-DB merkt Spamassassin i.d.R. sofort. Starte Sie dennoch den Dienst neu:

/etc/init.d/spamassasin restart

Um zu prüfen, ob die bayes Einträge auch korrekt abgelegt werden reicht es, sich den Inhalt einer der Tabellen anzuschauen. Steht unter Count eine Zahl > 0 sind bereits Datein gespeichert worden:

mysql -u root -p
mysql> use spamassassin_db;
mysql> select count(*) from awl;
+----------+
| count(*) |
+----------+
|        1 |
+----------+
1 row in set (0.01 sec)

Ein Blick in die Log-Datei von Spamassassin schadet auf keinen Fall. Wo diese liegt, kann man der Datei /etc/default/spamassassin entnehmen

Teilen.

Über den Autor

Seit der Ausbildung zum Fachinformatiker Systemintegration (2002-2005) bei der DaimlerChrysler AG, beruflich im Bereich der E-Mail Kommunikation (Exchange, Linux) sowie des ActiveDirectory, mit entsprechenden Zertifizierungen (MCSE 2003, MCITP Ent.-Admin 2008, MCSE 2012, LPIC 1-3) tätig. Abgeschlossenes Studium zum Master of Science der IT-Management an der FOM sowie zertifizierter Datenschutzbeauftragter. Aktuell im Projektmanagement tätig.

6 Kommentare

  1. toxic01413 am

    Vielen Dank an dieser Stelle für die Anleitung. Ein kleiner Fehler ist jedoch enthalten:

    user_awl_sql_passwort

    wird zu:

    user_awl_sql_password

    mit D(ora) am Ende, sonst gibt das unschöne Flüche in der Log. 😉

  2. bin deiner anleitung gefolgt, kann leider keine einträge in der db erkennen. wie kann ich am besten sehen wo der fehler liegt… die log von spamassassin kannich nicht finden

    wynni

  3. Ich würd die Dateien die Spamassassin zum lernen der E-Mails verwendet (bayes_seen, bayes_toks) einmal verschieben. Anschließend Spamassassin neu starten und mittels sa-learn eine E-Mail verarbeiten. Legt Spamassassin die Dateien neu an, werden noch die lokale Dateien genutzt und nicht die MySQL DB. In diesem Fall schau Dir nochmal die Konfiguration an.

    Was sagt denn die Ausgabe
    select count(*) from awl;
    Bekommst Du einen Wert größer 0 zurück? Wenn ja, hat Spamassassin die MySQL DB schonmal genutzt.

  4. ok, jetzt klappt es doch noch… die daten werden in mysql abgelegt.
    danke. ich würde gerne auch manuell black-whitelisten. ist das auch möglich??

Antworten