Confuso su alias_maps e virtual_alias_maps


22

Ho già riletto i documenti su questo e altri post qui e questo non è ancora molto chiaro per me. Ho testato varie cose per capire la differenza tra alias_mapse virtual_alias_mapse non vedo l'uso di queste 2 impostazioni separate in postfix. Questo è quello che ho trovato finora (Nota: sto usando Postfix nello stesso server del mio server Web come client null per inviare solo e-mail) :

1) / etc / aliases file:

root: me@somedomain.com

Quando aggiungo quanto sopra a alias_maps, ho notato che alcuni servizi come fail2ban sono in grado di scegliere questo e invia e-mail di root agli indirizzi di posta elettronica alias menzionati. Tuttavia, ho anche notato che alcuni altri servizi (come il mailcomando) non lo rispettano e provano a inviare l'e-mail direttamente a root@mydomain.com che non esiste (penso che sia l' myoriginimpostazione postfix che sta aggiungendo @ mydomain.com) . Per risolvere il problema, ho aggiunto ilvirtual_alias_maps

2) / etc / postfix / virtual

root     me@someotherdomain.com

Quando viene aggiunto quanto sopra, tutti i servizi utilizzano questa e-mail di alias virtuali. Ho anche notato che una volta aggiunto quanto sopra, anche fail2ban inizia a ignorare le mie impostazioni iniziali nel /etc/aliases/file e inizia a seguire l'indirizzo e-mail indicato nel file virtuale.

Ora questo mi ha confuso ancora di più -

  1. Perché abbiamo bisogno /etc/aliases/quando l'email all'interno della mappa degli alias virtuali sembra sovrascriverla?

  2. Qual è lo scopo di avere questi 2 alias separati mappando e quando decidiamo quando usare cosa?

  3. Perché fail2ban (che è configurato per inviare e-mail root@localhost) prima ha seguito l'indirizzo e-mail indicato in alias_maps(/ etc / aliases) e in seguito ha deciso di ignorare che una volta è virtual_alias_mapsstato aggiunto?

  4. Perché tutti i servizi non leggono gli alias email menzionati in / etc / aliases e funzionano solo quando gli alias email vengono aggiunti nella mappa degli alias virtuali?

Ho passato diverse ore da ieri e non sono ancora sicuro. Qualcuno può aiutarmi a chiarire la mia confusione?

EDIT: questo è il registro di posta quando l'e-mail viene inviata a root usando il mail rootcomando. L'email degli alias per root è menzionata in / etc / aliases /. Ma la posta non funziona finché non sposto questa e-mail di alias radice da aliases_mapsavirtual_aliases_maps

Accedi quando l'alias di posta elettronica di root è menzionato 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)

Questo è il registro dopo gli alias di posta elettronica per l'utente root viene spostato da /etc/aliases/a /etc/postfix/virtualdove il recapito della posta elettronica è successo dopo la modifica:

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

I also noticed that some other services (like mail command) does not respect this-> mostra la voce del maillog relativa a questa condizione
masegaloeh

@masegaloeh Ho aggiornato il mio post con il registro di posta
Neel

Risposte:


35

Qualche sfondo

Postfix ha ereditato alcune funzionalità da sendmail meno recenti come milter e alias. Il file /etc/aliasesfa parte aliasesdell'ereditarietà e implementato da alias_maps. D'altra parte, postfix ha virtual_maps/ virtual_alias_mapsper gestire l'aliasing della posta elettronica. Quindi qual è la differenza tra loro?

Parametro alias_maps

  • Utilizzato solo per la consegna locale (8)

  • Secondo la classe di indirizzi in postfix , la posta elettronica verrà recapitata da locale (8) se i nomi di dominio del destinatario sono elencati inmydestination

  • L' input di ricerca era costituito solo da parti locali di indirizzi e-mail completi (ad es. Myuser da myuser@example.com). Elimina parti di dominio del destinatario.

  • Il risultato della ricerca può contenere uno o più dei seguenti:

    • indirizzo e-mail : l' e- mail verrà inoltrata all'indirizzo e-mail
    • / file / nome : l'email verrà aggiunta a / file / nome
    • | comando : posta inviata al comando
    • : include: / file / name : include alias da / file / name

Parametro virtual_alias_maps

  • Utilizzato dalla consegna virtuale (5)

  • Sempre invocato la prima volta prima di qualsiasi altra classe di indirizzi. Non importa se il dominio del destinatario è stato elencato in mydestination, virtual_mailbox_domainso in altri luoghi. Sostituirà l'indirizzo / alias definito in altri luoghi.

  • L' input di ricerca ha un certo formato

    • user @ domain : corrisponderà letteralmente a user @ domain

    • utente : corrisponderà all'utente @site quando il sito è uguale a $myorigin, quando il sito è elencato in $mydestinationo quando è elencato in $inet_interfaceso $proxy_interfaces. Questa funzionalità si sovrappone alla funzionalità del database degli alias locali (5).

    • @dominio : corrisponderà a qualsiasi e-mail destinata domainindipendentemente dalle parti locali

  • Il risultato della ricerca deve essere

    • Indirizzo e-mail valido
    • utente senza dominio. Postfix aggiungerà $myoriginse append_at_myoriginimpostato

