O Zimbra, é uma suite colaborativa de e-mail muito poderosa, cujo foco é ser uma alternativa livre ao Microsoft Exchange. Com suas duas versões disponíveis, a versão Network Edition (NE) e a Open Source, ele consegue, no mínimo equiparar-se a solução oferecida pela Microsoft, tendo a sua versão NE voltada a empresas que precisam de suporte e ferramentas de backup mais avançadas.
Neste artigo, iremos abordar a versão Open Source, a qual não possui o suporte da equipe de desenvolvimento, bem como algumas outras limitações. Limitações estas que não devem impedir o seu funcionamento e aplicação em pequenas e médias empresas.
Caso você prefira, pode efetuar o download da versão Trial do Zimbra Network Edition, para efetuar testes.
Um pouco mais sobre o Zimbra
O Zimbra nasceu para ser uma alternativa ao Exchange, como já mencionado anteriormente, no mundo Linux. Em meio a tantos webmails e e-mail’s servers, faltava ainda uma solução mais integrada, ao estilo Exchange, e que fosse simples de ser mantida e atualizada.
Atualmente, o Zimbra conta com muitas funções, dentre elas, podemos citar a integração com LDAP, clustering, entre outras, tudo isso disponível através de uma interface Web para administração, completa e funcional, onde você consegue efetuar todos os serviços do dia-a-dia, desde o cadastro de um novo e-mail, a aplicação de quotas e criação de aliases.
Também, não podemos esquecer-nos dos webmails. O Zimbra possui um webmail em Ajax, extremamente completo, que não deixa nada a dever frente ao Microsoft Outlook, tendo desde um calendário a catálogo de e-mail (dentre muitas outras opções), até um sistema de Instant Messenger (isso me lembra Google). Um detalhe acerca do Calendário e do Catalogo de endereços, é a sua integração com o Zimbra Desktop (cliente de e-mail do Zimbra), ele é para o Zimbra o mesmo que o Microsoft Outlook é para o Exchange. Ainda contamos, na versão NE, com a integração com o próprio Microsoft Outlook, onde este atua como se fosse um Exchange.
Ainda, com relação aos webmails, o Zimbra disponibiliza um em html, mais simples, voltado a conexões lentas, com praticamente todas as funcionalidades da versão full (em Ajax), particularmente, eu me dei por falta apenas do Instant Messenger nesta versão. E como se não bastasse, para quem deseja acessar seus e-mail a partir de um celular, existe um webmail para este fim disponível. 🙂
A instalação
A instalação do Zimbra é bem tranqüila e sem dificuldades na maioria das vezes. No meu caso, quando efetuei a instalação, encontrei alguns pequenos problemas, que irei relatar neste artigo, mostrando-lhes como resolve-los caso ocorram.
Particularmente, eu prefiro o CentOS nestes casos, por ele ser um “Red Hat bastardo”, ele traz consigo muitas características do mesmo (para não dizer uma cópia fiel :).
A instalação do sistema pode ser o mais limpa possível, utilizando uma distribuição com suporte a resolução de dependências (como todas as suportadas pelo Zimbra), fica mais fácil efetuar este tipo de instalação. Lembrando de deixar o básico para que tudo funcione, o resto você pode remover. Mantenha apenas um editor de texto, navegadores Web via linha de comando (caso precise) o man, o básico do sistema e suas bibliotecas, compiladores e etc.
Infelizmente não existe versão suportada nativamente para o CentOS 5, logo, vamos utilizar os pacotes do seu irmão “genuíno”, o RHEL 5.
Você pode obter os pacotes no link abaixo:
http://www.zimbra.com/community/downloads.html
Como nos efetuamos uma instalação bem limpa do sistema, precisamos resolver algumas dependências, vamos faze-lo utilizando o gerenciador de pacotes do CentOS. (aplica-se também à distros Debian Based)
OBS.:. Nesta dica, para facilitar o andamento, utilizaremos o “#” para ilustrar comandos efetuados como root, e o “$” para comandos efetuados como usuário comum.
Em um terminal, como root, digite:
# yum install Pearl, fetchmail, OpenSSL, Libxml, gmp, compat-libstdc++-33, Sudo, audit-libs, Libtool, libtool-libs, GCC, Make, compat-libstdc++-33, openssl097a, compat-db
ou, se for Debian-based
# apt-get install Pearl, fetchmail, OpenSSL, Libxml, gmp, compat-libstdc++-33, Sudo, audit-libs, Libtool, libtool-libs, GCC, Make, compat-libstdc++-33, openssl097a, compat-db
Você precisa remover qualquer aplicativo servidor de e-mail, como postfix, sendmail e exim, que possam estar instalados em seu servidor, pois o Zimbra irá tomar conta dos serviços de e-mail por nós. Ele traz consigo uma compilação específica do Postfix, customizada para ele. Também remova servidores Web (Apache), LDAP (OpenLDAP), IMAP/POP (Dovecot/Courrier) e etc, pois todos estes são disponibilizados pelo próprio Zimbra, e caso exista algum rodando em seu computador, a instalação poderá falhar, ou o Zimbra irá utilizar portas não padrão para rodar, o que não nos trará um resultado muito legal 🙂
Feito isso, atualize TODA a distribuição, com o comando abaixo:
ou, caso seja Debian:
Agora, precisamos organizar o arquivo hosts, que fica em /etc.
Este arquivo é responsável pela resolução de DNS interna do seu computador, este é o primeiro arquivo a ser consultado (antes do servidor de DNS, inclusive) durante uma resolução DNS.
Neste arquivo, deve constar o domínio e o hostname do seu servidor. No caso, será o endereço no qual o Zimbra irá responder.
Edite o arquivo com seu editor de texto favorito, eu prefiro o mcedit.
O arquivo /etc/hosts deve ficar organizado da forma abaixo:
Exemplo:
192.168.0.1 host.meudominio.com.br host
127.0.0.1 localhost.localdomain localhost
## IpV6
::1 localhost6.localdomain6 localhost6
Onde:
- hostname ? Nome do seu computador
- exemplo: zimbrasrv
- meudominio.com.br ? Seu domínio (pode ser .com, .net e por aí vai). Exemplo: server.com.br
Com estes dois, nos montamos o endereço completo “host.meudominio.com.br”
- Exemplo: zimbrasrv.server.com.br
Antes de prosseguir com a instalação, certifique-se de que o servidor de DNS que você utilizará, já possua os apontamentos corretos feitos para o seu servidor.
Agora, finalmente iremos iniciar a instalação.
Efetue o download da última versão do Zimbra, normalmente eu salvo estes arquivos em /opt:
# wget http://h.yimg.com/lo/downloads/5.0.14_GA/ zcs-5.0.XX_GA_XXX.RHEL5.XXXXXXXXXXXXXX.tgz
OBS.: Não coloquei o link completo acima pois dentro de poucos meses deve sair uma nova revisão do Zimbra.
Agora, tendo terminado o Download, acesse o diretório (caso ainda não esteja nele) e descompacte o arquivo.
OBS.: substituí os números da versão por X, pois você pode estar utilizando outra versão do aplicativo
Agora, podemos acessar o diretório que foi criado, onde devem estar os scripts de instalação, bem como os pacotes pré-compilados.
Torne o install.sh executável, para que possamos iniciar a instalação:
Finalmente, execute o script de instalação:
OBS.: –platform-override : Esta opção é utilizada para que o script não faça o check de distribuição. Como estamos instalando em um CentOS5, com pacotes do Red Hat, o script irá abortar a instalação pois a distribuição não confere.
Para maiores informações sobre outras opções, como pular a checagem de espaço em disco, execute o script install.sh com a opção “–help”:
Apêndice – A Gambiarra
Este passo pode ser necessário caso o sistema não consiga verificar de forma correta as dependências, isto ocorreu apenas na versão 5.0.14, talvez, neste momento, o instalador já tenha sido corrigido.
Edite o Arquivo “install.sh” e localize a função CheckDepend, comente-a e rode o script novamente.
Continuando a instalação
O script deverá listar-lhe algumas informações na tela, como o check de dependências e o famoso contrato de licença. Siga as instruções na tela que não deve haver erro, este ponto é “a la Windows”, apenas um “Yes” e “Accept” :).
No próximo ponto o instalador deverá perguntar quais pacotes você deseja instalar. Particularmente, eu não instalo os Proxy’s, pois eles gastam mais processamento. Caso você seja fanático por segurança, e tenha uma máquina bem robusta, os Proxy’s podem dar uma incrementada neste ponto. (ver tela abaixo)
Install zimbra-logger [Y]
Install zimbra-mta [Y]
Install zimbra-snmp [Y]
Install zimbra-store [Y]
Install zimbra-apache [Y]
Install zimbra-spell [Y]
Install zimbra-proxy [N]
Pronto, agora nos selecionamos os pacotes que queremos instalar, o script de instalação é que irá se encarregar do trabalho pesado por nós, como conferir os pacotes e etc. Porém, neste pondo um aviso nos será dado (caso você esteja rodando o ContOS). Nada de pânico, lembre-se que estamos utilizando os pacotes do Red Hat, então ele irá nos avisar que o sistema será alterado. Responta sim (com Y) para todas as perguntas: (tela abaixo)
than the platform for which they were built
This platform is CentOS5
Packages found: zimbra-core-5.0.XX_GA_XXX.RHEL5-XXXXXXXXXXXXXX.i386.rpm
This may or may not work
Install anyway? [N] Y
The system will be modified. Continue? [N] Y
Agora, você pode tomar um cafézinho (dependendo do servidor, é claro), e aguardar o termino da instalação dos pacotes, que deverá ser automática. Caso ocorra algum erro, verifique se os pacotes não estão com problemas (pacotes corrompidos devido a problemas no download e etc) ou defeito de hardware.
Concluída a instalação, você irá receber uma mensagem de erro. Não se assuste, esta mensagem é normal. O instalador apenas irá informar que não foi possível resolver o domínio, e lhe perguntará se você quer configura-lo manualmente: (tela abaixo)
It is suggested that the hostname be resolveable via DNS
Change hostname [Yes] Yes
Digite YES, para especificar o endereço completo do seu servidor (zimbrasrv.server.com.br, como no exemplo utilizado anteriormente)
Mais um aviso de erro na resolução DNS será exibido em seguido: (tela abaixo)
It is suggested that the domain name have an MX record configured in DNS
Change domain name? [Yes] Yes
Novamente, digite YES, para neste momento especificar apenas o domínio (server.com.br – do exemplo anterior)
Este domínio cadastrado acima, será o domínio principal (Default Domain) do Zimbra, você pode cadastrar mais domínios pelo painel de administração posteriormente. Através dele, você irá fazer o primeiro acesso ao painel de controle e ao webmail. 🙂
Resolvidos os “problemas”, vamos para a configuração básica do Zimbra. Nela, será exibida a tela abaixo:
1) Common Configuration:
2) zimbra-ldap: Enabled
3) zimbra-store: Enabled
+Create Admin User: yes
+Admin user to create: [email protected]
******* +Admin Password UNSET
+Enable automated spam training: yes
+Spam training user: [email protected]
+Non-spam(Ham) training user: [email protected]
+Global Documents Account: [email protected]
+SMTP host: debian2.exemplo.com.br
+Web server HTTP port: 80
+Web server HTTPS port: 443
+Web server mode: http
+IMAP server port: 143
+IMAP server SSL port: 993
+POP server port: 110
+POP server SSL port: 995
+Use spell check server: yes
+Spell server URL: http://debian2.exemplo.com.br:7780/aspell.php
4) zimbra-mta: Enabled
5) zimbra-snmp: Enabled
6) zimbra-logger: Enabled
7) zimbra-spell: Enabled
8) Default Class of Service Configuration:
r) Start servers after configuration yes
s) Save config to file
x) Expand menu
q) Quit
Durante a configuração básica, você deve setar APENAS a senha do administrador. Para isto, selecione a opção 3 do menu, e depois no próximo menu, a opção 4, para efetuar a troca da senha do usuário “Admin”.
Efetuado o cadastro da senha, pressione “r” até voltar a tela inicial (menu listado anteriormente).
Pronto, precisávamos setar apenas esta senha para que tudo possa funcionar. Para aplicar a configuração, pressione “a”.
Em seguida, o instalador irá solicitar-lhe que salve a configuração, basta seguir a instrução na tela que não tem erro 🙂
Após salvar a configuração, ele irá perguntar se você deseja iniciar o servidor Zimbra; bom, acredito que a esta altura você já esteja curioso para vê-lo funcionando, então selecione sim (“Y”)
Pronto, os serviços serão carregados em alguns minutos (dependendo da configuração do servidor, poderá demorar algum tempo), e após terem iniciado, você pode acessar o painel de administração da seguinte maneira, através de seu navegador favorito, em outro computador que esteja na mesma rede:
https://zimbrasrv.server.com.br:7071/
O acesso ao webmail fica na porta 80 do domínio/host cadastrado, sendo assim, não há necessidade de especificar porta:
http://zimbrasrv.server.com.br
Dicas básicas de administração
Para iniciar, parar ou reiniciar os serviços do Zimbra no CentOS ou RHEL, você pode utilizar o comando abaixo, em um terminal:
no debian:
ou ainda, utilizamos o su (como root) e rodamos o zmcontrol a partir do usuário “zimbra”, criado automaticamente pelo instalador do zimbra:
Caso queira utilizar mais comandos administrativos, acesse a conta zimbra (mencionada anteriormente):
E basta dar um zm(tab) para ver as opções administrativas.
Ex.: zmcontrol status -> lista o estado dos servidores do Zimbra
OBS. 1: Os controles do zimbra ficam em /etc/zimbra/bin e /etc/zimbra/libexec, inclusive é possível reconfigurar todo o servidor através de /etc/zimbra/libexec.
OBS. 2: As funções/serviços do zimbra contidos em /etc/zimbra/bin somente funcionam com o usuário zimbra.
Para mante-lo atualizado, basta seguir os mesmos passos da instalação. O script irá detectar que você já possui o zimbra instalado e fará apenas a atualização dos pacotes, de forma transparente, e sem solicitar quaisquer configuração.
Algumas dicas, e resolvendo possíveis problemas
Renovação de certificados SSL
O Zimbra precisa que os certificados de segurança sejam atualizados a cada ano, para isso, basta seguir os passos abaixo:
Criar o certificado CA:
Instalar o certificado CA:
Criar o certificado do servidor:
Para isso, remova antes o certificado antigo:
Agora crie o novo
Pronto, agora efetue a instalação do certificado:
Agora basta reiniciar o zimbra:
No CentOS
No Debian
ou, como usuário zimbra
# zmcontrol stop
# zmcontrol start
Ativar HTTPS para o webmail
Hoje em dia, a segurança é um ponto muito solicitado pelos usuários, e a utilização de SSL para acesso ao webmail passou a ser uma exigência dos usuários. O Zimbra conta com este tipo de acesso, e este pode ser configurado.
Para ativar a conexão SSL no webmail do Zimbra:
Logue-se como usuário zimbra:
E agora, vamos utilizar o zmylsctl, com um dos parâmetros listados abaixo:
- http – Apenas modo http (http://webmail.dominio.com)
- https – Apenas modo https (https://webmail.dominio.com) – Você NÃO será redirecionado do http para o https.
- mixed – Ambos os modos, ao conectar no modo http, você é direcionado automaticamente para o modo https.
- both – O usuário pode utilziar tanto http quanto https.
Por exemplo:
Após ter efetuado estas alterações, o Zimbra deve ser reiniciado.
Digite os comandos em no terminal:
No CentOS
No Debian
ou, como usuário zimbra
# zmcontrol stop
# zmcontrol start
OBS.: Como os certificados não são autenticados por uma certificadora válida, sempre irá ocorrer o famoso erro de certificado nos navegadores, sendo assim, é interessante trabalhar com o “modo both”
Possíveis Problemas
Resolvendo o problema: “Não é possível exibir o status do servidor” – No painel de controle do Zimbra
Caso o Zimbra não consiga exibir o status do sistema no Painel de Administração, deve-se adicionar as tarefas agendadas do mesmo no crontab:
Acesse o crontab do usuário Zimbra:
Agora, adicione as tarefas abaixo:
#
# Log pruning
#
30 2 * * * find /opt/zimbra/log/ -type f -name *.log* -mtime +8 -exec rm {} ; > /dev/null 2>&1
#
# Status logging
#
*/2 * * * * /opt/zimbra/libexec/zmstatuslog
*/10 * * * * /opt/zimbra/libexec/zmdisklog
#
#
# crontab.ldap
#
#
# crontab.store
#
# Log pruning
#
30 2 * * * find /opt/zimbra/mailboxd/logs/ -type f -name *log* -mtime +8 -exec rm {} ; > /dev/null 2>&1
0 2 * * * /opt/zimbra/libexec/zmroll_catalina > /dev/null 2>&1
#
# Purge messages
#
0 3 * * * /opt/zimbra/libexec/zmpurgemessages > /dev/null 2>&1
#
# Clean up the quarantine dir
#
0 1 * * * find /opt/zimbra/amavisd/quarantine -type f -mtime +7 -exec rm -f {} ; > /dev/null 2>&1
#
# Table maintenance
#
30 1 * * 7 /opt/zimbra/libexec/zmmaintaintables >> /dev/null 2>&1
# Report on any database inconsistencies
#
0 23 * * 7 /opt/zimbra/libexec/zmdbintegrityreport -m
#
# Monitor for multiple mysqld to prevent corruption
#
*/5 * * * * /opt/zimbra/libexec/zmcheckduplicatemysqld -e > /dev/null 2>&1
#
# crontab.logger
#
# process logs
#
00,10,20,30,40,50 * * * * /opt/zimbra/libexec/zmlogprocess > /tmp/logprocess.out 2>&1
#
# Graph generation
#
10 * * * * /opt/zimbra/libexec/zmgengraphs >> /tmp/gengraphs.out 2>&1
#
# Daily reports
#
10 1 * * * /opt/zimbra/libexec/zmdailyreport -m
#
#
# crontab.mta
#
#
# Queue logging
#
0,10,20,30,40,50 * * * * /opt/zimbra/libexec/zmqueuelog
#
# Spam training
#
0 23 * * * /opt/zimbra/bin/zmtrainsa >> /opt/zimbra/log/spamtrain.log 2>&1
#
# Spam training cleanup
#
45 23 * * * /opt/zimbra/bin/zmtrainsa –cleanup >> /opt/zimbra/log/spamtrain.log 2>&1
#
# Dspam cleanup
#
#
#0 1 * * * find /opt/zimbra/dspam/var/dspam/data/z/i/zimbra/zimbra.sig/ -type f -name *sig -mtime +7 -exec rm {} ; > /dev/null 2>&1
#8 4 * * * /opt/zimbra/dspam/bin/dspam_logrotate -a 60 /opt/zimbra/dspam/var/dspam/system.log
#8 8 * * * /opt/zimbra/dspam/bin/dspam_logrotate -a 60 /opt/zimbra/dspam/var/dspam/data/z/ou
#
# Spam Bayes auto-expiry
#
20 23 * * * /opt/zimbra/libexec/sa-learn -p /opt/zimbra/conf/salocal.cf –dbpath /opt/zimbra/amavisd/.spamassassin –siteconf
igpath /opt/zimbra/conf/spamassassin –force-expire –sync > /dev/null 2>&1
#
# Clean up amavisd/tmp
#
15 5,20 * * * find /opt/zimbra/amavisd/tmp -maxdepth 1 -type d -name ‘amavis-*’ -mtime +1 -exec rm -rf {} ; > /dev/null 2>&1
# ZIMBRAEND — DO NOT EDIT ANYTHING BETWEEN THIS LINE AND IMBRASTART