💾 Archived View for data.konfusator.de › 2024-03-21_exim_zu_ionos.gmi captured on 2024-06-16 at 12:02:11. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2024-05-10)
-=-=-=-=-=-=-
Aus historischen Gründen ist Ionos der MX für meine Mails und ebenfalls aus historischen Gründen liefere ich im Heimnetz meine Mail bei einem lokalen Exim ab. Direktes Versenden der Mail ist schon seit Jahren komplett unrealistisch, so dass mein Exim schon sehr lange authentifiziert eingeliefert hat. Nun hat sich ionos vor einer Weile entschlossen, DKIM zu machen. Dabei wollen sie, dass der authentifizierte Benutzer zur gleichen Domain wie der Mailabsender gehört – bei DKIM eine gute Idee. Da ich aber bisher verschiedene Domains mit dem gleichen User ageliefert hatte, musste ich handeln.
Die Lösung war – nach längeren Nachdenken – relativ einfach:
Ein Exim-Router, der so aussieht:
generic_sbr: driver = manualroute domains = !+local_domains transport = remote_auth_smtp route_data = ${lookup{$sender_address_domain}lsearch{/etc/exim4/sbr_data}}
Dabei haben die sbr_data die Form
domain1: server1 domain2: server2 domain3: server1 …
Wenn eine Domain nicht in sbr_data steht wird der nächste Router probiert.
Der Transport ist
remote_auth_smtp: driver = smtp port = 587 hosts_require_auth = * hosts_require_tls = *
und der Clou steckt im Authenticator:
plain: driver = plaintext public_name = PLAIN client_send = ${lookup{$sender_address_domain}lsearch{/etc/exim4/clientauth.secrets}} client_set_id = ${listextract{2}{<^ ${lookup{$sender_address_domain}lsearch{/etc/exim4/clientauth.secrets}}}}
wobei die Datei clientauth.secrets die Form
domain1: ^user@domain1^PASSWD domain2: ^user@domain2^PASSWD …
hat. Was wirklich Arbeit gekostet hat ist die etwas wirre String expansion für client_set_id – aber damit wird das Log besser. Es ist schon faszinierend – man findet für wirklich abseitige Setups Lösungen im Exim.
════════════════════════
2024-03-21T23:11+01:00