2 votes

Postfix, canonical_classes, et cron mail

Je suis tombé sur une situation dans Postfix où il semble que ma configuration soit ignorée. J'ai un réseau domestique où les machines sont nommées hostname.fakedomain, et un hôte de messagerie en colocation avec un vrai domaine example.com. Sur mon ordinateur personnel, Postfix est configuré pour réécrire les adresses d'enveloppe afin d'utiliser le vrai domaine exemple.com, mais pour conserver les en-têtes tels quels. Je garde cette configuration parce que je veux que le courrier soit distribué à mon serveur de courrier colo, mais j'aime préserver les en-têtes afin de pouvoir voir d'un coup d'œil quelle machine de mon réseau domestique a envoyé quel courrier.

Détails pertinents :

  • Arch Linux

  • Postfix 2.7.2

  • /etc/postfix/canonical :

    @hostname.fakedomain postmaster@example.com

  • "postconf -n" (sortie partielle) :

    alias\_database = $alias\_maps
    alias\_maps = hash:/etc/postfix/aliases
    canonical\_classes = envelope\_sender, envelope\_recipient
    canonical\_maps = hash:/etc/postfix/canonical
    mydestination = 
    myhostname = hostname.fakedomain
    relay\_domains = 
    relayhost = example.com

Normalement, cela fonctionne très bien : le courrier local sur mon bureau est remis au compte postmaster sur mon serveur de messagerie, mais les en-têtes ne sont pas réécrits. Cependant, si le courrier fourni au binaire sendmail n'a pas d'en-tête From :, alors l'en-tête est réécrit de la manière suivante From: root <postmaster@example.com> . Puisque canonical_classes n'inclut pas "header_sender", cela ne semble pas devoir se produire. Ce que je pensais qu'il se produirait, c'est que Postfix ajouterait From: root@hostname.fakedomain . Je sais également que cela est dû à la carte canonique, car si je change l'adresse en "otheraddress@example.com", les en-têtes changent également.

Une solution possible serait de faire passer la sortie de chaque entrée de cron par /bin/mail, mais je préférerais une correction de la configuration de Postfix, de sorte que cela fonctionne pour tout courrier auquel il manque un en-tête From :, plutôt que pour le seul courrier de cron.

S'agit-il d'un bogue dans Postfix, ou est-ce que je comprends mal comment canonical_classes devrait fonctionner dans cette situation ?

2voto

Malvineous Points 2271

Je pourrais vérifier ces deux-là : Domaine de réécriture d'en-tête distant y local_header_rewrite_clients

Ce dernier a pour valeur par défaut "permit_inet_interfaces", ce qui, dans la description de cet autre paramètre, pourrait vous donner la réponse ?

always_add_missing_headers (default: no):
   Always add (Resent-) From:, To:, Date: or Message-ID: headers when not
   present.  Postfix 2.6 and later add these headers only when clients
   match the local_header_rewrite_clients parameter setting.  Earlier
   Postfix versions always add these headers; this may break DKIM
   signatures that cover non-existent headers.**

Même si la valeur par défaut est non, peut-être que le paramètre local_header_rewrite_clients n'étant pas vide est à l'origine de ce problème.

Cependant, je pourrais également ajouter ce qui suit (tiré de la page de manuel) :

The canonical(5) mapping is not to be confused with virtual alias
support or with local aliasing. To change the destination but not the
headers, use the virtual(5) or aliases(5) map instead.**

Alors que ce que vous faites devrait Peut-être que l'utilisation de bases virtuelles serait plus efficace ?

Oh, je viens aussi de découvrir qu'il y a classes_canoniques_de_l'expéditeur y classes_canoniques_du_bénéficiaire ainsi que les paramètres. Vous pourriez vouloir les vérifier.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X