Olá! Certamente uma das grandes preocupações de administradores de ambientes de E-mail é não ser incluído em blacklists. Um eventual comprometimento de alguma conta pode levar a inclusão em blacklists ao gerar uma grande quantidade de e-mails enviados.
O Zimbra possui a integração nativa com o software PolicyD, que, entre outras funcionalidades, permite a implementação de políticas de controle de envio de mensagens em um determinado período de tempo.
Portanto, irei dedicar uma série de artigos a implementações do PolicyD com o Zimbra.
Neste primeiro artigo, veremos como implementar o serviço e sua interface de administração em um ambiente single-server. Todos os artigos são homologados para a versão 8.8 do Zimbra, edições OSE e NE.
Primeiramente, vamos habilitar o serviço do PolicyD:
$ zmprov ms `zmhostname` +zimbraServiceEnabled cbpolicyd
Após habilitar o serviço, deve-se aguardar cerca de 5 minutos, pois o sistema irá detectar automaticamente que o serviço deve estar habilitado, irá criar a base de dados (sqlite) e iniciar o serviço. A base de dados será criada no diretório /opt/zimbra/data/cbpolicyd/db.
Conteúdo criado automaticamente pelo PolicyD:
Embora o gerenciamento das políticas do PolicyD possa ser efetuado manipulando diretamente a base sqlite, o serviço conta com uma interface WEB, portanto iremos ativar este recurso.
Vamos criar (com o usuário root) o caminho para habilitar a interface de gerenciamento do PolicyD:
# cd /opt/zimbra/data/httpd/htdocs/ && ln -s ../../../common/share/webui
Agora vamos editar (com o usuário root) o arquivo /opt/zimbra/common/share/webui/includes/config.php deixando-o da seguinte forma:
Configurações em texto: #$DB_DSN="sqlite:////tmp/cluebringer.sqlite"; #$DB_DSN="mysql:host=localhost;dbname=cluebringer"; $DB_DSN="sqlite:////opt/zimbra/data/cbpolicyd/db/cbpolicyd.sqlitedb"; $DB_USER="root"; #$DB_PASS=""; #$DB_TABLE_PREFIX="";
Vamos configurar o acesso autenticado na interface de gerenciamento do PolicyD:
Editar o arquivo /opt/zimbra/conf/httpd.conf (com o usuário root), aplicando as seguintes alterações:
#ALTERADO "index.php" no final: <IfModule dir_module> DirectoryIndex index.html index.html.var index.php </IfModule> #ADICIONA NO FINAL DO ARQUIVO a proteção do diretório do policyd: Alias /webui /opt/zimbra/common/share/webui/ <Directory /opt/zimbra/common/share/webui/> AllowOverride AuthConfig Order Deny,Allow Allow from all </Directory>
Vamos criar o arquivo /opt/zimbra/common/share/webui/.htaccess:
Configurações em texto: AuthUserFile /opt/zimbra/common/share/webui/.htpasswd AuthName "User and Password" AuthType Basic Require valid-user
Entrar no diretório /opt/zimbra/common/share/webui/ e criar o arquivo .htpasswd:
# cd /opt/zimbra/common/share/webui/
Criar o usuário (admin_policyd neste exemplo) para acesso à interface e definir a senha:
# /opt/zimbra/common/bin/htpasswd -c .htpasswd admin_policyd
Recarregar as configurações da interface de gerenciamento:
$ zmapachectl reload
Efetuadas essas configurações, acesse a interface de gerenciamento através da seguinte URL:
Após exigir o usuário e senha, a interface de gerenciamento deverá ser carregada:
Após esses procedimentos, o PolicyD está implementado e pronto para receber as políticas, que irei abordar no próximo artigo desta série.
Olá Fábio, obrigado pelo tutorial! Funcionou corretamente, criei as regras e via webmail funciona perfeitamente, porem quando uso cliente de e-mail pra enviar o e-mail ele não contabiliza, alguma coisa errada com SASLUsername ? sabe me dizer o que tenho que fazer pra resolver esse problema ?
Obrigado
Bom dia Fábio. Tenho o PolicyD instalado no meu ambiente, porem estou com um problema para tratar e-mails externos dentro da política. Criei uma grupo (ACL) para limitar o envio de mensagens para listas controladas e adicionei alguns e-mails de domínios externos. A política funciona corretamente para os endereços internos mas não para os externos. No cbpolicyd.log puder ver que o campo from= fica em branco quando um e-mail externo envia para alguma lista controlada. Já viu esse problema? Agradeço desde já e parabéns pelo ótimo conteúdo que você se dispõe a compartilhar com a comunidade.
Ao ativar o Policyd e fazer a configuração meu Serviço não inicia – apresenta erro – Starting cbpolicyd error failed. Gostaria de auxilio para resolver o erro.
Estou usando o Ubuntu 16.04 com o Pacote zcs-8.8.12_GA_3794.UBUNTU16_64.20190329045002.tgz