Confuso sobre alias_maps e virtual_alias_maps

20

Eu já li novamente os documentos sobre isso, bem como outros posts aqui, e isso ainda é pouco claro para mim. Eu tenho testado várias coisas para entender a diferença entre alias_maps e virtual_alias_maps e não vejo o uso dessas duas configurações separadas no postfix. Isto é o que eu encontrei até agora (Nota - Eu estou usando o postfix no mesmo servidor que o meu servidor web como cliente nulo para enviar e-mails apenas) :

1) arquivo / etc / aliases:

root: [email protected]

Quando adiciono o acima ao alias_maps , notei que alguns serviços, como o fail2ban, conseguem selecionar isso e enviam e-mails de raiz para os endereços de e-mail de alias mencionados. No entanto, também notei que alguns outros serviços (como mail command) não respeitam isso e tentam enviar o email diretamente para [email protected], que não existe (acho que é a configuração myorigin do postfix que está adicionando o @ mydomain.com). Para corrigir isso, eu adicionei o virtual_alias_maps

2) / etc / postfix / virtual

root     [email protected]

Quando o acima é adicionado, todos os serviços usam esse email de aliases virtuais. Eu também notei que uma vez que eu adicionei o acima, mesmo o fail2ban começa a ignorar minhas configurações iniciais no arquivo /etc/aliases/ e começa a seguir o endereço de e-mail dado no arquivo virtual.

Agora isso me confundiu ainda mais -

  1. Por que precisamos de /etc/aliases/ quando o email dentro do mapa de aliases virtuais parece substituí-lo?

  2. Qual é o propósito de ter esses dois mapeamentos separados de aliases e quando decidimos quando usar o quê?

  3. Por que o fail2ban (configurado para enviar e-mail para root@localhost ) segue primeiro o endereço de e-mail fornecido em alias_maps (/ etc / aliases /) e depois decide ignorar quando virtual_alias_maps foi adicionado? / p>

  4. Por que nem todos os serviços lêem aliases de e-mail mencionados em / etc / aliases e eles só funcionam quando os aliases de e-mail são adicionados no mapa de alias virtual?

Eu passei várias horas desde ontem e ainda não tenho certeza. Alguém pode me ajudar a limpar minha confusão?

EDITAR: Este é o log de email quando o email é enviado para a raiz usando o comando mail root . Os aliases do email para root são mencionados em / etc / aliases /. Mas o correio não funciona até que eu mova esse e-mail de aliases raiz de aliases_maps para virtual_aliases_maps

Registre quando o alias de e-mail raiz for mencionado em /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)

Este é o log depois que os aliases de e-mail do root são movidos de /etc/aliases/ para /etc/postfix/virtual , em que a entrega de e-mail é bem-sucedida após a alteração:

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
    
por Neel 14.11.2014 / 10:07

2 respostas

32

Alguns antecedentes

O postfix herdou alguns recursos do sendmail mais antigo, como milter e aliases. O arquivo /etc/aliases faz parte de aliases inheritance e implementado por alias_maps . Por outro lado, o postfix tem virtual_maps / virtual_alias_maps para o alias de e-mail do manipulador. Então, qual é a diferença entre eles?

Parâmetro alias_maps

  • Usado somente para entrega local (8)

  • De acordo com a classe de endereço no postfix , o e-mail será enviado por local (8) se o os nomes de domínio do destinatário estão listados no mydestination

  • A entrada de pesquisa era apenas partes locais do endereço de e-mail completo (por exemplo, myuser from myuser @ example .com). Ele descarta as partes do domínio do destinatário.

  • O resultado de pesquisa pode conter um ou mais dos seguintes itens:

    • endereço de e-mail : o e-mail será encaminhado para endereço de e-mail
    • / file / name : o email será anexado a / file / name
    • | command : mail canalizado para o comando
    • : include: / file / name : inclua alias de / file / name

Parâmetro virtual_alias_maps

  • Usado por entrega virtual (5)

  • Sempre chamado pela primeira vez antes de qualquer outra classe de endereço. Não importa se o domínio do destinatário foi listado em mydestination , virtual_mailbox_domains ou outros locais. Ele substituirá o endereço / alias definido em outros locais.

  • A entrada de pesquisa tem algum formato

    • usuário @ domínio : ele corresponderá usuário @ domínio literalmente

    • usuário : ele corresponderá a usuário @site quando o site for igual a $myorigin , quando o site estiver listado em $mydestination ou quando estiver listado em $inet_interfaces ou $proxy_interfaces . Esta funcionalidade se sobrepõe à funcionalidade do banco de dados de aliases locais (5).

    • @domínio : corresponderá a qualquer email destinado a domain , independentemente das partes locais

  • O resultado de pesquisa deve ser

    • endereço de e-mail válido
    • usuário sem domínio. O postfix anexará $myorigin if append_at_myorigin definido sim

Why do we need /etc/aliases when having the email inside virtual aliases map seems to override it?

Como você pode ver acima, alias_maps (/ etc / aliases) tem alguns recursos adicionais (ao lado de encaminhamento), como piping to command. Contraste com virtual_alias_maps que apenas encaminha o email.

What is the purpose of having these 2 separate aliases mapping and when do we decide when to use what?

As desvantagens do alias_maps são que você pode diferenciar se o destinatário original tiver o formulário [email protected] ou [email protected] . Ambos serão mapeados para a entrada raiz em alias_maps . Em outras mãos, você pode definir um endereço de encaminhamento diferente com virtual_alias_maps .

Why did fail2ban (which is configured to email to root@localhost) first follow email address given in alias_maps (/etc/aliases/) and later decides to ignore that once virtual_alias_maps was added?

Antes de o virtual_alias_maps ser adicionado : root @ localhost foi aliasado por alias_maps porque localhost foi listado em mydestination .

Após a definição de virtual_alias_maps : A entrada root (em virtual_alias_maps) não tem partes de domínio e localhost foi listado em mydestination , portanto, corresponderá a root [email protected] .

Why doesn't all services read email aliases mentioned in /etc/aliases and they only work when the email aliases are added in virtual alias map?

O comando mail root enviará o email para o root. Como a falta de partes de domínio, a reescrita trivial do postfix acrescentará myorigin às partes do domínio. Então, o e-mail será enviado para root @ myorigin .

Antes de o virtual_alias_maps ser adicionado : Infelizmente, myorigin não está listado em mydestination , por isso, não haverá aliases por alias_maps .

Após a adição de virtual_alias_maps : A entrada root (em virtual_alias_maps) não tem partes de domínio e myorigin (obviamente) iguais a myorigin , portanto corresponderá a root [email protected] .

    
por 14.11.2014 / 16:38
2
  1. /etc/aliases está lá principalmente para entrega local, por exemplo, e-mail para root do cron, etc, é bom manter os aliases locais separados, virtual_alias_maps também pode ser usado com SQL DBs e assim por diante .

  2. virtual_alias_maps é para quando você tem usuários virtuais (e domínios virtuais), geralmente não são mapeados para usuários do sistema, mas se você não tiver domínios virtuais e muito poucos usuários, esse tipo de funcionalidade pode não ser necessário.

  3. O fail2ban não se importa, apenas envia um email para o MTA.

  4. Você precisa ser mais específico, quais serviços, como e onde eles enviam e-mails?

por 14.11.2014 / 12:27