Perché abbiamo bisogno di / etc / aliases quando l'email all'interno della mappa degli alias virtuali sembra sovrascriverla?

Come puoi vedere sopra, alias_maps(/ etc / aliases) ha alcune funzionalità aggiuntive (oltre all'inoltro) come il piping da comandare. È in contrasto con virtual_alias_mapsquell'e-mail inoltrata.

Qual è lo scopo di avere questi 2 alias separati mappando e quando decidiamo quando usare cosa?

Gli alias_mapssvantaggi sono che puoi differenziare se il destinatario originale ha forma root@example.com o root@example.net . Entrambi verranno mappati alla voce principale in alias_maps. In altre mani è possibile definire diversi indirizzi di inoltro con virtual_alias_maps.

Perché fail2ban (che è configurato per inviare e-mail a root @ localhost) ha prima seguito l'indirizzo e-mail indicato in alias_maps (/ etc / aliases /) e in seguito ha deciso di ignorare che una volta aggiunto virtual_alias_maps?

Prima dell'aggiunta di virtual_alias_maps : root @ localhost era aliasato alias_mapsperché localhost era elencato in mydestination.

Dopo aver definito virtual_alias_maps : la voce root(in virtual_alias_maps) non ha parti di dominio e localhost è stato elencato in mydestination, quindi corrisponderà root me@example.com.

Perché tutti i servizi non leggono gli alias email menzionati in / etc / aliases e funzionano solo quando gli alias email vengono aggiunti nella mappa degli alias virtuali?

Il comando mail rootinvierà e-mail alla radice. Poiché manca di parti di dominio, postfix banale riscrittura aggiungerà myorigin a parti di dominio. Quindi, la posta verrà inviata a root @ myorigin .

Prima dell'aggiunta di virtual_alias_maps : Sfortunatamente, myoriginnon è elencato in mydestination, quindi non sarà alias alias_maps.

Dopo l'aggiunta di virtual_alias_maps : la voce root(in virtual_alias_maps) non ha parti di dominio e myorigin (ovviamente) uguali a myorigin, quindi corrisponderà root me@example.com.


1
Nella frase Gli alias_mapssvantaggi sono che puoi differenziare ... la parola lattina probabilmente doveva essere impossibile . Altrimenti non riesco a capirlo.
Daniel Böhmer,

2
  1. /etc/aliasesesiste principalmente per il recapito locale, ad esempio la posta da root a cron, ecc., è bello mantenere separati gli alias locali, virtual_alias_mapspuò essere utilizzato anche con i DB SQL e così via.

  2. virtual_alias_maps è quando hai utenti virtuali (e domini virtuali), spesso che non sono mappati agli utenti del sistema, ma se non hai domini virtuali e pochissimi utenti, quel tipo di funzionalità potrebbe non essere necessario.

  3. a fail2ban non importa, invia semplicemente e-mail all'MTA.

  4. Devi essere più specifico, quali servizi, come e dove inviano la posta?


Grazie @NickW paio di cose: (1) Per No: 4, il comando mail è uno dei servizi che lo fanno. Voglio dire se / etc / alias è principalmente per la consegna locale agli utenti locali, il mail rootcomando non dovrebbe effettivamente rientrare in questa categoria? Perché non è questo servizio considerando le informazioni in / etc / aliases quando si tratta di una consegna locale? (2) Considerando questi per il mio scenario, è quindi una buona pratica avere gli alias degli utenti indirizzi e-mail menzionati in entrambi /etc/aliasese in virtual_alias_mapsmodo che funzionino per tutto?
Neel

1
1. Ok, il comando mail dovrebbe usare /etc/aliasesper impostazione predefinita, una domanda davvero stupida, che hai eseguito newaliasesdopo aver aggiornato il file, giusto? 2. Direi che è eccessivo, se le persone riceveranno posta dal computer locale, varrebbe la pena configurare gli script per utilizzare il proprio indirizzo e-mail, in questo modo verrà instradato attraverso Postfix e consegnato alla destinazione corretta.
Nick

ciao @NickW si ho ricostruito gli alias usando newaliasesdopo il cambiamento. L'unica cosa a cui riesco a pensare perché non utilizzare gli alias è forse dovuta all'impostazione postfix che aggiunge @$domain_namedopo l'utente e quindi virtual_alias_mapsè necessaria per reindirizzare quelle e-mail. L'ho letto nei documenti postfix e forse è per questo che il mailcomando root non funziona con aliases: postfix.org/STANDARD_CONFIGURATION_README.html#some_local Comunque, grazie mille per avermi aiutato a capire meglio Nick. Lo apprezzo davvero .. :)
Neel

Sono contento di aver aiutato :)
NickW,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.