Frage Verwirrt über alias_maps und virtual_alias_maps


Ich habe die Dokumente sowohl hier als auch in anderen Beiträgen bereits gelesen und das ist mir immer noch sehr unklar. Ich habe verschiedene Dinge getestet, um den Unterschied zu verstehen alias_maps und virtual_alias_maps und ich sehe nicht die Verwendung dieser 2 separaten Einstellungen in Postfix. Das habe ich bisher gefunden (Hinweis - Ich verwende Postfix auf dem gleichen Server wie mein Webserver als Null-Client, um nur E-Mails zu senden):

1) / etc / Alias-Datei:

root: me@somedomain.com

Wenn ich das Obige zu dem hinzufüge alias_mapsIch habe festgestellt, dass einige Dienste wie fail2ban dies auswählen können und es root-E-Mails an die genannten Alias-E-Mail-Adressen sendet. Allerdings habe ich auch bemerkt, dass einige andere Dienste (wie mail Befehl) respektiert dies nicht und versucht, die E-Mail direkt an root@mydomain.com zu senden, die nicht existiert (ich denke, es ist das Postfix myorigin Einstellung, die die @ mydomain.com hinzufügt). Um das zu beheben, habe ich das hinzugefügt virtual_alias_maps

2) / etc / postfix / virtuell

root     me@someotherdomain.com

Wenn das oben genannte hinzugefügt wird, verwenden alle Dienste diese virtuelle Alias-E-Mail. Ich habe auch bemerkt, dass, sobald ich das oben genannte hinzufüge, sogar fail2ban anfängt, meine anfänglichen Einstellungen in zu ignorieren /etc/aliases/ Datei und folgt der in der virtuellen Datei angegebenen E-Mail-Adresse.

Das hat mich jetzt noch mehr verwirrt - 

  1. Warum brauchen wir /etc/aliases/ wenn die E-Mail innerhalb der virtuellen Alias-Karte scheint, überschreibt sie?

  2. Was ist der Zweck, diese 2 separaten Aliase zuordnen zu lassen und wann entscheiden wir, wann was zu verwenden ist?

  3. Warum hat fail2ban (das für das Senden per E-Mail konfiguriert wurde) root@localhost) folgen Sie zuerst der angegebenen E - Mail - Adresse alias_maps (/ etc / aliases /) und entscheidet sich später, dies einmal zu ignorieren virtual_alias_maps wurde hinzugefügt?

  4. Warum lesen nicht alle Dienste E-Mail-Aliase, die in / etc / aliases erwähnt werden, und funktionieren sie nur, wenn die E-Mail-Aliase in der virtuellen Alias-Zuordnung hinzugefügt werden?

Ich habe seit gestern einige Stunden damit verbracht und bin immer noch unsicher. Kann mir jemand helfen, meine Verwirrung zu klären?

BEARBEITEN: Dies ist das Mail-Protokoll, wenn E-Mails an root gesendet werden mail root Befehl. Die Alias-E-Mail für root wird in / etc / aliases / erwähnt. Aber Mail funktioniert erst, wenn ich diese root-Aliase-E-Mail aus verschiebe aliases_maps zu virtual_aliases_maps

Loggen Sie sich ein, wenn der Root-E-Mail-Alias ​​in /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=<20141114110927.0F12643432@Debian.domainname.com>

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

Nov 14 16:39:27 Debian postfix/error[4496]: 0F12643432: to=<root@domainname.com>, 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)

Dies ist das Protokoll, nachdem die E-Mail-Aliase für root verschoben wurden /etc/aliases/ zu /etc/postfix/virtual wo die E-Mail-Zustellung nach der Änderung erfolgreich war:

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=<20141114111458.ADD9A43436@Debian.domainname.com>

Nov 14 16:44:58 Debian postfix/qmgr[4544]: ADD9A43436: from=<root@domainname.com>, size=453, nrcpt=1 (queue active)

Nov 14 16:45:00 Debian postfix/smtp[4551]: ADD9A43436: to=<admin@somesite.com>, 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

20
2017-11-14 09:07


Ursprung


