Postfix no servidor de desenvolvimento, permite que o email seja enviado para apenas um domínio


11

Temos o postfix em nosso servidor de desenvolvimento, e eu gostaria que ele pudesse enviar apenas emails para o nosso domínio, e não para outros domínios, impedindo que usuários externos recebessem acidentalmente emails do nosso servidor de desenvolvimento.

Pesquisei os documentos, tentei várias coisas, mas ainda está enviando para todos os domínios ...

Respostas:


7

Os mapas transport (5) são usados ​​para redefinir como o email é roteado pelo postfix.

  • Adicione a seguinte linha ao /etc/postfix/main.cf:

    transport_maps = hash:/etc/postfix/transport
    
  • Adicione o novo arquivo / etc / postfix / transport com este conteúdo:

    .example.com   :
    example.com    :
    *              discard:
    

Substitua example.compelo domínio para o qual seu servidor de e-mail ainda deve enviar e-mails. Se você não se importa com subdomínios, remova a primeira linha.

Não se esqueça de fazer o hash do arquivo depois de editá-lo com postmap (1) e recarregar o postfix para que as alterações tenham efeito:

# postmap /etc/postfix/transport && postfix reload

7

Você pode restringir facilmente os destinatários com smtpd_recipient_restrictions padrão ou, mais precisamente, check_recipient_access .

Basta criar uma tabela de acesso (5)/etc/postfix/access com o seguinte conteúdo ( exemplo.com sendo o domínio para o qual você deseja permitir o envio de email):

example.com    OK

Você também pode permitir apenas alguns endereços específicos:

user1@example.com    OK
user2@example.com    OK

Não se esqueça de fazer o hash do arquivo depois de editá-lo com o postmap (1) :

# postmap /etc/postfix/access

Agora coloque as seguintes restrições de destinatário no seu main.cf:

smtpd_recipient_restrictions = 
    hash:/etc/postfix/access
    reject

e recarregue o Postfix:

postfix reload

Depois disso, teste se funciona .


1
Isso funcionará para mensagens enviadas via SMTP, não via comando / usr / lib / sendmail, e os processos locais podem fazer as duas coisas. Parece que a configuração 'author_submit_users' pode ser usada para bloquear o envio local com sendmail / postdrop, então as restrições smtpd serão suficientes.
Jacek Konieczny

6

Portanto, se alguém tropeçar nisso, como eu: a resposta é de fato header_checks e funciona da seguinte maneira:

  • Adicione a seguinte linha a /etc/postfix/main.cf:

    header_checks = regexp:/etc/postfix/header_checks
    
  • Adicione o novo arquivo /etc/postfix/header_checkscom este conteúdo:

    /^To:.*@allowed-domain.com/  DUNNO
    /^To:.*@/   REDIRECT redirect@example.com
    

Substitua allowed-domain.compelo domínio para o qual seu servidor de e-mail ainda deve enviar e-mails. Substitua redirect@example.compelo endereço de email para o qual todos os outros emails devem ser redirecionados.

Se você precisar permitir vários domínios, a primeira linha deve ficar assim:

/^To:.*@(allowed-domain.com|another-domain.com)/  DUNNO

Em vez de redirecionar, você pode simplesmente soltar todos os outros e-mails. Substitua a segunda linha acima por:

/^To:.*@/   DISCARD No outgoing mails allowed

Explicação:

  • O Postfix passa pelos cabeçalhos de email, um por um.
  • Cada linha de cabeçalho é comparada com o header_checksarquivo linha por linha.
  • Se corresponder à primeira linha ( To:contém o domínio permitido), pula para a próxima linha de cabeçalho e inicia as verificações de cabeçalho novamente a partir do topo. Como nenhuma outra linha corresponderá, isso significa que o correio é entregue.
  • Se corresponder à segunda linha ( To:contém outro endereço de email externo), redirecionará o email.

esse problema parece ter sido resolvido com esta resposta, talvez deva ser marcado como resolvido? (que funcionou como um encanto para mim pelo menos)
Sverre

Cc:e quanto Bcc:?
Paul Tobias

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.