Postfix - Criando regras condicionais

Publicado por Fabio Soares Schmidt em 05/02/2014

[ Hits: 6.280 ]

 


Postfix - Criando regras condicionais



É muito comum, termos que criar regras condicionais em nosso MTA, que serão aplicadas a remetentes, destinatários ou domínios específicos.

No Postfix, isso pode ser feito através da diretiva smtpd_restriction_classes.

Vamos imaginar o seguinte cenário: uma organização possui dois domínios (vamos assumir que sejam "matriz.com.br" e "filial.com.br") e precisa criar regras para que determinados usuários enviem e-mail somente para os domínio internos, ou até mesmo um único domínio interno.

Iniciamos a configuração criando essas classes no main.cf:

smtpd_restriction_classes = somente_matriz, somente_filial, somente_interno

somente_matriz = check_recipient_access hash:/etc/postfix/condicionais/somente_matriz, reject

somente_filial = check_recipient_access hash:/etc/postfix/condicionais/somente_filial, reject

somente_interno = check_recipient_access hash:/etc/postfix/condicionais/somente_interno, reject

Portanto, com a diretiva smtpd_restriction_classes, criamos as três classes e, logo abaixo, especificamos cada uma delas, sendo que, após a verificação do arquivo, há a rejeição explícita.

Para definir a quem se aplica a regra, precisamos criar um arquivo para efetuar essa consulta, e como estamos criando um controle de destinatário, colocar a consulta em smtpd_recipient_restrictions:

check_sender_access hash:/etc/postfix/condicionais/regras_condicionais

Lembrando que esta regra deve vir em primeiro lugar, pois, mesmo se o remetente estiver conectando de um host confiável ou autenticado, o bloqueio deve ser aplicado, por exemplo:

smtpd_recipient_restrictions = check_sender_access hash:/etc/postfix/condicionais/regras_condicionais,
permit_mynetworks,
reject_sender_login_mismatch,
permit_sasl_authenticated,
reject_unauth_destination,
reject_unlisted_recipient,
reject_unverified_recipient,
reject

O arquivo regras_condicionais é escrito da desta forma:

fulano@matriz.com.br            somente_matriz

beltrano@filial.com.br            somente_filial

sicrano@matriz.com.br           somente_interno

Neste exemplo temos três usuários, onde estamos aplicando classes diferentes e outros usuários não estarão em nenhuma.

O arquivo somente_matriz fica da seguinte forma:

matriz.com.br OK

O arquivo somente_filial fica da seguinte forma:

filial.com.br OK

O arquivo somente_interno fica da seguinte forma:

matriz.com.br OK

filial.com.br OK

Portanto, para cada classe, definimos o domínio de destino seguindo da diretiva OK, informando ao Postfix que deve ser permitido e, como após a consulta do arquivo definimos um reject, o envio para domínios fora da regra será negado.


Obrigado,
Respirando Linux, por Fabio Soares Schmidt.
Outras dicas deste autor

Configurando o AMaViS em servidor dedicado

Personalizar mensagem de erro no Squid

Zimbra: Aplicando patch para a falha Heartbleed

Thunderbird: Desabilitando tela de importação de mensagens

Zimbra - "Erro: PKIX path building failed" ao executar o Zmmailbox

Leitura recomendada

Configurando o Thunderbird para trabalhar com contas Hotmail

Qmail: Solução para relay aberto

Fixando assinatura no Evolution Mail

Postfix: Adicionando disclaimer - Exceções de remetentes

Smtp autenticado, erro SASL

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts