Confus au sujet des alias_maps et des virtual_alias_maps

22

J'ai déjà relu les documents à ce sujet ainsi que d'autres articles ici et cela n'est toujours pas très clair pour moi. J'ai testé différentes choses pour comprendre la différence entre alias_mapset virtual_alias_mapset je ne vois pas l'utilisation de ces 2 paramètres distincts dans postfix. Voici ce que j'ai trouvé jusqu'à présent (Remarque - j'utilise postfix sur le même serveur que mon serveur Web en tant que client nul pour envoyer des e-mails uniquement) :

1) Fichier / etc / aliases:

root: [email protected]

Lorsque j'ajoute ce qui précède à alias_maps, j'ai remarqué que certains services comme fail2ban sont capables de choisir cela et il envoie des e-mails racine aux adresses e-mail d'alias mentionnées. Cependant, j'ai également remarqué que certains autres services (comme la mailcommande) ne respectent pas cela et essaient d'envoyer l'e-mail directement à [email protected] qui n'existe pas (je pense que c'est le myoriginparamètre postfix qui ajoute @ mydomain.com) . Pour résoudre ce problème, j'ai ensuite ajouté levirtual_alias_maps

2) / etc / postfix / virtual

root     [email protected]

Lorsque ce qui précède est ajouté, tous les services utilisent cet e-mail d'alias virtuels. J'ai également remarqué qu'une fois que j'ai ajouté ce qui précède, même fail2ban commence à ignorer mes paramètres initiaux dans le /etc/aliases/fichier et commence à suivre l'adresse e-mail donnée dans le fichier virtuel.

Maintenant, cela m'a encore plus troublé -

  1. Pourquoi avons-nous besoin /etc/aliases/lorsque le courrier électronique à l'intérieur de la carte d'alias virtuels semble le remplacer?

  2. Quel est le but de disposer de ces 2 alias distincts et quand décidons-nous quand utiliser quoi?

  3. Pourquoi fail2ban (qui est configuré pour envoyer un e-mail à root@localhost) a-t-il d'abord suivi l'adresse e-mail indiquée dans alias_maps(/ etc / aliases /) et a ensuite décidé de l'ignorer une fois virtual_alias_mapsajoutée?

  4. Pourquoi tous les services ne lisent-ils pas les alias de messagerie mentionnés dans / etc / alias et ne fonctionnent-ils que lorsque les alias de messagerie sont ajoutés dans la carte d'alias virtuels?

J'ai passé plusieurs heures depuis hier et je ne suis toujours pas sûr. Quelqu'un peut-il m'aider à dissiper ma confusion?

EDIT: Ceci est le journal de messagerie lorsque le courrier électronique est envoyé à root en utilisant la mail rootcommande. L'email des alias pour root est mentionné dans / etc / aliases /. Mais le courrier ne fonctionne pas tant que je ne déplace pas cet e-mail d'alias racine de aliases_mapsversvirtual_aliases_maps

Connectez-vous lorsque l'alias de messagerie racine est mentionné dans /etc/aliases/:

Nov 14 16:39:27 Debian postfix/pickup[4339]: 0F12643432: uid=0 from=<root>

Nov 14 16:39:27 Debian postfix/cleanup[4495]: 0F12643432: message-id=<[email protected]>

Nov 14 16:39:27 Debian postfix/qmgr[4338]: 0F12643432: from=<[email protected]>, size=517, nrcpt=1 (queue active)

Nov 14 16:39:27 Debian postfix/error[4496]: 0F12643432: to=<[email protected]>, orig_to=<root>, relay=none, delay=0.04, delays=0.03/0/0/0.01, dsn=4.4.1, status=deferred (delivery temporarily suspended: connect to domainname.com[128.199.147.136]:25: Connection refused)

Ceci est le journal après les alias de messagerie pour root est déplacé de /etc/aliases/à /etc/postfix/virtualoù la livraison e - mail est un succès après le changement:

Nov 14 16:44:58 Debian postfix/pickup[4545]: ADD9A43436: uid=0 from=<root>

Nov 14 16:44:58 Debian postfix/cleanup[4563]: ADD9A43436: message-id=<[email protected]>

