Ich überlege ja schon ein paar Tage wie ich Postfix mit SpamAssassin verkuppeln kann.
Die meisten Lösungen die ich kenne verwenden dafür ein mehr oder weniger fragwürdiges Script, was mir ehrlich gesagt überhaupt nicht gefällt. Nach ein wenig Recherche im Internet bin ich auf SpamPD gestoßen.
SpamPD läuft als mehr oder weniger Transparenter Mailproxy (SMTP/LMTP) was natürlich Ideal für einen Post-Queue Filter bei Postfix ist. Hier beschreibe ich wie man sowas Debian/Ubuntu Konform in sein Postfix Setup einbinden kann. Bitte beachte das ich nicht darauf eingehen wie ein Mailserver funktioniert und was der tut usw...
Installation
Viel braucht man ja nicht, ein einfaches
sudo apt-get install spampd spamc
Konfiguration
SpamPD
In der Datei /etc/default/spampd muss nicht viel gemacht werden. Was ich aber machen würde ist das Ändern der letzten beiden Zeilen, so das der ADDOPTS Block mit der separaten Config (/etc/spampd.conf) der ohne Kommentarzeichen davor ist.
Jetzt sollte man dem SpamPD noch neu starten, dies macht man am besten via
sudo /etc/init.d/spampd restart
Postfix
Bei Postfix wird es ein wenig komplexer, den Postfix soll ja alle Mails durch SpamPD jagen. Ich gehe davon aus das man die Defaults aus der /etc/default/spampd nicht weiter verändert hat.
Wenn man seine /etc/postfix/main.cf nicht total versaut hat genügt eine Änderung in der Datei /etc/postfix/master.cf. Zum einen muss natürlich der vorhandene smtpd alle Mails über den SpamPD jagen, dafür muss man diesen Eintrag
smtp inet n - - - - smtpd
smtp inet n - - - - smtpd
-o content_filter=smtp:[127.0.0.1]:10025
Wer Postfix kennt kann dies natürlich auch direkt über die /etc/postfix/main.cf erledigen.
Jetzt sind die Mails zwar im SpamPD, aber dieser will die Mails ja auch wieder an den Postfix bringen (der kümmert sich ja um die Auslieferung an das Ziel). Dafür braucht man folgende Regel in der /etc/postfix/master.cf:
localhost:10026 inet n - n - - smtpd
-o content_filter=
-o myhostname=nospam.stefan-betz.net
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks=127.0.0.0/8
-o smtpd_client_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_client_restrictions=
-o local_recipient_maps=
sudo /etc/init.d/postfix restart
Die Konfiguration von SpamAssassin kann man dann über die /etc/spampd.conf machen welche bei mir so aussieht:
use_bayes 1
bayes_path /var/cache/spampd/bayes
bayes_auto_learn 0
report_safe 0