I also noticed that some other services (like mail command) does not respect this -> Bitte zeigen Sie den Maillog-Eintrag zu dieser Bedingung an - masegaloeh
@masegaloeh Habe meinen Post mit dem Mail-Log aktualisiert - Neel


Antworten:


Irgendein Hintergrund

Postfix erbte einige Features von älteren Sendmails wie Milter und Aliase. Die Datei /etc/aliases ist ein Teil von aliases Vererbung und implementiert von alias_maps. Auf der anderen Seite hat Postfix virtual_maps/virtual_alias_maps für handle E-Mail-Aliasing. Was ist der Unterschied zwischen ihnen?

Parameter alias_maps

  • Wird nur für lokale (8) Lieferung

  • Gemäß Adressklasse in Postfix, E-Mail wird Lieferung von lokalen (8) Wenn die Empfängerdomänennamen in der Liste aufgeführt sind mydestination

  • Das Nachschlageeingabe waren nur lokale Teile von vollständigen E-Mail-Adressen (z.B. myuser von myuser@example.com). Es verwirft Domainteile des Empfängers.

  • Das Nachschlageergebnis Dose enthält eines oder mehrere der folgenden Elemente:

    • E-Mail-Addresse: E-Mail wird weitergeleitet an E-Mail-Addresse
    • /Dateiname: E-Mail wird an angehängt /Dateiname
    • | Befehl: Mail an die Befehl
    • : Include: / Datei / Name: Einschließen von Alias ​​aus /Dateiname

Parameter virtual_alias_maps

  • Benutzt von virtuelle (5) Lieferung

  • Immer zum ersten Mal aufgerufen vor anderen Adressklassen. Es ist nicht wichtig, ob die Empfängerdomäne in aufgeführt ist mydestination, virtual_mailbox_domains oder andere Orte. Es überschreibt die an anderen Stellen definierten Adressen / Aliasnamen.

  • Das Nachschlageeingabe hat irgendein Format

    • Benutzer @ Domäne: Es wird übereinstimmen Benutzer @ Domäne buchstäblich

    • Nutzer: Es wird übereinstimmen Nutzer@site, wenn die Site gleich ist $myorigin, wenn die Site in aufgeführt ist $mydestinationoder wenn es in aufgeführt ist $inet_interfaces oder $proxy_interfaces. Diese Funktionalität überschneidet sich mit der Funktionalität der lokalen Aliase (5) -Datenbank.

    • @Domain: Es stimmt mit jeder E-Mail überein, die für bestimmt ist domain unabhängig von lokalen Teilen

  • Das Nachschlageergebnis muss sein

    • gültige Email Addresse
    • Benutzer ohne Domäne Postfix wird angehängt $myorigin ob append_at_myorigin einstellen Ja

Warum brauchen wir / etc / Aliase, wenn die E-Mail in der virtuellen Alias-Map diese zu überschreiben scheint?

Wie Sie oben sehen können, alias_maps(/ etc / aliases) hat einige zusätzliche Funktionen (neben Weiterleitung) wie Piping zu Befehl. Es kontrastiert mit virtual_alias_maps dass gerade E-Mail weiterleiten.

Was ist der Zweck, diese 2 separaten Aliase zuordnen zu lassen und wann entscheiden wir, wann was zu verwenden ist?

Das alias_maps Nachteile können Sie unterscheiden, wenn der ursprüngliche Empfänger Form hat root@example.com oder root@example.net. Beide werden dem Root-Eintrag in zugeordnet alias_maps. In anderen Händen können Sie verschiedene Weiterleitungsadressen mit definieren virtual_alias_maps.

Warum hat fail2ban (das für eine E-Mail an root @ localhost konfiguriert ist) zuerst die E-Mail-Adresse in alias_maps (/ etc / aliases /) eingegeben und entscheidet sich später, diese zu ignorieren, sobald virtual_alias_maps hinzugefügt wurde?

Bevor virtual_alias_maps hinzugefügt wurde: root @ localhost wurde von aliased alias_mapsweil localhost in aufgeführt wurde mydestination.