Nov 14 16:44:58 Debian postfix/qmgr[4544]: ADD9A43436: from=<[email protected]>, size=453, nrcpt=1 (queue active)

Nov 14 16:45:00 Debian postfix/smtp[4551]: ADD9A43436: to=<[email protected]>, orig_to=<root>, relay=somesite.com[108.160.157.120]:25, delay=1.9, delays=0.03/0/0.97/0.88, dsn=2.0.0, status=sent (250 OK id=1XpEqC-0002ry-9s)

Nov 14 16:45:00 Debian postfix/qmgr[4544]: ADD9A43436: removed
Neel
la source
I also noticed that some other services (like mail command) does not respect this-> veuillez montrer l'entrée maillog relative à cette condition
masegaloeh
@masegaloeh J'ai mis à jour mon message avec le journal de messagerie
Neel

Réponses:

35

Quelques antécédents

Postfix a hérité de certaines fonctionnalités des anciens sendmail comme milter et alias. Le fichier /etc/aliasesfait partie de l' aliaseshéritage et est implémenté par alias_maps. De l'autre côté, postfix a virtual_maps/ virtual_alias_mapspour gérer l'alias de messagerie. Alors, quelle est la différence entre eux?

Paramètre alias_maps

  • Utilisé uniquement pour la livraison locale (8)

  • Selon la classe d'adresse dans le suffixe , l'e-mail sera livré par local (8) si les noms de domaine destinataires sont répertoriés dans lemydestination

  • L' entrée de recherche n'était que des parties locales provenant d'adresses de messagerie complètes (par exemple, myuser de [email protected]). Il supprime les parties de domaine du destinataire.

  • Le résultat de la recherche peut contenir un ou plusieurs des éléments suivants:

    • adresse e-mail : l'e-mail sera transféré à l'adresse e-mail
    • / fichier / nom : l'e-mail sera ajouté à / fichier / nom
    • | commande : courrier redirigé vers la commande
    • : inclure: / fichier / nom : inclure l'alias de / fichier / nom

Paramètre virtual_alias_maps

  • Utilisé par livraison virtuelle (5)

  • Toujours invoqué la première fois avant toute autre classe d'adresse. Il ne se soucie pas de savoir si le domaine du destinataire est listé dans mydestination, virtual_mailbox_domainsou d' autres endroits. Il remplacera l'adresse / l'alias défini à d'autres endroits.

  • L' entrée de recherche a un certain format

    • user @ domain : il correspondra littéralement à user @ domain

    • utilisateur : il correspondra à l' utilisateur @site lorsque le site est égal à $myorigin, lorsque le site est répertorié dans $mydestination, ou lorsqu'il est répertorié dans $inet_interfacesou $proxy_interfaces. Cette fonctionnalité chevauche la fonctionnalité de la base de données d'alias locaux (5).

    • @domain : il correspondra à tout e-mail destiné à quelque domainsoit les pièces locales

  • Le résultat de la recherche doit être

    • Adresse e-mail valable
    • utilisateur sans domaine. Postfix ajoutera $myoriginsi append_at_myoriginensemble oui

Pourquoi avons-nous besoin de / etc / alias lorsque le courrier électronique à l'intérieur de la carte des alias virtuels semble le remplacer?

Comme vous pouvez le voir ci-dessus, alias_maps(/ etc / aliases) a quelques fonctionnalités supplémentaires (à côté du transfert) comme la canalisation à commander. Cela contraste avec virtual_alias_mapsce simple e-mail.

Quel est le but de disposer de ces 2 alias distincts et quand décidons-nous quand utiliser quoi?

Les alias_mapsinconvénients sont que vous pouvez différencier si le destinataire d'origine a la forme [email protected] ou [email protected] . Les deux seront mappés à l'entrée racine dans alias_maps. Dans d'autres mains, vous pouvez définir différentes adresses de transfert avec virtual_alias_maps.

Pourquoi fail2ban (qui est configuré pour envoyer un e-mail à root @ localhost) a-t-il d'abord suivi l'adresse e-mail indiquée dans alias_maps (/ etc / aliases /) et a ensuite décidé de l'ignorer une fois que virtual_alias_maps a été ajouté?

