action #97775
closedPostfix Setup erweitern - Relay-by-Sender / Fallback-Relay
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.
Updated by flacco over 3 years ago
- Status changed from New to In Progress
- % Done changed from 0 to 10
Hier schon mal Hintergrundinfos:
https://www.linuxbabe.com/mail-server/postfix-transport-map-relay-map-flexible-email-delivery
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.
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
Updated by flacco over 3 years ago
- Category deleted (
Feature) - Assignee deleted (
flacco) - Target version deleted (
Future) - % Done changed from 20 to 30
- Nur die Domain oder ein Ersetzungsmuster auf der linken Seite der Relay-Datei funktioniert nicht.
- 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 =
Updated by flacco over 3 years ago
- Category set to Feature
- Target version set to Future
Updated by flacco over 3 years ago
Weitere Erkenntnisse:
- Die Direktive "relayhost =" muss nicht leer sein, die alternativen Sender-abhängigen Relays haben Vorrang.
- Es ist doch möglich als Absender lediglich die Domain in der Relayhost-Map anzugeben, allerdings in der Form "@domain.tld", ohne Sternchen davor.
- 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.
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.
Updated by flacco about 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.
Updated by flacco about 3 years ago
- Related to action #98042: Release invis-Server 14.3 added
Updated by flacco 11 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.