Gegen Spam: Postfix + SPF (Sender Policy Framework)

Seit ein paar Wochen (?) hat sich in meinen selbstgehosteten Mailboxen das Spamaufkommen rapide gesteigert und zwar dummerweise durch meinen eigenen Mailserver. Abgesehen von den aktuellen Weihnachtsspammails bekomme ich eine Reihe von Mails mit meinen eigenen Adressen im Absender. Dämlicher geht’s eigentlich nicht, aber es hat den nachteiligen Effekt, dass die Mails erst gar nicht durchkommen, sondern vorher ungültig (BAD_HEADER etc) aussortiert werden. Da ich selbst der vermeintliche Absender bin, schickt mir mein Server aber eine Nachricht (“nondelivery report”), dass “meine” Email nicht zu gestellt werden konnte.

Da das tierisch nervt, habe ich meinen Server nun mittels der so genannten “Sender Policy Framework“-Technik (kurz SPF) erweitert. SPF wird zwar relativ kritisch betrachtet, aber in meinem Fall stellt die Kritik kein Problem dar, da ich ja mein eigener Anbieter bin. Zu beachte ist, dass SPF eigentlich nicht gegen Spam, sondern gegen Adressfälschung gedacht ist.

Die Idee bei SPF ist, dass der Server bei einer eingehenden Email wie mail@example.org den Mailserver example.org fragt, ob die IP des einliefernden Mailservers dazu überhaupt authorisiert ist. Dazu wird ein entsprechender DNS-Eintrag überprüft. Wenn die IP ok ist (oder keine SPF-Infos vorhanden sind), wird die Email normal weiter verarbeitet. Liegt ein Missbrauch vor, wird die Email abgewiesen. Auch diverse Emailanbieter wie z.B. GMX setzen auf SPF. Ob dein Mailanbieter auf SPF setzt, kannst du überprüfen, indem du den TXT-Record der Maildomain abfragst.

Den SPF-Eintrag für meine Domains hatte ich schon vor einer Weile angelegt, nun musste ich meinen eigenen Mailserver (Postfix) noch die Kontrolle beibringen. Praktischerweise gibt es da bereits ein passendes Debianpaket, was ich einfach mit ein paar Abhängigkeiten via

Installation mit Debian
  1. apt-get install postfix-policyd-spf-perl

installieren konnte. Dann noch schnell Postfix passend konfigurieren. Eine fluxe Anleitung liefert HowtoForge. Zu beachten ist, dass man tunlichst auf den genauen Pfad für die policy in der master.cf achten sollte. Da ich keine Ahnung hatte, wo das Skript gelandet war, hab ich auch gleich apt-file zum Suchen installiert. ;)

Bei meinem Debian sieht das nun so aus:

master.cf
  1. policy  unix  -       n       n       –       –       spawn
  2.         user=nobody argv=/usr/sbin/postfix-policyd-spf-perl

Nachdem ich mein Pfadproblem gelöst hatte, ging es auch gleich los. Nach kurzer Zeit waren die ersten Erfolge im Log zu finden:

mail.log:
Jun 13 18:28:41 server postfix/policy-spf[8620]: : SPF fail (Mechanism ‘-all’ matched): Envelope-from: awotwiackart@warhammerportal.de.
Jun 13 18:28:41 server postfix/policy-spf[8620]: handler sender_policy_framework: is decisive..
Jun 13 18:28:41 server postfix/policy-spf[8620]: : Policy action=550 Please see http://www.openspf.org/Why?…

Take this evil spam scumback!

Auch wenn es für die Allgemeinheit nicht so viel bringt… mein persönlicher Frieden ist erstmal wieder gesichert. Immerhin wurden in den letzten vier Stunden schon 71 Emails abgewiesen. :)

chkrootkit false positive

Um ein halbes Auge auf meinen Server zu haben, läuft das kleine Programm chkrootkit einmal am Tag über die Platte und sucht nach suspekten Dateien etc. Nun bekomm ich deswegen einmal am Tag einen Hinweis, dass die suspekte Datei “/lib/init/rw/.ramfs” vorliegt. Dummerweise ist die Datei alles andere als suspekt und gehört dahin. Nun streiten sich die zuständigen Parteien darüber, wer nun den “Fehler” gemacht hat und der Bug wird von A nach B und zurück geschoben. Als “Endnutzer” kann man da nichts machen, außer genervt sein oder selbst Hand anlegen (Danke für den Patch!).

Vergessene Mails

Auf meinem Webserver läuft ein Postfix-Courier-Spamassassin-etc-System als Rundumsorglos-Mailserver. Es war ein ziemlich Krampf den am Anfang richtig einzurichten, aber irgendwann lief alles. Es gibt eine Reihe von virtuellen Mailadressen und einen lokalen Account, wo z.B. Cron- und Bouncemails landen. Nun geschah es vor einiger Zeit, dass durch eine Änderung in einem Debianpaket der lokale Account nicht mehr korrekt authentifiziert wurde. Einen Fehler konnte ich damals nicht finden und somit konnte ich nicht mehr die Mails abrufen. Nunja… manche Sachen vergisst man dann ja auch so… ;)

Heute kam ich auf die spontane Idee das nochmal zu versuchen. Also einfach bei dem Emailkonto auf “Mails abrufen” geklickt, Passwort eingegeben und siehe da… es läuft. Da hat wohl jemand den Fehler im schuldigen Paket inzwischen behoben. Dummerweise hatten sich über die Monate (?) ein paar Mails angesammelt, die ich dann erstmal aufräumen musste. Waren auch wirklich nur ein paar…