Archiv der Kategorie: Linux Howto Tutorials

GNU/Linux Howto’s and Tutorials unblog technical contribution for professionals

Postfix E-Mail Weiterleitung zu Gmail

E-Mails mit Postfix (MTA) Mail Transfer Agent über Gmail Relayhost senden

Tutorial für eine Postfix Konfiguration, um E-Mails mit Postfix (MTA) Mail Transfer Agent über ein Google Mail Relayhost zu versenden. Die E-Mails werden dabei über ein Google Mailkonto ausgeliefert, die Clients im lokalen Netzwerk nutzen Postfix als lokalen SMTP-Gateway. In Situationen bei diesen zum Beispiel Mutlifunktionsgeräte, oder Programme diese die Authentifizierung über Mail Submission und STARTTLS (Port 587) nicht unterstützen, können so über den lokalen Postfix Mailserver E-Mails versenden, ohne das eine Anmeldung am Mailserver erforderlich wäre.

Bei einem CentOS 7 Linux werden hierzu die erforderlichen Pakete als root installiert.

Auf einem Debian und Ubuntu ist die Paket installation wie folgt.

Die Postfix Konfiguration ist zu editieren mit öffnen der Datei /etc/postfix/main.cf

Bei mynetworks die lokalen Netzwerke eintragen. Als myhostname den im Internet auflösbaren PTR Resource Record, für die Ermittlung des PTR Eintrages, kann der folgende Befehl im Terminal ausgeführt werden, wie in folgendem Beispiel, oder aber hier.

Als nächstes wird eine Datei /etc/postfix/sasl_passwd mit folgendem Inhalt erstellt.

Anstelle von mein@gmail.com das eigene Google Mailkonto einsetzen, bei password das Google Kennwort.

Mit postmap die Datei sasl_passwd als Berkeley DB erstellen.

TIP: postmap nach jeder änderung ausführen.

Nun wird Postfix neu gestartet um die Konfiguration zu aktivieren.

Die Postfix Konfiguration testen, mit dieser Zeile im Terminal.

Als mein@gmail.com die gültige Gmail Adresse, und bei andere@domain.com eine gültige Empfänger E-Mail angeben.

Hinweis! Dieses Google-Konto erfordert deaktivierte Einstellungen unter Sicherheit – Bei Google anmelden – geht man zu Sicherheit
Bestätigung in zwei Schritten Aus, und der Zugriff auf das Google-Konto bei Zugriff durch weniger sichere Apps muss An sein.

Postfix protokolliert mit syslog in der Logdatei /var/log/maillog in dieser man sich vergwewissern kann, ob die E-Mail versendet und von smtp.gmail.com angenommen wurde.

Mit mailq die Queue auf allfällige abgelehnte Mails überprüfen.

Sind in maillog Fehler bei der authentifizierung zu finden, müssen die Google-Konto Sicherheitseinstellungen überprüft werden.

TIP: Es kann passieren das nach mehreren Sendeversuche, sich dann abgewiesene (bounced) Mails in der Queue befinden, diese man wieder aus der Queue löschen kann.

Postfix Weiterleitung zu Office 365

E-Mails mit Postfix (MTA) Mail Transfer Agent über Office 365 Relayhost senden

Tutorial dieses die Postfix Konfiguration beschreibt, wie E-Mails mit Postfix (MTA) Mail Transfer Agent über ein Office 365 Relayhost versendet werden. Die E-Mails werden über ein Office 365 E-Mailkonto ausgeliefert, die Clients im lokalen Netzwerk nutzen dabei Postfix als lokalen SMTP-Gateway. In Umgebungen wo beispielsweise Mutlifunktionsgeräte, oder Applikationen welche die Authentifizierung über Mail Submission und STARTTLS (Port 587) nicht unterstützen, können über den lokalen Postfix Mailserver versenden, ohne das diese sich am Mailserver anmelden müssen.

Auf einem CentOS 7 Linux Host werden dazu die folgenden Pakete als root bereitgestellt.

Bei Debian basierten Linux geht die Paket bereitstellung wie folgt.

Die Postfix Konfiguration editieren der Datei /etc/postfix/main.cf

Bei mynetworks das lokale Netzwerk eintragen. Als myhostname den im Internet auflösbaren PTR Resource Record anwenden, um herauszufinden wie die Public IP und der dazugehörende PTR Eintrag ist, folgendes Command in der bash ausführen, oder hier.

Als nächstes wird eine Datei /etc/postfix/sasl_passwd erstellt.

Anstelle von meinemail@domain.com ist das eigene Office 365 Mailkonto einzusetzen, bei password das entsprechende Kennwort.

Die Datei sasl_passwd zur Berkeley DB erzeugen mit postmap.

TIP: postmap muss man nach jeder änderung ausführen.

Nun wird Postfix neu gestartet um die Konfiguration zu aktivieren.

Zuletzt wird die Postfix Konfiguration getestet, mit einer mail aus der bash.