Avant l'ajout de virtual_alias_maps : root @ localhost était aliasé alias_mapscar localhost était répertorié dans mydestination.

Après la définition de virtual_alias_maps : l'entrée root(dans virtual_alias_maps) n'a pas de parties de domaine et localhost a été répertoriée dans mydestination, donc elle correspondra root [email protected].

Pourquoi tous les services ne lisent-ils pas les alias de messagerie mentionnés dans / etc / alias et ne fonctionnent-ils que lorsque les alias de messagerie sont ajoutés dans la carte d'alias virtuels?

La commande mail rootenverra un e-mail à root. En raison du manque de parties de domaine, postfix trivial- rewrite ajoutera myorigin aux parties de domaine. Ainsi, le courrier sera envoyé à root @ myorigin .

Avant l'ajout de virtual_alias_maps : Malheureusement, myoriginn'est pas répertorié dans mydestination, il ne sera donc pas alias par alias_maps.

Après l'ajout de virtual_alias_maps : l'entrée root(dans virtual_alias_maps) n'a pas de parties de domaine et myorigin (évidemment) identique à myorigin, donc elle correspondra root [email protected].

masegaloeh
la source
1
Dans la phrase Les alias_mapsinconvénients sont que vous pouvez différencier… le mot can était probablement censé être ne peut pas . Sinon, je ne peux pas comprendre cela.
Daniel Böhmer
2
  1. /etc/aliasesexiste principalement pour la livraison locale, par exemple, le courrier à la racine de cron, etc., il est agréable de garder vos alias locaux séparés, virtual_alias_mapspeut également être utilisé avec des bases de données SQL, etc.

  2. virtual_alias_maps est pour quand vous avez des utilisateurs virtuels (et des domaines virtuels), souvent qui ne correspondent pas aux utilisateurs du système, mais si vous n'avez pas de domaines virtuels et très peu d'utilisateurs, ce type de fonctionnalité peut ne pas être nécessaire.

  3. fail2ban s'en fiche, il envoie simplement un e-mail au MTA.

  4. Vous devez être plus précis, quels services, comment et où soumettent-ils le courrier?

NickW
la source
Merci @NickW pour deux choses: (1) Pour No: 4, la commande mail est l'un des services qui fait cela. Je veux dire si / etc / aliases est principalement destiné à la livraison locale aux utilisateurs locaux, la mail rootcommande ne devrait-elle pas réellement tomber dans cette catégorie? Pourquoi ce service considère-t-il les informations dans / etc / alias lorsqu'il s'agit d'une livraison locale? (2) Compte tenu de ceux-ci pour mon scénario, est-ce alors une bonne pratique que les adresses e-mail des alias d'utilisateurs soient mentionnées dans les deux /etc/aliasesainsi que virtual_alias_mapspour qu'elles fonctionnent pour tout?
Neel
1
1. Ok, la commande mail devrait utiliser /etc/aliasespar défaut, une question vraiment stupide, vous avez exécuté newaliasesaprès la mise à jour du fichier, non? 2. Je dirais que c'est exagéré, si les gens reçoivent du courrier de la machine locale, cela vaudrait la peine de configurer les scripts pour utiliser leur adresse e-mail appropriée, de cette façon, il sera acheminé via postfix et livré à la bonne destination.
NickW
salut @NickW oui j'ai reconstruit les alias en utilisant newaliasesaprès le changement. La seule chose que je peux penser pour expliquer pourquoi il n'utilise pas d'alias est peut-être dû au paramètre postfix qui s'ajoute @$domain_nameaprès l'utilisateur et virtual_alias_mapsest donc nécessaire pour rediriger ces e-mails. J'ai lu ceci dans la documentation de postfix et c'est peut-être pourquoi la mailcommande à root ne fonctionne pas avec aliases: postfix.org/STANDARD_CONFIGURATION_README.html#some_local Quoi qu'il en soit, merci beaucoup de m'avoir aidé à mieux comprendre Nick. J'apprécie vraiment .. :)
Neel
Heureux d'avoir aidé :)
NickW