Postfix: Rejeita certos endereços de destinatários, mesmo que eles sejam listados nos mapas de alias virtuais.

1

Isso soa como uma dor de cabeça, mas estamos mudando de um servidor Sendmail para um servidor Postfix para manipular o roteamento de e-mail em nossa rede, determinando seletivamente quais endereços resultam em roteamento de e-mail para diferentes locais (ou apenas plain reescrito para um @domain diferente). Como tal, os domínios que são processados por este sistema estão na lista virtual_alias_domains .

O problema é que temos um punhado de endereços que queremos rejeitar sempre, e também vemos os endereços no virtual_alias_domains catch-alls no final da configuração. Nós fazemos o seguinte, essencialmente, e nos referimos a este arquivo na diretiva virtual_alias_maps :

/etc/postfix/virtusertable:
    ...
    @domain.tld            @internal.domain.tld

Queremos fazer um REJECT com a mensagem "Destinatário rejeitado pela política" junto com ele. Por isso, tentamos colocá-lo da seguinte maneira:

/etc/postfix/recipient-access:
    [email protected]    REJECT Recipient rejected by policy.
    baduser@              REJECT Recipient rejected by policy.

e o arquivo mencionado na configuração para smtpd_recipient_restrictions e smtp_relay_restrictions com ... check_recipient_access hash:/etc/postfix/recipient-access ...

O problema é que esperamos que ele retorne uma resposta "Rejeitada" ou similarmente "Não permitida" quando o email destinado a esse destino for entregue ao servidor de correio e antes de ser reescrito e retransmitido para o próximo link na cadeia. Quando processado, no entanto, testando com sendmail -bv [email protected] , o Postfix diz que o e-mail foi entregue (mesmo que a entrega não tenha sido tentada) - não "rejeitado" ou algo semelhante.

Não sei onde avançar para configurar essas regras de "rejeitar". Parece que temos esse 'trabalho' no sistema Sendmail, mas queremos nos livrar desse sistema maligno e substituí-lo por um sistema Postfix.

Note que estamos tentando combinar a configuração do Sendmail o mais próximo possível. Nós atualmente temos tudo funcionando, exceto a rejeição de determinados endereços, e não sabemos ao certo como proceder ...

    
por Thomas Ward 09.01.2018 / 21:59

1 resposta

0

Eu finalmente consegui uma solução para isso, mas tive que incomodar o canal #postfix IRC no Freenode para obtê-lo. Eles sugeriram usar header_checks para processar corretamente os cabeçalhos com regex ou similar para determinar as políticas de rejeição.

Então, eu fiz isso. Eu coloquei header_checks = regexp:/etc/postfix/header_checks no arquivo main.cf para PostFix e, em seguida, configurei as regras como segue no arquivo /etc/postfix/header_checks :

/etc/postfix/header_checks:
    /^To: [email protected]/    REJECT Recipient rejected by policy.
    /^To: baduser@/              REJECT Recipient rejected by policy.

Isso pode ser expandido para verificar certos campos "De" ou outros itens nos cabeçalhos. Dito isto, você tem que saber o seu regex um pouco para fazer o trabalho. Você pode usar /^From: [email protected]/ para os campos De ou qualquer coisa, mas você precisa da parte /^ no início da regex para funcionar corretamente.

É uma pena que isso não esteja mais claramente documentado, mas eu consegui resolver o problema com header_checks , então isso conta como uma resposta.

    
por 19.01.2018 / 18:06