Nachdem virtual_alias_maps definiert wurde: Der Eintritt root (in virtual_alias_maps) hat keine Domainteile und localhost wurde aufgelistet mydestination, so wird es übereinstimmen root me@example.com.

Warum lesen nicht alle Dienste E-Mail-Aliase, die in / etc / aliases erwähnt werden, und funktionieren sie nur, wenn die E-Mail-Aliase in der virtuellen Alias-Zuordnung hinzugefügt werden?

Befehl mail root wird eine E-Mail an root senden. Weil es keine Domainteile gibt, postfix trivial-rewrite wird myorigin an Domain-Teile anhängen. Also, Mail wird gesendet werden Wurzel @ Myorigin.

Bevor virtual_alias_maps hinzugefügt wurde: Unglücklicherweise, myorigin ist nicht in aufgeführt mydestination, so wird es nicht durch Aliase alias_maps.

Nach dem Hinzufügen von virtual_alias_maps: Der Eintritt root (in virtual_alias_maps) hat keine Domain Teile und myorigin (offensichtlich) dasselbe wiemyorigin, so wird es übereinstimmen root me@example.com.


32
2017-11-14 15:38



Das ist eine ausgezeichnete Antwort! Ich danke dir sehr. - Neel


  1. /etc/aliases Gibt es in erster Linie für die lokale Zustellung, zum Beispiel Mail an root von Cron, etc, ist es schön, Ihre lokalen Aliase getrennt zu halten, virtual_alias_maps kann auch mit SQL-DBs usw. verwendet werden.

  2. virtual_alias_maps Dies ist der Fall, wenn virtuelle Benutzer (und virtuelle Domänen) häufig nicht den Systembenutzern zugeordnet werden. Wenn Sie jedoch keine virtuellen Domänen und nur sehr wenige Benutzer haben, ist diese Art von Funktionalität möglicherweise nicht erforderlich.

  3. fail2ban ist es egal, es reicht nur eine E-Mail an die MTA.

  4. Sie müssen konkreter sein, welche Dienste, wie und wo senden sie E-Mails?


2
2017-11-14 11:27



Danke @NickW paar Dinge: (1) Für Nein: 4, Mail-Befehl ist einer der Service, der dies tut. Ich meine, wenn / etc / Aliases in erster Linie für lokale Lieferung an lokale Benutzer ist, sollte nicht mail root Befehl sollte eigentlich unter diese Kategorie fallen? Warum berücksichtigt dieser Dienst die Informationen in / etc / aliases, wenn es sich um eine lokale Zustellung handelt? (2) Wenn ich diese für mein Szenario in Betracht ziehe, ist es dann eine gute Übung, wenn der Benutzer die in beiden erwähnten E-Mail-Adressen mit Aliasen vergleicht /etc/aliases ebenso gut wie virtual_alias_maps also arbeiten sie für alles? - Neel
1. Ok, sollte der Mail-Befehl verwenden /etc/aliases standardmäßig, eine wirklich dumme Frage, du bist gelaufen newaliases nach dem Aktualisieren der Datei, oder? 2. Ich würde sagen, das ist übertrieben, wenn Leute Post von der lokalen Maschine erhalten, wäre es sinnvoll, die Skripte so zu konfigurieren, dass sie ihre richtige E-Mail-Adresse verwenden, so dass sie durch Postfix weitergeleitet und an das richtige Ziel geliefert werden. - NickW
Hallo @NickW ja ich habe Aliases neu erstellt mit newaliases Nach der veränderung. Das einzige, was ich darüber nachdenken kann, warum es keinen Alias ​​verwendet, liegt vielleicht an der Postfix-Einstellung, die hinzugefügt wird @$domain_name nach dem Benutzer und daher virtual_alias_maps wird benötigt, um diese E-Mails umzuleiten. Ich habe das in Postfix-Dokumenten gelesen und vielleicht deshalb mail Befehl zu root arbeitet nicht mit aliases: postfix.org/STANDARD_CONFIGURATION_README.html#some_local Wie auch immer, vielen Dank, dass du mir geholfen hast, diesen besseren Nick zu verstehen. Ich schätze es wirklich .. :) - Neel
Freut mich, geholfen zu haben :) - NickW