32. pepsi-stage-srs¶
Sender Rewriting Scheme — faire réussir SPF au saut suivant.
32.1. Rôle¶
pepsi-stage-srs réécrit l’expéditeur d’enveloppe en une adresse locale d’un SRS_DOMAIN contrôlé par Pepsi afin que la vérification SPF du saut suivant réussisse. Le sens inverse (décoder les rebonds renvoyés à une adresse SRS) est assuré par pepsi-ingress au moment du RCPT. Les deux lisent la section partagée [pepsi-srs]. Référence : pepsi-stage-srs(1).
32.2. Fonctionnalités¶
Réécriture directe :
MAIL FROMdevientSRS0=HHHH=TT=domain=local@srs, signant en HMAC l’expéditeur original et apposant un horodatage à granularité journalière ; le MAC tronqué est encodé en base32 (RFC 4648).Re-signature compacte : une adresse qui est déjà SRS (le courrier a atteint Pepsi via un autre redirecteur) est re-signée sous la forme
SRS1plutôt qu’imbriquée, de sorte qu’un rebond remonte un redirecteur à la fois.Idempotent / sûr : l’expéditeur nul (un rebond de retour) n’est jamais réécrit, et un expéditeur déjà dans
SRS_DOMAINest laissé inchangé.Décodage inverse (dans l’ingress) : un destinataire qui est un jeton SRS valide est vérifié (signature + horodatage) et relayé vers l’expéditeur original décodé, même en dehors des domaines servis ; un jeton falsifié/expiré est rejeté
550.Corps intact : seul l’expéditeur d’enveloppe change ; les hachages de corps DKIM survivent.
Outils d’opérateur : les sous-commandes
forward/reversecalculent une réécriture ou décodent une adresse à la main.
32.3. Configuration¶
[stage-<name>] : PROGRAM = pepsi-stage-srs et NEXT_STAGE. Les paramètres SRS sont partagés dans [pepsi-srs] : SRS_DOMAIN, SECRET/SECRET_FILE (la clé HMAC ; doit rester stable et identique sur toutes les instances), et MAX_AGE_DAYS (fenêtre de validité, par défaut 21). Omettre [pepsi-srs] désactive SRS. Voir pepsi-stage-srs(1).
32.4. État¶
Entrées : aucune (opère sur la colonne
mail_from).Sorties :
state.srs.original— l’expéditeur d’enveloppe tel qu’il était avant la réécriture, écrit uniquement lorsqu’une réécriture a eu lieu et seulement si la clé n’y est pas déjà (de sorte qu’une seconde passeSRS1conserve le premier correspondant réel). pepsi-stage-bounce y adresse un DSN que ce déploiement émet, plutôt qu’à notre propre alias SRS. Tout le reste destate, y comprisstate.dsn, est préservé.
32.5. Voir aussi¶
pepsi-ingress, pepsi-stage-relay-to-internet, Fonctionnalités prises en charge, pepsi-stage-srs(1).