Postfix und SpamPD
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 spamcgenügt vollkommen. Wer will kann natürlich noch zusätzliche Filter für SpamAssassin installieren.
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 - - - - smtpdso ändern:
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=Dann noch ein kleiner Neustart von Postfix mit
sudo /etc/init.d/postfix restartund alles wird gut.
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 0Natürlich gibt es hier noch jede Menge Raum für Optimierungen ;-)
Ich benutze sehr gerne AMaViS, da gibt es unheimlich viele Möglichkeiten zum Einstellen. Benötigt leider etwas Einarbeitungszeit, aber rockt nachher einfach und ich für komplexere Mail-Setups durchaus zu empfehlen.
Kommentar von Someone — 28.04.2009 18:40:49 | # - re
Das Problem bei Amavis is halt, dass die Mail erst angenommen werden muss und nicht wie bei spampd direkt per REJECT abgelehnt werden kann - ich verwende daher beide: Per spampd weise ich alle Mails mit einem spam-level > 9 zurück und Amavis legt mir dann alle > 4.5 ins Spamkörbchen zur Nachinspektion. So hab ich in der Woche etwa 1 Dutzend Mails zu kontrollieren, das ist ok..
Kommentar von sanchix — 30.05.2010 14:41:54 | # - re