Verwirrt über alias_maps und virtual_alias_maps

22

Ich habe die Dokumente zu diesem und anderen Posts hier bereits erneut gelesen und das ist mir immer noch sehr unklar. Ich habe verschiedene Dinge getestet, um den Unterschied zwischen alias_mapsund zu verstehen, virtual_alias_mapsund ich sehe die Verwendung dieser zwei separaten Einstellungen in Postfix nicht. Folgendes habe ich bisher gefunden (Hinweis: Ich verwende Postfix auf demselben Server wie meinen Webserver als Null-Client, um nur E-Mails zu senden) :

1) Datei / etc / aliases:

root: [email protected]

Als ich das oben alias_mapserwähnte hinzufügte , bemerkte ich, dass einige Dienste wie fail2ban dies auswählen können und es sendet Root-E-Mails an die angegebenen Alias-E-Mail-Adressen. Allerdings habe ich auch bemerkt, dass einige andere Dienste (wie der mailBefehl) dies nicht berücksichtigen und versuchen, die E-Mail direkt an [email protected] zu senden, was nicht existiert (ich denke myorigin, es ist die Postfix- Einstellung, die @meinedomain.com hinzufügt). . Um dies zu beheben habe ich dann dievirtual_alias_maps

2) / etc / postfix / virtual

root     [email protected]

Wenn das oben Gesagte hinzugefügt wird, verwenden alle Dienste diese E-Mail mit virtuellen Aliasen. Ich bemerkte auch, dass, sobald ich das Obige hinzufüge, sogar fail2ban anfängt, meine anfänglichen Einstellungen in der /etc/aliases/Datei zu ignorieren und der in der virtuellen Datei angegebenen E-Mail-Adresse zu folgen.

Das hat mich jetzt noch mehr verwirrt -

  1. Warum brauchen wir, /etc/aliases/wenn die E-Mail in der virtuellen Aliase-Karte diese zu überschreiben scheint?

  2. Was ist der Zweck der Zuordnung dieser beiden separaten Aliase und wann entscheiden wir, wann welche verwendet werden sollen?

  3. Warum folgte fail2ban (das zum Versenden von E-Mails konfiguriert ist root@localhost) zuerst der in alias_maps(/ etc / aliases /) angegebenen E-Mail-Adresse und entschloss sich später, diese zu ignorieren, sobald sie virtual_alias_mapshinzugefügt wurde?

  4. Warum lesen nicht alle Dienste E-Mail-Aliase, die in / etc / aliases aufgeführt sind, und funktionieren nur, wenn die E-Mail-Aliase in der virtuellen Aliaszuordnung hinzugefügt werden?

Ich habe seit gestern mehrere Stunden verbracht und bin mir immer noch unsicher. Kann mir jemand helfen, meine Verwirrung zu beseitigen?

BEARBEITEN: Dies ist das Mail-Protokoll, wenn E-Mails mit dem mail rootBefehl root gesendet werden . Die Aliase-E-Mail für root wird in / etc / aliases / erwähnt. Mail funktioniert jedoch erst, wenn ich diese Root-Aliase-E-Mail von aliases_mapsnach verschiebevirtual_aliases_maps

Protokollieren Sie, 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=<[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)

