E-Mail-Spam mit Postfix und Realtime Blacklists (RBL) eindämmen
sk, den 8. Mai 2014E-Mail-Spam ist ärgerlich, doch wer einen eigenen (V)Server hat, kann etwas dagegen tun. Wir möchten euch ein paar Tipps auf den Weg geben, wie man Spam schon bei Postfix eindämmt, sodass er gar nicht mehr zugestellt wird.
Wie kann man Spam möglichst im Keim ersticken? Ungewollte E-Mails nicht nachträglich per Spamfilter aussortieren, sondern direkt bei der Zustellung entsorgen, können alle, die einen eigenen Webserver besitzen, oder auch einen Virtual Server. Das Tool, das wir dazu nutzen heißt Postfix und bietet eine Menge Optionen an.
Wo eintragen?
Wer einen eigenen (V)Server hat und Postfix verwendet, wird mit Admin-Rechten unter /etc/postfix/main.cf
fündig. Hier sind besonders die Parameter smtp_*_restrictions
interessant. Welche es davon gibt und wofür sie zuständig sind, ist der Dokumentation von Postfix zu entnehmen.
Blockieren von Spam-Absendern
Eine Variante, die bereits viele Quellen von Spam abdeckt, sind sog. Realtime Blacklists (RBL). Diese bestehen aus einer Datenbank mit IP-Adressen oder IP-Adressbereichen, die entweder keine E-Mails verschicken sollten (z. B. bekannte DSL-Provider) oder schon wegen des Versands von Spam aufgefallen sind (z. B. gehackte Server). Wenn ein Benutzer eine E-Mail via Webmailer oder E-Mail-Programm verschickt, stammt die E-Mail für den Zielserver dennoch von der IP des E-Mail-Anbieters und nicht von der IP des Anwenders – deshalb dürfen DSL-Zugänge problemlos gesperrt werden. Wenn sie dennoch Mails verschicken, ist ein SMTP-Server installiert und das passiert in der Regel allenfalls bei gekaperten Zombie-Rechnern, um Spam zu verschicken. Ausnahmen wären Nutzer, die auf ihrem NAS einen Mailserver installieren. Bei ihnen ist die Gefahr groß, dass sie trotzdem auf den Spamlisten landen, in der Realität ist die Zahl dieser User aber sehr klein.
RBLs in die Config
Wir haben uns für den Abschnitt smtpd_client_restrictions
entschieden, um herauszufinden, ob eine IP für Spam bekannt ist oder nicht. Weiterhin greift unser Postfix auf die Datenbanken von Spamhaus.org, SpamCop.net, Sorbs.net und AbuseAt.org zu, um zu überprüfen, ob die Mail direkt abgewiesen wird oder weiter gefiltert wird. Dafür muss also die Option smtpd_client_restrictions
um folgende Parameter erweitert werden:
reject_rbl_client zen.spamhaus.org, reject_rbl_client bl.spamcop.net, reject_rbl_client dul.dnsbl.sorbs.net, reject_rbl_client cbl.abuseat.org
In unserer Installation sind das die letzten Zeilen, weshalb das Komma am Ende entfällt.
Wirkungsvoll, aber ungeeignet: Reject Unknown Client Hostname
Eine Trefferquote von über 100% hat die Verwendung von RBL im Zusammenhang mit reject_unknown_client_hostname
. Das bedeutet, alle Mails, die durchgekommen sind, waren kein Spam. Anders herum wurden jedoch auch viele Mails geschluckt, die eigentlich kein Spam sind. Das liegt daran, dass die IP, über die die E-Mail verschickt wurde, nicht zur Domain, von der sie vermeintlich verschickt wurde, auflöst. Es gab in unseren Tests sehr viele prominente „Opfer“, die Dank dieser Option rausgefiltert wurden, so zum Beispiel der Mailserver von Lieferheld, aber auch großer Presseagenturen.
Man möchte den Administratoren der Anbieter nichts unterstellen. Doch dieses Problem ließe sich umgehen, indem sie einen RDNS-Eintrag für den Mailserver einrichten, der die IP zur korrekten Domain auflöst. Dann würde der Spam ausgefiltert und die echten Mails kämen durch. Da aber super viele Administratoren dies nicht korrekt einhalten, ist von der Verwendung von reject_unknown_client_hostname
abzuraten, da dadurch viel zu viele normale E-Mails vom Mailserver abgewiesen werden.
Anschließend: Postfix neu starten
Nachdem die Änderungen in /etc/postfix/main.cf
eingetragen wurden, muss Postfix neu gestartet werden, um die Änderungen wirksam werden zu lassen. Unter Debian(-basierten Linux-Distributionen) lautet der Befehl dafür: /etc/init.d/postfix restart
.
Weiterhin sollte unbedingt getestet werden, ob Versand und Empfang von E-Mails nach der Änderung noch funktionieren – andernfalls müssen die Logfiles überprüft werden. Es bietet sich hierbei an, mit einer E-Mail-Adresse eines anderen Anbieters zu testen.