Policyd é um plugin antispam, que pode ser integrado ao Postfix, MTA utilizado no Zimbra, este plugin por sua vez possui módulos de utilização de quotas, controles de acessos, checagens de SPFs, greylist, integrações com Amavis entre outros, por padrão ele vem integrado a instalação do Zimbra desde sua versão 7.

Policyd possui módulos de quota, este módulo pode ser usado para limitar o envio/recebimento de e-mails por um determinado período, por exemplo eu posso configurar um envio de 200 e-mails por hora por usuário para um determinado domínio, ou efetivar esta política como padrão no seu ambiente, se alguma conta for comprometida enviando uma quantidade de spams, somente 200 e-mails por hora serão enviados, esta política irá dar tempo de você conseguir (caso haja monitoramento) para este ataque sem que seu IP caia em alguma RBL.

Outra situação interessante é possuir listas de distribuição no postfix somente internas com controles de acessos, onde somente determinados e-mails possam enviar e-mails para esta lista, ou restringir o envio de determinadas contas para conseguirem enviar e ou enviar/receber e-mails de domínios internos, ou domínios criados a partir de uma lista/grupo.

Diversas configurações são possíveis com este plugin, acredito que estarei postando algumas dicas de como configurar estas situações acima no decorrer desta semana.

A instalação

Como falado acima o Policyd vem no Bundle de instalação do Zimbra desde a versão 7 sendo assim é somente necessário habilitar para efetivar o seu funcionamento, é muito fácil verifique abaixo:

Ativando o Policyd

sudo su - zimbra
zmprov ms `zmhostname` +zimbraServiceInstalled cbpolicyd +zimbraServiceEnabled cbpolicyd
zmlocalconfig -e postfix_enable_smtpd_policyd=yes
zmprov mcf +zimbraMtaRestriction "check_policy_service inet:127.0.0.1:10031"

Ativando a interface Web do Policyd WebUI

Execute os comandos abaixo como ROOT

cd /opt/zimbra/httpd/htdocs/ ; ln -s ../../cbpolicyd/share/webui

Editar o arquivo /opt/zimbra/cbpolicyd/share/webui/includes/config.php e adicionar “#” na frente de todas as linhas iniciadas por $DB_DSN e adicionar a linha abaixo antes da linha iniciando com $DB_USER.

Verifique o exemplo abaixo:

#$DB_DSN="mysql:host=localhost;dbname=cluebringer";
$DB_DSN="sqlite:/opt/zimbra/data/cbpolicyd/db/cbpolicyd.sqlitedb";
$DB_USER="root";

Reinicie o serviço do Zimbra e o Serviço do Apache do Zimbra

su - zimbra -c "zmcontrol restart" ; su - zimbra -c "zmapachectl restart"

Agora você pode acessar a interface Web do Policyd pela URL http://HostnameDoZimbra:7780/webui/index.php

Para ajuda a debugar a utilização da ferramente verifique os logs com o comando:

tail -f /opt/zimbra/log/cbpolicyd.log

Se mais tarde você precisar configurar uma senha para acessar o Policyd, dê uma olhadinha no nosso material Configurar Senha Para Acesso ao Policyd que ensina como realizar este processo.