Postfix - Criando regras condicionais

Publicado por Fabio Soares Schmidt em 05/02/2014

[ Hits: 5.948 ]

 


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 NAT em containers Openvz: Iptables: No chain/target/match by that name

Cyrus IMAPD: Separando os meta-arquivos

Personalizar mensagem de erro no Squid

Dovecot - Mover Spam automaticamente para a pasta desejada

Dovecot: userdb reply doesn't contain uid (change userdb socket permissions)

Leitura recomendada

Dovecot: Adicionando mais informações na entrega da mensagem

Mudando a porta do webmail Zimbra

Rejeitando extensões maliciosas com Postfix

Cyrus IMAPD: Separando os meta-arquivos

Instalar pacote dcc-client no Debian Etch

  

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