39. pepsi-stage-relay-to-smarthost

Leitet über einen konfigurierten vorgelagerten Smarthost weiter.

39.1. Rolle

pepsi-stage-relay-to-smarthost leitet Mail an einen konfigurierten vorgelagerten MTA (Smarthost) weiter, nach Empfängerdomain gewählt, statt MX-Hosts direkt zu kontaktieren. Es ist die andere austauschbare Zustell-Stage. Referenz: pepsi-stage-relay-to-smarthost(1).

39.2. Funktionen

39.2.1. Smarthost-Routing

  • Routet jede Empfängerdomain zu dem […-mta-<name>], dessen DOMAINS sie auflistet, oder zum einzelnen CATCH_ALL-MTA; eine Domain ohne passenden MTA ist ein dauerhafter Fehler. Eine Domain darf nur von einem MTA aufgelistet werden. Die MTA-Abschnitte werden von allen Smarthost-Relay-Stages geteilt.

  • Keine MX-Entdeckung und kein DNS-gelerntes MTA-STS — es spricht nur mit den konfigurierten Smarthosts.

39.2.2. Transport und Authentifizierung

  • Transport pro MTA plain / tls (implizit) / starttls (RFC 3207, der Standard).

  • Zertifikatsverifikation gegen den System-Store (plus ein optionales zusätzliches TLS_CA) oder zum Testen deaktiviert; ein optionales Client-Zertifikat (TLS_CLIENT_CERT/TLS_CLIENT_KEY).

  • SMTP AUTH (RFC 4954), je MTA: none, plain, login, external, cram-md5, digest-md5, scram-sha-1 / scram-sha-256 und ihre -plus-Formen zur Kanalbindung, ntlm, gssapi, oauth oder auto, um das stärkste vom Server angebotene Passwortverfahren zu wählen. Die meisten nehmen USERNAME/PASSWORD; gssapi nimmt SERVICE_NAME/KRB5CCNAME, ntlm nimmt NT_DOMAIN/NT_WORKSTATION und oauth nimmt USERNAME/TOKEN_FILE.

  • DANE/TLSA (RFC 7672) je MTA-Abschnitt: DANE = off | warn | strict, Standardwert warn.

  • HELO_NAME pro MTA (Standardwert SERVER_NAME).

39.2.3. Zustellung, Wiederholung und Bounce

  • Sendet mit dem eigenen Envelope-Absender der Nachricht, einen Empfänger pro Versuch (eine Zeile mit mehreren Empfängern wird zuerst in eine Zeile je Empfänger aufgeteilt).

  • Bei Erfolg schließt es den Datensatz ab (oder schaltet zu NEXT_STAGE weiter).

  • Exponentieller Backoff bei vorübergehendem Fehler bis MAX_LIFETIME; Schleifenerkennung über MAX_HOP_COUNT.

  • Ein dauerhafter Fehler (einschließlich keines passenden MTA) routet zu BOUNCE_STAGE (oder markiert failed); ein dauerhafter Fehler eines Bounces wird verworfen, nie erneut gebounct. Abgelehnte Zugangsdaten sind ein vorübergehender Fehler, nie ein Bounce.

39.2.4. DSN und Inhaltsanpassung

  • Propagiert RET/ENVID/NOTIFY/ORCPT an den Smarthost nur, wenn er DSN ankündigt (RFC 3461); erzeugt Fehler-/Erfolgs-/Verzögerungsberichte nach denselben Regeln wie die direkte Stage.

  • Erneutes Ankündigen oder Herabstufen von 8BITMIME/SMTPUTF8 pro Hop (RFC 6152 / RFC 6531 / RFC 2045 / RFC 2047).

39.3. Konfiguration

[stage-<name>] mit PROGRAM = pepsi-stage-relay-to-smarthost: SERVER_NAME (erforderlich), NEXT_STAGE/BOUNCE_STAGE, die Timeouts (CONNECT_TIMEOUT/COMMAND_TIMEOUT/DATA_TIMEOUT), die Wiederholungsrichtlinie (RETRY_INITIAL/RETRY_MAX_INTERVAL/RETRY_FACTOR/MAX_LIFETIME/ DELAY_DSN_AFTER), MAX_HOP_COUNT, ADDRESS_FAMILY (der Standardwert, den jeder MTA-Eintrag erbt) und die DANE-Resolver-Einstellungen DNS_SERVERS/DNS_TIMEOUT. Die vorgelagerten MTAs werden in gemeinsamen [pepsi-stage-relay-to-smarthost-mta-<name>]-Abschnitten definiert: HOST/PORT (beide erforderlich), MODE, TLS_VERIFY/TLS_CA/TLS_CLIENT_CERT/ TLS_CLIENT_KEY, AUTH mit seinen Zugangsdaten, DANE, ADDRESS_FAMILY, HELO_NAME und Routing über DOMAINS / CATCH_ALL. Vollständige Referenz: pepsi-stage-relay-to-smarthost(1).

39.4. Privilegien

Installiert setgid pepsi-token (Modus 2550, Eigentümer pepsi:pepsi-token) und daher ein eigenständiges Binärprogramm statt eines der in das vereinheitlichte pepsi-Binärprogramm eingefalteten Programme. Der Dispatcher führt die Stage als unprivilegierten Benutzer pepsi aus; das setgid-Bit gibt dem Worker egid=pepsi-token, und das ist es, was ihm erlaubt, die gruppenbeschränkten Dateien zu lesen, die er braucht — die OAuth-Zugriffstoken, die pepsi-helper-token-refresh schreibt (AUTH = oauth), einen TLS_CLIENT_KEY für wechselseitiges TLS und einen Kerberos-Credential-Cache (AUTH = gssapi) —, ohne pepsi zu einem dauerhaften Mitglied dieser Gruppe zu machen. Die Datei ist nicht für alle ausführbar: Die Stage akzeptiert -c, sodass jeder lokale Benutzer, der sie ausführen kann, sie auf einen eigenen Server richten und diesem Server die Zugangsdaten schicken könnte.

39.5. State

Identisch mit pepsi-stage-relay-to-internet:

  • Eingaben: state.dsn und state.origin.

  • Ausgaben: attempts/last_error/delay_sent bei Pause; ein state.bounce-Objekt beim Routen zur/Einreihen für die Bounce-Stage; last_error bei terminalem fail. state.dsn/state.origin bleiben erhalten.

39.6. Siehe auch

pepsi-stage-relay-to-internet, pepsi-stage-bounce, pepsi-helper-token-refresh, Unterstützte Funktionen, pepsi-stage-relay-to-smarthost(1).