Postfix – Empfang verhindern, wenn Fake-Mails von meinen Domains eintreffen – smtpd_sender_restrictions

Immer wieder treffen Emails hier ein, die als Absender meine eigene Emailadresse haben, oder eben auch Emailadressen meiner User. Wie verhindert man das mit Postfix, und wie hilft uns smtpd_sender_restrictions dabei?

Lösungsansatz

Es gibt einige Wege, und auch Fallstricke. Dieser Weg hier ist zumindest einfach nachzuvollziehen. Dazu schauen wir uns die main.cf in /etc/postfix an.

Es gibt da die Zeile

mydestination: localhost, DomainA, DomainB

und es gibt die Zeile

mynetworks: 127.0.0.1 192.168.0.0/24

Die fett-geschriebenen Teile leiten die Zeile ein, der Inhalt dahinter kann bei dir anders aussehen.

mydestination ist eine Liste der Domains, für die sich dein Mailserver zuständig fühlt. mynetworks ist eine Liste von Netzwerken, denen dein Mailserver vertraut. Das können wir ausnutzen.

smtpd_sender_restrictions

Die Option smtpd_sender_restrictions entscheidet, welche Absender für ankommende Emails erlaubt sind. Wenn wir da ein permit_mynetworks reinschreiben, nehmen wir erst mal alle Emails an aus unseren eigenen Netzwerken. Gut so.

Nun erstellen wir eine neue Datei in /etc/postfix und nennen diese sender_owndomains. In diese Datei schreiben wir in jede Zeile eine unserer Domains aus mydestination. Dahinter sagen wir dem Postfix, was er tun soll, wenn er auf die Zeile trifft. REJECT lehnt das Entgegennehmen der Email ab. Wir können noch einen Fehlertext angeben. Unsere sender_owndomains im Beispiel sieht wie folgt aus

domainA REJECT Use your own domain
domainB REJECT Use your own domain

Auf der Shell führen wir das Kommando

postmap sender_owndomains

aus, damit erstellen wir eine für den Postfix lesbare „Datenbank“ aus unserer Textdatei.

Wir müssen nun noch dafür sorgen, dass die Änderung auch aktiv wird. Also ändern wir unsere main.cf wie folgt ab:

smtpd_sender_restrictions=permit_mynetworks,hash:/etc/postfix/sender_owndomains

Ein

service postfix restart

übernimmt die Änderungen. Ab jetzt werden alle Emails die nicht aus deinen Netzwerken kommen aber angeblich von deinen Domains kommen, mit einem „Use your own domain“ abgelehnt.

Die faule Kirsche

Klingt gut, aber wo ist der Haken? Nun, wenn du Dienste nutzt, die deine Emailadresse als Absender nutzen (z.B. Newsletterdienste) und dir von diesen Diensten Mails senden lässt, schlägt der Filter oben zu. Im Einzelfall kann ein Whitelisten der genutzten Adresse hilfreich sein. Wenn du deine Newsletter also als news@domainA versendest, dann füge an den Anfang deiner sender_owndomains folgendes hinzu:

news@domainA OK

Vergiß ein

postmap sender_owndomains

und ein

service postfix reload

nicht.

Was macht das? Diese Hashtables werden von oben nach unten, Zeile für Zeile abgearbeitet. Trifft eine Kondition zu, wird die Prüfung dieses Hashtables abgebrochen. Da dein OK über dem REJECT steht, passt es wieder und du kannst die Mails empfangen, obwohl ein Dritter deine Domain als Absender nutzt.

Und sonst ist das so OK?

Aktuell musst du die Liste deiner Domains zwei Mal pflegen. Einmal in mydestination, und auch in sender_owndomains. Ich suche noch nach einem Weg, das einfacher und damit weniger fehleranfällig zu gestalten. Ein reject_mydestination wäre die gesuchte Option.

Wenn Du dazu eine Idee hast, lass mir bitte einen Kommentar da.

Anmerkung zum Schluss

Aus meiner Sicht sollte solch eine Konfiguration der Standard jedes extern stehenden MX sein. Warum das in Postfix so umständlich zu konfigurieren ist, erschließt sich mir nicht.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

PS PHPCaptcha WP