Bei meinemail@domain.com die Office 365 Mailadresse, und bei andere@domain.com eine gültige Empfänger E-Mail angeben.

Die Mail-Logdatei und die queue untersuchen um sich zu vergewissern, ob die E-Mail auch tatsächlich versendet wurde und von smtp.office365.com angenommen wurde.

TIP: Es gibt weitere Möglichkeiten Ausgaben an mail zu übergeben, zum Beispiel kann das Resultat der PTR Recource Record Abfrage als Argument an mail übergeben und gesendet werden.

Sender Policy Framework

Sender Policy Framework und Postfix

Mailserver (MTA) benötigen neben einem A Record, dem MX und dem PTR Eintrag, zusätzlich auch einen SPF-Datensatz im DNS.

Was sind SPF-Records

SPF (Sender Policy Framework) ist ein Verfahren zur Sender-Authentifizierung. SPF ist wie DKIM ein Datensatz vom Typ TXT des DNS, die dazu beitragen sollen, E-Mail-Spoofing zu verhindern und bei der Zustellung der eigenen E-Mails diese als legitim zu identifizieren. Auch soll verhindert werden das E-Mails beim Empfänger nicht im Junk-Mail-Ordner landen. Wenn eine Domain durch E-Mail-Spoofing missbraucht wird, landen die E-Mails wahrscheinlich im Spam-Ordner des Empfängers.

Der SPF-Record gibt an, welche Hosts oder IP-Adressen E-Mails im Namen einer Domain senden dürfen. Sie sollten nur dem eigenen Mailserver oder dem Server des Internetdienstanbieters erlauben, E-Mails für diese Domain zu senden.

SPF-Datensatz im DNS Erstellen

Ein SPF-Record ist ein DNS-Eintrag der zur DNS-Zone einer Domain hinzugefügt wird. Der SPF-Eintrag in einer DNS-Zone kann wie folgt aussehen:

Bei der Domain-Verwaltung eines Internet-Webhosting Anbieter kann dies dann etwa wie folgt aussehen.

  • TXT zeigt an, dass dies ein TXT-Datensatz ist.
  • v=spf1 gibt an, dass dies ein SPF-Datensatz ist und die SPF-Datensatzversion SPF1 ist.
  • mx bedeutet, dass alle in den MX-Datensätzen aufgeführten Hosts E-Mails für die Domain senden dürfen, alle anderen Hosts sind nicht zugelassen.
  • ~all gibt an, dass E-Mails dieser Domain nur von Hosts stammen sollen, die im SPF-Datensatz angegeben sind. Von anderen Hosts gesendete E-Mails werden als gefälscht gekennzeichnet. Mögliche Alternativen sind +all, -all, ?all, diese jedoch selten verwendet werden.

Um zu überprüfen das der SPF-Record im öffentlichen Internet aufgelöst wird, ist das Dienstprogramm dig auf dem Linux Host wie folgt zur Abfrage anzuwenden:

An einem Windows Computer kann nslookup in einer Eingabeaufforderung (cmd) ausgeführt werden, die Änderung kann je nach TTL eine Verzögerung haben:

In der PowerShell dient Resolve-DnsName mit folgendem Befehl:

Es können auch Online SPF-Validator wie mxtoolbox verwendet werden, um zu überprüfen welche Hosts die E-Mails der eigenen Domain senden dürfen.

Postfix SPF Policy Agent pypolicyd-spf

Wir benötigen für unseren Postfix SMTP-Server noch die Anweisung, den SPF-Datensatz eingehender E-Mails zu überprüfen, um gefälschte E-Mails zu erkennen. Installiere hierzu als root das Paket pypolicyd-spf aus dem EPEL-Repository:

Füge dann einen Benutzer für Policyd-SPF hinzu:

Bearbeite nun die Postfix-Master-Konfigurationsdatei master.cf:

Füge die Zeilen am Ende der Datei master.cf hinzu, hierdurch wird Postfix angewiesen den SPF-Richtliniendämon zu starten. Policyd-SPF wird als Benutzer policyd-spf ausgeführt.

  Policyd-SPF sollte nicht in einer chroot-Umgebung ausgeführt werden.

Speichere und schliesse nun die Datei. Bearbeite als Nächstes die Postfix-Hauptkonfigurationsdatei main.cf:

Die Zeile mit policyd-spf sollte nach reject_unauth_destination zu stehen kommen. Speichere anschlissend die Datei und starte dann Postfix neu:

Wenn jetzt das nächste Mal eine E-Mail von deiner Domain mit einem SPF-Record empfangen wird, werden die SPF-Prüfergebnisse im raw E-Mail-Header angezeigt. Der folgende Header gibt an, dass der Absender der E-Mail von einem autorisierten Host gesendet wurde.

Postfix protokolliert mit syslog die SPF-Prüfergebnisse in maillog in etwa wie folgt.