Zimbra: Implementando o PolicyD – Parte 1

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:

Para evitar duplicidade na contagem das quotas, é necessário editar o arquivo (com o usuário root) /opt/zimbra/conf/zmconfigd/smtpd_sender_restrictions.cf removendo a linha abaixo:

%%contains VAR:zimbraServiceEnabled cbpolicyd^ check_policy_service inet:localhost:%%zimbraCBPolicydBindPort%%%%

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

Habilitar o serviço da interface de gerenciamento do PolicyD:

$ zmprov ms `zmhostname` +zimbraServiceInstalled apache +zimbraServiceEnabled apache

Recarregar as configurações da interface de gerenciamento:

$ zmapachectl reload

Efetuadas essas configurações, acesse a interface de gerenciamento através da seguinte URL:

http://SEU_ZIMBRA:7780/webui/

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.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s