Postfix - Criando regras condicionais

Publicado por Fabio Soares Schmidt em 05/02/2014

[ Hits: 6.246 ]

 


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

Utilizando o AMaViS para inserir Disclaimer

Cyrus Aggregator - Serviço Sieve não conecta no Backend [Resolvido]

Zimbra: Melhorando eficácia do seu anti-Spam

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

Thunderbird - Instalando complementos para todos os usuários

Leitura recomendada

Checando automaticamente seu Gmail pelo Firefox

Alterar simscan para qmail-scanner

Postfix - Erro: fatal: no SASL authentication mechanisms [Resolvido]

SpamAssassin - Melhorando a eficácia do seu anti-spam

Cyrus IMAP: Eliminar mensagens "fetching user deny" no código

  

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