Mail-Relay mit Postfix: Unterschied zwischen den Versionen

Aus
(Die Seite wurde neu angelegt: „== Absenderbasiertes Relaying mit Postfix == Absenderbasiertes Relaying ist etwas sehr feines bei Postfix und sorgt dafür, dass die Emails jeden Absenders über …“)
 
Zeile 79: Zeile 79:
==== Selektives Realying mit Postfix ====
==== Selektives Realying mit Postfix ====
===== Los geht's =====
===== Los geht's =====
Hier möchte ich schnell zeigen wie man es erreichen kann nur bestimmte Empängeradressen über einen Relay Server zu verschicken. Gerade wenn man als Absender eine dynamische IP hat, kann es sein, dass man zu gewissen Domains Emails direkt zustellen kann (direct-mx), zu anderen jedoch nicht (web.de wäre so ein Kanditat oder gmx bei aktiviertem Spamfilter mittels Blacklists). Jetzt könnte man alle Emails des Absenders (z.B. eure dynamische Domain) über den Relay Server verschicken, was aber schade ist wenn man sich die Mühe gemacht hat seine IP Adresse von den [[http://cqcounter.com/rbl_check/|vielen Listen]] zu entfernen.
Hier möchte ich schnell zeigen wie man es erreichen kann nur bestimmte Empängeradressen über einen Relay Server zu verschicken. Gerade wenn man als Absender eine dynamische IP hat, kann es sein, dass man zu gewissen Domains Emails direkt zustellen kann (direct-mx), zu anderen jedoch nicht (web.de wäre so ein Kanditat oder gmx bei aktiviertem Spamfilter mittels Blacklists). Jetzt könnte man alle Emails des Absenders (z.B. eure dynamische Domain) über den Relay Server verschicken, was aber schade ist wenn man sich die Mühe gemacht hat seine IP Adresse von den [http://cqcounter.com/rbl_check vielen Listen] zu entfernen.
 
===== transport =====
===== transport =====
Mittels transport kann man selektiv festlegen welche Empfängeradressen via Relay verschickt werden sollen. Der Rest geht dann immer noch direkt an die Empfangsserver (ich kriege gut 90% meiner Emails direct-mx an die Empfangsserver).
Mittels transport kann man selektiv festlegen welche Empfängeradressen via Relay verschickt werden sollen. Der Rest geht dann immer noch direkt an die Empfangsserver (ich kriege gut 90% meiner Emails direct-mx an die Empfangsserver).

Version vom 1. Mai 2010, 14:21 Uhr

Absenderbasiertes Relaying mit Postfix

Absenderbasiertes Relaying ist etwas sehr feines bei Postfix und sorgt dafür, dass die Emails jeden Absenders über den korrekten SMTP Server (SMTP Server des jeweiligen Emailanbieters z.B. gmx oder gmail) verschickt werden kann. Dazu gibt es die entsprechenden Infos bei postfix.org im Manual

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.

Alle Emails über den gleichen Server

Dazu muss man in der main.cf folgende Variabeln setzen

realy_host

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

relay_host = mail.isp.tld
relay_host = mail.isp.tld:submission
relay_host = [mail.isp.tld]
relay_host = [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:/opt/etc/postfix/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_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.

sender_dependent_relayhost_maps = hash:/opt/etc/postfix/sender_relay

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.

Selektives Realying mit Postfix

Los geht's

Hier möchte ich schnell zeigen wie man es erreichen kann nur bestimmte Empängeradressen über einen Relay Server zu verschicken. Gerade wenn man als Absender eine dynamische IP hat, kann es sein, dass man zu gewissen Domains Emails direkt zustellen kann (direct-mx), zu anderen jedoch nicht (web.de wäre so ein Kanditat oder gmx bei aktiviertem Spamfilter mittels Blacklists). Jetzt könnte man alle Emails des Absenders (z.B. eure dynamische Domain) über den Relay Server verschicken, was aber schade ist wenn man sich die Mühe gemacht hat seine IP Adresse von den vielen Listen zu entfernen.

transport

Mittels transport kann man selektiv festlegen welche Empfängeradressen via Relay verschickt werden sollen. Der Rest geht dann immer noch direkt an die Empfangsserver (ich kriege gut 90% meiner Emails direct-mx an die Empfangsserver). Dazu öffnet/erstellt eine Datei Namens transport (am besten im Postfix Verzeichnis) und tragt dort z.B.

web.de smtp:[meinProvider.tld]

ein. Danach müsst ihr diese Datei noch mittels postmap behandeln

/usr/syno/mailstation/sbin/postmap /usr/syno/mailstation/etc/transport

und noch den Eintrag in main.cf

#/usr/syno/mailstation/etc/main.cf
transport_maps = hash:/usr/syno/mailstation/etc/transport

und dann ein ein

/usr/syno/mailstation/sbin/postfix reload

danach sollten Emails an web.de Adressen via dem Mailserver Eures Providers verschickt werden.

Externe Authetifizierung

Wenn dieser Mailserver eine Auth verlangt könnt ihr wieder in der main.cf

smtp_sasl_password_maps = hash:/usr/syno/mailstation/etc/sasl_passwd

den Pfad zum sasl File festlegen. Dann diese Datei erstellen und einen Eintrag in der Art

[meinProvider.tld]      meinUser@meinProvidr.tld:meinPasswort

machen. Danach diese Datei wieder mit postmap behandeln und dann mit postfix reload den Postfix die Konfig Files neueinlesen lassen

Danach sollte der smtp Client des Postfix sich korrekt an Eurem Relayserver anmelden und die Email verschicken können

Links: