Benutzer-Werkzeuge

Action disabled: source

Absenderbasiertes Relaying mit Postfix

Hintergrund

Viele Benutzer der Mailstation wollen diese als zentralen Emailgateway für's LAN verwenden. Dabei stellen sich v.a. bei der Verwendung einer dynamischen externen IP Adresse einige Probleme und Unwägbarkeiten. Das Problem bei dynamischen Absenderadressen ist es, dass sie von vielen Antispamlösungen auf Mailservern als Kriterium für Spam erkannt werden. Dazu werden Listen eingesetzt, die die IP-Blöcke aller dynamischen Adressen weltweit enthalten.

Es ist jetzt von Provider zu Provider unterschiedlich wie diese Listen eingesetzt werden: So gibt es Provider die dynamische IP Adressen als alleiniges Kriterium verwenden oder solche die eine ganze Armada von Listen und Scannern einsetzen. Die Email kann an verschiedenen Stellen auf der Empfangsseite geblockt bzw. als Spam markiert werden.

Der einfachste Fall ist es wenn der SMTP Server der Gegenseite den Empfang der Email ablehnt und damit eine Fehlermeldung an den Sender schickt. Problematisch wird es dann wenn der Server die Email akzeptiert hat, eine dahintergeschaltete Software die Email aber verwirft. Dabei erhält der Absender keinerlei Information, dass die Email nicht zugestellt werden konnte. Ich persönlich setze daher die Liste mit dynamischen IP Adressen direkt auf dem Postfix auf. Damit stelle ich sicher, dass der SMTP Dialog eine Fehlermeldung an den Client bei dynamischen Adressen sendet.

Es gibt verschiedene Ansätze die man beim Versenden von Emails von der DS verwenden kann, um die „Spamgefahr“ zu senken. Der einfachste Weg ist es den Postfix Server anzuweisen externe Relay Server zum Versenden der Emails zu nutzen. Dabei wird sichergestellt, dass die Email via eine fixe IP Adresse verschickt wird, was das Risiko mindert, dass eine Email fälschlicherweise als Spam erkannt wird.

Der zweite - schwierigere - Weg ist es die Emails direkt an die Empfangsserver zuzustellen. Dabei besteht aber das Risiko, dass je nach Provider der Empfang der Emails verweigert resp die Email als Spam markiert wird. Wenn man die Emails direkt zustellen möchte, dann sollte man seine IP Adresse auf einer Seite wie z.B. rbl-check.org prüfen. Dann sollte man probieren bei jeder Liste wo die IP auftaucht via deren Webseite die Austragung der IP zu beantragen. Erst dann hat man eine realistische Chance Emails direkt (direct-MX) zu versenden.

Beispiele von Seiten zur Prüfung der IP

Hier soll es aber um die Relay-Lösung gehen, weil sie eigentlich immer und ohne grösseren Aufwand klappt.

Konfiguration

Es gibt für den Postfix mehrere Möglichkeite Emails via Relay zu versenden: Einmal die Möglichkeit alle Emails über den gleichen Relay zu schicken oder pro User der Absenderdomain einen Relay Server zu benutzen. Weitergehende Infos kannst du hier finden.

Wichtig

Damit der Postfix solche Dateien auch lesen kann müssen diese mittels einem speziellen postfix-Kommando in die entsprechende Form gebracht werden

# Konvertieren des Files
/usr/syno/mailstation/sbin/postmap /path/to/file.ext
# Neueinlesen der Files
/usr/syno/mailstation/sbin/postfix reload

Alle Emails über den gleichen Server

Dazu muss man in der main.cf folgende Variabeln setzen

relayhost

Hier könnt ihr den globalen Relay Server angeben. Wenn ihr hier eine Angabe macht, dann gilt das für alle Emails die nach extern verschickt werden

relayhost = mail.isp.tld
relayhost = mail.isp.tld:submission
relayhost = [mail.isp.tld]
relayhost = [mail.isp.tld]:submission

Die obigen 4 Beispiele zeigen die unterschiedlichen Möglichkeiten der Notation.

  1. Die Email wird an den MX-Host im DNS von mail.isp.tld auf Port 25 verschickt
  2. Die Email wird an den MX-Host im DNS von mail.isp.tld auf Port 587 verschickt
  3. Die Email wird an die IP der DNS Abfrage nach mail.isp.tld auf Port 25 verschickt
  4. Die Email wird an die IP der DNS Abfrage nach mail.isp.tld auf Port 587 verschickt
smtp_sasl_password_maps = hash:/usr/syno/mailstation/etc/sasl_passwd

Hier wird die Datei angegeben, die die Userdaten für die einzelnen Relayserver enthält. Diese Datei muss von root angelegt werden und nach dem Eintragen der Daten mittels postmap und postfix reload konvertiert und in Postfix eingebunden werden.

#sasl_passwd
mail.isp.tld      user@isp.tld:secret
smtp_sasl_security_options = noanonymous
smtp_sasl_auth_enable = yes

Damit wird die sasl Authentifizierung aktiviert

smtp_use_tls = yes
smtp_tls_enforce_peername = no

Zur Sicherheit sollte der SMTP Client von Postfix beim Senden der Emails an externe Relayserver eine sichere Verbindung aufbauen. Passworte werden sonst im Klartext an die Server übermittelt

Pro User der Absenderdomain einen eigenen Relay Server

Diese Methode ermöglicht es, mehreren Benutzern den gleichen Relay Server zu benutzen, aber mit unterschiedlichen Benutzernamen und Passworten.

smtp_sasl_password_maps = hash:/usr/syno/mailstation/etc/sasl_passwd
sender_dependent_relayhost_maps = hash:/usr/syno/mailstation/etc/sender_relay
smtp_use_tls = yes
smtp_tls_enforce_peername = no
smtp_sasl_security_options = noanonymous

In dieser Datei werden die Absenderadressen einem Relay Host zugewiesen

#sender_relay
user@isp.tld   mail.isp.tld
foo@isp.tld    mail.isp.tld

#sasl_passwd
user@isp.tld   user@isp.tld:secret
foo@isp.tld    foo@isp.tld:totalSecret
smtp_sender_dependent_authentication = yes

Diese Variable aktiviert die Sender-basierte Authentifizierung bei externen Mailservern. Dann die beiden Dateien mit postmap bearbeiten

/usr/syno/mailstation/sbin/postmap /usr/syno/mailstation/etc/sasl_passwd
/usr/syno/mailstation/sbin/postmap /usr/syno/mailstation/etc/sender_relay
Melden Sie sich an, um einen Kommentar zu erstellen.

Seiten-Werkzeuge