Postfix - Criando regras condicionais

Publicado por Fabio Soares Schmidt em 05/02/2014

[ Hits: 5.092 ]

 


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:

[email protected]            somente_matriz

[email protected]            somente_filial

[email protected]           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

Liberar o MSN para usuários determinados

suspicious cache-id, must contain _cv_ to be cached ao compilar o rdesktop

Cyrus IMAPD: Separando os meta-arquivos

Forçando cache do Windows Update com Squid (Atualizado)

Controlar tamanho máximo do download com squid: reply_body_max_size

Leitura recomendada

Cyrus Aggregator: Configurando o Postfix nos servidores back-end

Fixando assinatura no Evolution Mail

Criando uma conta de auditoria de e-mails

Corretor ortográfico em português no Thunderbird

Thunderbird - Usando a mesma caixa de entrada no Windows e no Linux

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts