Rejeição antecipada de email com o Mailman no Postfix

3

Eu tenho uma instalação do Postfix em uma única máquina, que é o único destino de e-mail final para:

  1. O nome do host da máquina ( mail.example.org ) e localhost
  2. listas do Mailman em lists.example.org
  3. Vários domínios virtuais

As configurações relevantes em main.cf são:

myhostname = mail.example.org
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = $myhostname
mydestination = localhost, $myorigin
relay_domains = $mydestination, lists.example.org
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

# Virtual domains
virtual_mailbox_base = /var/mail/vhosts
virtual_mailbox_domains = hash:/etc/postfix/virtual_domains
virtual_mailbox_maps = hash:/etc/postfix/virtual_mailboxes
virtual_alias_maps = hash:/etc/postfix/virtual_aliases
virtual_minimum_uid = 100
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000

# mailman configuration
mailman_destination_recipient_limit = 1
transport_maps = hash:/etc/postfix/transport

smtpd_relay_restrictions = permit_mynetworks,
  reject_invalid_hostname,
  reject_unknown_sender_domain,
  reject_unknown_recipient_domain,
  reject_unauth_destination,
  reject_unlisted_recipient,
  reject_rbl_client zen.spamhaus.org,
  permit

Atualmente, o e-mail para lists.example.org é roteado para o Mailman por meio da seguinte configuração de transport_maps :

lists.example.org mailman:

Isso funciona, mas significa que, se um email for enviado para uma lista desconhecida, a mensagem será aceita pelo Postfix e devolvida quando for processada pelo Mailman. Por várias razões - particularmente reduzindo o backscatter e rejeitando e-mail o mais cedo possível - eu quero que o Postfix rejeite o e-mail assim que ele vir um RCPT TO que corresponda a @lists.example.org e não corresponda a uma lista do Mailman. >

Acho que posso conseguir esse resultado criando um arquivo contendo todos os aliases da lista do Mailman e especificando isso como relay_recipient_maps in main.cf . No entanto, meu entendimento é que relay_recipient_maps se aplica a relay_domains e não quero que $mydestination endereços sejam afetados.

Então, minhas duas perguntas relacionadas são:

  1. Devo remover $mydestination de relay_domains e, se eu, meus aliases existentes continuarem funcionando?
  2. Se relay_domains estiver definido como lists.example.org , relay_recipient_maps atingirá o resultado desejado?

Como alternativa, se houver uma maneira do Postfix consultar o Mailman e receber uma resposta antes de aceitar o email para entrega (talvez com um filtro antes da fila - é assim que eu ligo o email para o SpamAssassin), isso também .

Obrigado antecipadamente. : -)

    
por pwaring 11.11.2015 / 15:41

1 resposta

0

Demorei um pouco para conseguir fazer isso, mas os passos que eu segui foram:

  1. Remover $mydestination de relay_domains .
  2. Adicione uma lista de todos os aliases do Mailman a um arquivo com hash chamado /etc/postfixo/relay_recipient_maps .
  3. Adicionado: relay_recipient_maps = hash:/etc/postfix/relay_recipient_maps a main.cf

Emails para listas inexistentes agora são rejeitados como parte da transação SMTP inicial, antes que qualquer verificação de spam seja feita e antes que o email seja entregue ao Mailman.

    
por 27.03.2016 / 13:34