Dies ist das Protokoll, nachdem die E-Mail-Aliase für root von dort verschoben wurden /etc/aliases/, /etc/postfix/virtualwo 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=<[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
quelle
I also noticed that some other services (like mail command) does not respect this-> zeige bitte den zu diesem Zustand
gehörenden
@masegaloeh Habe meinen Beitrag mit dem Mail-Log aktualisiert
Neel

Antworten:

35

Etwas Hintergrund

Postfix erbte einige Funktionen von älteren Sendmail wie Milter und Aliase. Die Datei /etc/aliasesist Teil der aliasesVererbung und wird von implementiert alias_maps. Auf der anderen Seite hat Postfix virtual_maps/ virtual_alias_mapsfür das E-Mail-Aliasing. Also, was ist der Unterschied zwischen ihnen?

Parameter alias_maps

  • Wird nur für die Zustellung vor Ort (8) verwendet

  • Je nach Adressklasse in Postfix wird die E-Mail von local (8) zugestellt , wenn die Empfängerdomänennamen in der Liste aufgeführt sindmydestination

  • Die Sucheingabe bestand nur aus lokalen Teilen von vollständigen E-Mail-Adressen (z. B. myuser von [email protected]). Domain-Teile des Empfängers werden verworfen.

  • Das Nachschlageergebnis kann eine oder mehrere der folgenden Angaben enthalten:

    • E-Mail-Adresse : Die E-Mail wird an die E-Mail-Adresse weitergeleitet
    • / file / name : Die E-Mail wird an / file / name angehängt
    • Befehl : E-Mail wurde an den Befehl weitergeleitet
    • : include: / file / name : Alias ​​aus / file / name einschließen

Parameter virtual_alias_maps

  • Wird bei virtueller (5) Zustellung verwendet

  • Wird immer beim ersten Mal vor allen anderen Adressklassen aufgerufen . Es kümmert sich nicht darum , ob der Empfänger - Domain wurde aufgeführt in mydestination, virtual_mailbox_domainsoder an anderen Orten. Es wird die Adresse / den Alias ​​überschreiben, die / der an anderen Stellen definiert wurde.

  • Die Sucheingabe hat ein bestimmtes Format

    • user @ domain : Es stimmt buchstäblich mit user @ domain überein

    • Benutzer : es wird passen Benutzer @site wenn Website gleich ist $myorigin, wenn Standort aufgeführt ist $mydestination, oder wenn es aufgeführt wird in $inet_interfacesoder $proxy_interfaces. Diese Funktionalität überschneidet sich mit der Funktionalität der lokalen Aliase (5) -Datenbank.

    • @domain : Es passt zu jeder E-Mail, die für domainlokale Teile bestimmt ist

  • Das Nachschlageergebnis muss sein

    • gültige Email Addresse
    • Benutzer ohne Domain. Postfix wird anhängen , $myoriginwenn append_at_myoriginSet ja

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

Wie Sie oben sehen können, verfügt alias_maps(/ etc / aliases) über einige zusätzliche Funktionen (neben der Weiterleitung) wie das Weiterleiten an den Befehl. Es steht im Gegensatz zu virtual_alias_mapsder einfach weitergeleiteten E-Mail.

Was ist der Zweck der Zuordnung dieser beiden separaten Aliase und wann entscheiden wir, wann welche verwendet werden sollen?

Die alias_mapsNachteile sind, dass Sie unterscheiden können, ob der ursprüngliche Empfänger die Form [email protected] oder [email protected] hat . Beide werden dem Root-Eintrag in zugeordnet alias_maps. In anderen Händen können Sie mit andere Weiterleitungsadressen definieren virtual_alias_maps.

Warum folgte fail2ban (das für E-Mail an root @ localhost konfiguriert ist) zuerst der in alias_maps (/ etc / aliases /) angegebenen E-Mail-Adresse und entschloss sich später, diese zu ignorieren, sobald virtual_alias_maps hinzugefügt wurden?

Bevor virtual_alias_maps hinzugefügt wurde : root @ localhost wurde durch einen Alias ​​versehen, alias_mapsweil localhost in aufgeführt war mydestination.

Nach der Definition von virtual_alias_maps : Der Eintrag root(in virtual_alias_maps) enthält keine Domänenteile, und localhost wurde in aufgelistet mydestination, sodass er übereinstimmt root [email protected].

Warum lesen nicht alle Dienste E-Mail-Aliase, die in / etc / aliases aufgeführt sind, und funktionieren nur, wenn die E-Mail-Aliase in der virtuellen Aliaszuordnung hinzugefügt werden?

Der Befehl mail rootsendet eine E-Mail an root. Da es an Domänenteilen mangelt, hängt Postfix Trivial-Rewrite Myorigin an Domänenteile an. E-Mails werden also an root @ myorigin gesendet .

Vor dem Hinzufügen von virtual_alias_maps : Ist leider myoriginnicht in aufgeführt mydestination, daher werden keine Aliasnamen nach verwendet alias_maps.

Nach dem Hinzufügen von virtual_alias_maps : Der Eintrag root(in virtual_alias_maps) enthält keine Domänenteile und myorigin (offensichtlich) die gleichen wie myorigin, sodass er übereinstimmt root [email protected].

masegaloeh
quelle
1
Im Satz Die alias_mapsNachteile sind, dass Sie unterscheiden können ... das Wort kann sollte wahrscheinlich nicht sein können . Sonst kann ich es nicht verstehen.
Daniel Böhmer
2
  1. /etc/aliasesGibt es in erster Linie für die lokale Zustellung, zum Beispiel Mail an Root von Cron usw., ist es schön, die lokalen Aliase getrennt zu halten, virtual_alias_mapskann auch mit SQL-DBs verwendet werden und so weiter.

  2. virtual_alias_maps Dies gilt für virtuelle Benutzer (und virtuelle Domänen), die häufig keinen Systembenutzern zugeordnet sind. 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 kümmert sich nicht darum, es sendet nur E-Mails an den MTA.

  4. Sie müssen genauer definieren, welche Dienste, wie und wo werden E-Mails gesendet?

NickW
quelle
Vielen Dank an @NickW. Einige Dinge: (1) Für No: 4 ist der Befehl mail einer der Dienste, die dies tun. Ich meine, wenn / etc / aliases hauptsächlich für die lokale Übermittlung an lokale Benutzer bestimmt ist, sollte der mail rootBefehl dann nicht tatsächlich in diese Kategorie fallen? Warum wird bei diesem Service die Information in / etc / aliases berücksichtigt, wenn es sich um eine lokale Lieferung handelt? (2) Wenn man diese für mein Szenario betrachtet, ist es dann eine gute Praxis, wenn der Benutzer die in beiden genannten E-Mail-Adressen /etc/aliasesals Aliase verwendet, virtual_alias_mapsdamit sie für alles funktionieren?
Neel
1
1. Ok, der Mail-Befehl sollte /etc/aliasesstandardmäßig eine wirklich blöde Frage verwenden, die du newaliasesnach dem Update der Datei ausgeführt hast , oder? 2. Ich würde sagen, das ist übertrieben, wenn die Leute E-Mails vom lokalen Computer empfangen, wäre es sinnvoll, die Skripte so zu konfigurieren, dass sie ihre richtige E-Mail-Adresse verwenden. Auf diese Weise werden sie über Postfix weitergeleitet und an das richtige Ziel gesendet.
NickW
hi @NickW ja ich habe Aliase mit newaliasesafter change neu aufgebaut. Das Einzige, woran ich denken kann, ist, dass keine Aliase verwendet werden, möglicherweise die Postfix-Einstellung, die @$domain_namenach dem Benutzer hinzugefügt virtual_alias_mapswird und daher zum Umleiten dieser E-Mails erforderlich ist. Ich habe dies in Postfix-Dokumenten gelesen und vielleicht funktioniert der mailBefehl zum Root nicht mit aliases: postfix.org/STANDARD_CONFIGURATION_README.html#some_local Trotzdem , vielen Dank, dass Sie mir geholfen haben, diesen Nick besser zu verstehen. Ich weiß es wirklich zu schätzen .. :)
Neel
Froh, geholfen zu haben :)
NickW