Project

General

Profile

Actions

action #97775

closed

Postfix Setup erweitern - Relay-by-Sender / Fallback-Relay

Added by flacco over 3 years ago. Updated 11 months ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Feature
Target version:
Start date:
2021-08-31
Due date:
2021-10-31
% Done:

80%

Estimated time:

Description

Beim Mailversand eines invis-Servers läuft der gesamte augehende Mailverkehr über einen definierten Relay-Host. Das stellt solange kein Problem dar wie der Relayhost für den Versand von Mails der enthaltenen Absende-Domain sendeberechtigt ist (SPF).

Ist das nicht der Fall und auf Empfänger-Seite wird eine SPF-Prüfung gemacht, werden Mails nicht zugestellt.

Konkretes Beispiel. Eine Kundin hat ihre Haupt-Mailadressen bei der Telekom, ergänzend aber auch Mailadressen anderer Domains. Versendet wird über einen kostenpflichtigen Smarthost der Telekom, der den Versand von Mails fremder Domains erlaubt (securesmtprelay.t-online.de). Natürlich hat er keine entsprechenden SPF-Einträge. Prüft jetzt der MX auf Empfängerseite bei Maileingang die SPF-Einträge, verweigert er zu recht die Annahme.

Als Lösungsweg für das Problem können bedingte Transportwege für Postfix konfiguriert werden. D.h. Wenn Absender gleich *@domain-x.de, dann versand via Transportweg sowieso. In den verschiedenen Transport-Definitionen können dann alternative Relay-Hosts verwendet werden.


Related issues 1 (0 open1 closed)

Related to invisAD-setup - action #98042: Release invis-Server 14.3Closedflacco2021-09-032024-05-31

Actions
Actions #1

Updated by flacco over 3 years ago

  • Status changed from New to In Progress
  • % Done changed from 0 to 10
Actions #2

Updated by flacco over 3 years ago

Möglicher Ansatz ist die Kombi aus:

sender_dependent_relayhost_maps =
&
smtp_fallback_relay

Das ganze ließe sich auch direkt mit Daten aus dem LDAP füttern, damit könnte man für jedes externe Email-Konto gezielt den passenden Relayhost wählen. Setzt aber voraus, dass wir in Cornaz auch den Postausgangsserver abfragen und ins AD packen.

Actions #3

Updated by flacco over 3 years ago

  • % Done changed from 10 to 20

Erste Erfolge:

Postfix main.cf:

## Abweichende Transportwege - Sender-Abhaengig
smtp_sender_dependent_authentication = yes
sender_dependent_relayhost_maps = texthash:/etc/postfix/alt-transport

/etc/postfix/alt-transport (Datei bekommt noch einen passenderen Namen)

heini@hilibilidili.de                   [mail.haus-drachen.de]:587
heinz@beckertec.de                      [mail1.fspisp.de]:587

Links die Absender-Adresse, rechts das Relay

Es müsste eigentlich auch funktionieren, wenn links nur die Absender-Domain steht, wird noch getestet.

In der sasl_passwd muss dann für jedes Relay ein Eintrag gemacht werden. Beispiel:

[mail1.fspisp.de]:587           stefan@startoss.de:passwort
[mail.haus-drachen.de]:587      heini@haus-drachen.de:passwort

Nächster Test: Fallback-Relay

Actions #4

Updated by flacco over 3 years ago

  • Category deleted (Feature)
  • Assignee deleted (flacco)
  • Target version deleted (Future)
  • % Done changed from 20 to 30
  1. Nur die Domain oder ein Ersetzungsmuster auf der linken Seite der Relay-Datei funktioniert nicht.
  2. Fallback-Relay funktioniert. Die Direktive greift auch dann, wenn vorherige Relay-Versuche fehlschlagen.

main.cf Ergänzung:

smtp_fallback_relay = [mail1.fspisp.de]:587

Für dieses Setup sollte/muss die Direktive "relayhost" leer sein:

relayhost = 
Actions #5

Updated by flacco over 3 years ago

  • Category set to Feature
  • Target version set to Future
Actions #6

Updated by flacco over 3 years ago

  • Assignee set to flacco
Actions #7

Updated by flacco over 3 years ago

Weitere Erkenntnisse:

  1. Die Direktive "relayhost =" muss nicht leer sein, die alternativen Sender-abhängigen Relays haben Vorrang.
  2. Es ist doch möglich als Absender lediglich die Domain in der Relayhost-Map anzugeben, allerdings in der Form "@domain.tld", ohne Sternchen davor.
  3. Ein Fallback-Relay anzugeben ist so oder so kein Schaden. Wird hier der gleiche Host wie bei der einfachen Relayhost-Direktive angegeben erfolgen im Fehlerfall zwei erfolglose Zustellversuche. Praktischerweise kann natürlich auch ein vom Standard ein alternativer Relayhost angegeben werden.

Ich baue das jetzt mal in die Postfix-Konfigurationsvorlagen ein.

Actions #8

Updated by flacco over 3 years ago

  • % Done changed from 30 to 40

Mit dem derzeitigen Setup werden für Relayhost und Fallback-Relay die selben Einträge vorgenommen. D.h. Relayhost = Fallback-Relay.

Im nächsten Schritt kann das Setup so angepasst werden, dass optional ein abweichendes Fallback-Relay definiert werden kann. Dafür müssen die Module "quest" und "mailserver" angepasst werden. Ich schau mir das mal an.

Actions #9

Updated by flacco over 3 years ago

  • Subject changed from Postfix setup erweitern to Postfix Setup erweitern - Relay-by-Sender / Fallback-Relay
  • Target version changed from Future to 14.3
  • % Done changed from 40 to 80

Ich lege jetzt einfach mal fest, dass ich den Status Quo so fest mache und als Ergänzung für 14.3 definiere.

Im zweiten Schritt -> Zielversion "Future" können wir daran arbeiten die Postfach-Informationen aus dem AD als Quelle für die Rely-by-Sender Map zu nutzen.

Actions #10

Updated by flacco over 3 years ago

Actions #11

Updated by flacco over 3 years ago

  • Priority changed from High to Normal
Actions #12

Updated by flacco about 1 year ago

  • Status changed from In Progress to Workable

Ist jetzt wichtig geworden, da IONOS (1und1) relay-by-sender ab 2024 fordert.

Actions #13

Updated by flacco 12 months ago

  • Status changed from Workable to In Progress

flacco wrote in #note-3:

In der sasl_passwd muss dann für jedes Relay ein Eintrag gemacht werden. Beispiel:

[mail1.fspisp.de]:587           stefan@startoss.de:passwort
[mail.haus-drachen.de]:587      heini@haus-drachen.de:passwort

Der oben gezeigte Ausschnitt aus der sasl_passwd funktioniert nur, wenn es sich wirklich um unterschiedliche Smart-Hosts (relayhosts) handelt. Werden alle Mails über den gleichen Server versendet, steht links immer das gleiche und Postfix schnappt sich den ersten Treffer, verwendet also immer die gleichen Zugangsdaten. Ergo: System ausgehebelt.

In diesem Fall muss auf der linken Seite nicht der Smarthost stehen, sondern die Absende-Adresse. Der Smarthost wird dann aus der relay-by-sender ermittelt.

Actions #14

Updated by flacco 11 months ago

  • Status changed from In Progress to Closed

Erledigt. Funktioniert in der Praxis

Actions

Also available in: Atom PDF