Como restringir alguns usuários do Zimbra a enviar e/ou receber emails apenas para domínios específicos [ATUALIZADO]
Posted by Paulo Arruda | Posted in Linux | Posted on 02-02-2011
Tags:envio, postfix, recebimento, restringir, restringir domínios, restringir usuários, zimbra
12
ATUALIZADO: Este tutorial foi atualizado e testado para a versão 6.xx do Zimbra.
Certa vez um cliente me pediu para restringir apenas alguns usuários do Zimbra a enviar e receber emails apenas para o domínio do correio da empresa. Fuçando na internet, não achei uma documentação que explicasse como fazer ambas as restrições, apenas cada uma separadamente.
Infelizmente, as inúmeras soluções existentes no Wiki do Zimbra não coexistem em paz. Fui procurar ajuda na documentação oficial do Postfix. Resolvi meu problema e vou postar aqui como.
Este tutorial é baseado no Zimbra Colaboration Suite 6 Open Source.
Obs.: Tudo é feito com o usuário ROOT.
Edite o arquivo /opt/zimbra/postfix/conf/main.cf e mude a linha que começa com “smtpd_recipient_restrictions” para:
smtpd_recipient_restrictions = check_recipient_access hash:/opt/zimbra/conf/receber, reject_non_fqdn_recipient, permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination, reject_unlisted_recipient, reject_invalid_hostname, reject_non_fqdn_sender, permit
Agora, adicione as seguintes linhas ao final do mesmo arquivo:
smtpd_sender_restrictions = check_sender_access hash:/opt/zimbra/conf/enviar
restringe_recebimento = check_sender_access hash:/opt/zimbra/conf/dominios, reject
restringe_envio = check_recipient_access hash:/opt/zimbra/conf/dominios, reject
smtpd_restriction_classes = restringe_envio,restringe_recebimento
Edite o arquivo /opt/zimbra/conf/postfix_recipient_restrictions.cf e adicione a linha abaixo no início do arquivo:
check_recipient_access hash:/opt/zimbra/conf/receber
Crie os arquivos enviar, receber e domínios:
touch /opt/zimbra/conf/{enviar,receber,dominios}
chown zimbra.zimbra /opt/zimbra/conf/{enviar,receber,dominios}
Crie o script /opt/zimbra/conf/atualizar.sh com o seguinte conteúdo:
#!/bin/bash
POSTMAP="/opt/zimbra/postfix/sbin/postmap"
cd /opt/zimbra/conf
echo > enviar
echo > receber
echo > dominios
for i in $(cat emails_enviar.txt| grep -v "^#")
do
echo $i restringe_envio >> enviar
done
for i in $(cat emails_receber.txt| grep -v "^#")
do
echo $i restringe_recebimento >> receber
done
for i in $(cat dominios.txt| grep -v "^#")
do
echo $i OK >> dominios
done
$POSTMAP dominios
$POSTMAP enviar
$POSTMAP receber
chown zimbra. enviar* receber* dominios* emails*
su - zimbra -c "zmmtactl stop"
su - zimbra -c "zmmtactl start"
E torne-o executável:
chmod +x /opt/zimbra/conf/atualizar.sh
Agora vamos criar os arquivos que você irá editar toda vez que quiser incluir ou excluir contas restritas e domínios para os quais estas contas restritas poderão interagir recebendo/enviando emails:
ATENÇÃO: os arquivos abaixo NÃO podem ficar vazios.
Crie o arquivo /opt/zimbra/conf/dominios.txt. Neste arquivo você deve colocar os domínios para os quais as contas restritas podem enviar ou receber emails. Exemplo:
suaempresa1.com.br
suaempresa2.com.br
Crie o arquivo /opt/zimbra/conf/emails_enviar.txt. Neste arquivo você deve colocar a lista das contas que só podem enviar emails para os domínios contidos em /opt/zimbra/conf/dominios.txt. Separe cada usuário por linha, respeitando a sintaxe do arquivo. Exemplo:
rh@suaempresa1.com.br
fulano@suaempresa1.com.br
beltrano@suaempresa2.com.br
Por fim, crie o arquivo /opt/zimbra/conf/emails_receber.txt. Neste arquivo, coloque a lista das contas que só podem receber emails dos domínios contidos em /opt/zimbra/conf/dominios.txt. Separe cada usuário por linha, respeitando a sintaxe do arquivo. Exemplo:
rh@suaempresa1.com.br
fulano@suaempresa1.com.br
beltrano@suaempresa2.com.br
Ao final de tudo pronto, rode como ROOT o script criado anteriormente:
/opt/zimbra/conf/atualizar.sh
Espero ter ajudado


