Zimbra
10/11/2008 12:08InstallZimbra
......................
Este artigo (artigo original) foi gentilmente concedido por Guto Carvalho (https://www.gutocarvalho.net).
Sistema Operacional: Debian Etch 32 Bits
Groupware: Zimbra 5.08Tabela de conteúdo [esconder]
1 Um pouco sobre o Zimbra
1.1 Features para os usuários
1.2 Features para os Administradores
1.3 Do que é feito o Zimbra
1.4 Componentes do Zimbra
1.5 Arquitetura do Zimbra
1.5.1 Zimbra Core
1.5.2 Zimbra LDAP
1.5.3 Zimbra MTA
1.5.4 Zimbra Store
1.5.4.1 Data Store
1.5.4.2 Message Store
1.5.4.3 Index Store
1.5.5 Zimbra SNMP
1.5.6 Zimbra Logger
1.5.7 Zimbra Spell
1.5.8 Zimbra Backup
1.6 Pulos do gato no Zimbra
1.7 Sobre licença, uso, logos e host de serviços usando zimbra
2 O que versão Community não oferece?
3 Requisitos de instalação
3.1 Requesitos mínimos para ambiente de testes (segundo wiki zimbra)
3.2 Requesitos mínimos para rodá-lo em produção (segundo wiki zimbra)
3.3 Requesitos mínimos para rodá-lo em produção (segundo o guto)
4 Quais navegadores são suportados pelo Zimbra
5 Explanação sobre Migrações
6 Instalando Zimbra em Diversos Cenários
7 configurações de dns
8 pré-requesitos de pacotes
8.1 pré-requesitos para se instalar em Debian 32 Bits
8.2 pré-requesitos para se instalar em Ubuntu 64 Bits
9 Instalando em Debian 32 Bits
10 Instalando em Ubuntu 64 Bits
11 E o backup, como procedo?
12 Firewall no servidor Zimbra
13 Melhorias no controle de SPAM & VIRUS
13.1 Integradando SPF, Razor & Pyzor ao SpamAssassin do Zimbra
13.1.1 instalando spf query
13.1.2 instalando o razor2
13.1.3 instalando o pyzor
13.1.4 ajustando o spamassassin para trabalhar com razor2 e pyzor
13.1.5 ajustando configurações do amavisd-new
13.2 Integrando postgrey ao zimbra
13.2.1 parametros de inicializacao do postgrey
13.2.2 whitelist do postgrey
14 Dicas
14.1 Administrando o zimbra por linha de comando
14.1.1 manipulando domínios
14.1.2 manipulando usuários
14.2 alterando tabelas de transporte do postfix no Zimbra
14.3 Entendendo os logs do zimbra
14.4 Personalizando a identidade visual do Zimbra
14.5 Tunning de Performance no Zimbra
14.6 Zimlets
14.7 Como adiciono um disclaimer (footer) padrao no zimbra ?
14.8 Integrando Zimbra e MailMan
14.9 Usando DSPAM com Zimbra
14.10 Atualizando Clamav do Zimbra
14.11 Fake SMTP system package
14.12 Desinstalando o Zimbra de forma completa
15 Erros Comuns
15.1 Queue Monitoring/Monitoramento da Fila
16 Cases de Uso do Zimbra
17 Agradecimentos
18 Referências
19 Recados
Um pouco sobre o Zimbra
O Zimbra é um moderno sistema groupware para ambientes colaborativos. Recentemente foi comprado pelo Yahoo que utilizou a expertise dos engenheiros do zimbra e as features da ferramenta para melhorar o sistema do yahoo mail.
Features para os usuários
Dentre as principais feautres do zimbra vale a pena citar na visão para o usuário:
Cliente de e-mail web,
Catálogo de endereços compátivel com qualquer diretório openLDAP,
Agenda e calendário em ajax,
Compartilhamento de documentos via web,
Sistema de controle de tarefas,
Sistema de mensagem instantânea baseado no jabber,
Sistema porta arquivos,
Sistema de documentos online,
Suporte a filtros,
Correção Ortográfica,
Busca simples através de palavras chaves,
Busca avançada através de tags,
Busca dentro de arquivos anexados,
QuickView de anexos em formato HTML,
Suporte a módulos/aplicações chamados ZIMLETS que permitem integrar sistemas da intranet ao ZIMBRA de maneira mais eficiente ou
simplesmente adicionar uma feauture ao zimbra.
Facilidade na configuração de mensagens VACTION e redirecionamentos nas configurações do usuário,
Facilidade na configuração de encaminhamento de mensagens,
Importação de arquivo ICS,
Acesso IMAP ou POP externo,
Uso de TAGS para classificar as mensagens,
Compartilhamento é a palavra no Zimbra, você pode compartilhar agenda, compromissos, tarefas, pastas do seu e-mail com outro usuário, documentos rtf, arquivos, tudo diretamente em sua interface web, a qual utiliza abundantemente a tecnologia AJAX deixando a utilização bem mais suave.
Features para os Administradores
Dentre as principais feautures do zimbra vale a pena citar na visão do administrador:
Administração WEB ou CLI,
Estatísticas do servidor,
Controle e estatística de filas,
Informações sobre contas inativas a mais de 30 dias e mais de 90 dias,
Classes de serviços que permitem criar diferentes tipos de perfil para usuários,
Possibilidade de bloquear contas,
Possibilidade de fechar contas,
Controle de Anexos,
Possibilidade de desligar visualização de anexos de um usuário,
Especificar quais serviços o usuário poderá utilizar,
Especificar quais temas o usuário poderá utilizar,
Especificar quais zimlets o usuários poderá utilizar,
Visualizar caixa de e-mail de um usuário,
Configuração de Alias,
Configuração de Listas e Distribuição,
Autenticação em OpenLDAP externo,
Praticamente tudo que você faz na web é possível fazer via CLI (linha de comando) o que no meu caso é uma mão na roda!
Do que é feito o Zimbra
O Zimbra roda em preferencialmente em sistemas Linux com Apache Tomcat, Postfix, MySQL e OpenLDAP.
Ele usa as tecnologias Java, JavaScript ThinClient e DHTML.
E o protocolos, SMTP, LMTP, SOAP, XML, IMAP, POP.
https://wiki.zimbra.com/index.php?title=ZCS_System_Architecture
Componentes do Zimbra
O zimbra tem várias versões, aqui estou falando especificamente da versão COMMUNITY.
Em seus principais componentes temos...
OpenSSL,
OpenLDAP,
Mysql,
Nginx,
Postfix,
Cyrus SASL,
Sieve Filters,
SPAMASSASSIN,
DSPAM,
Clamav,
Amavisd-new,
Verity,
Lucene,
Sleepycat,
Memcached,
https://wiki.zimbra.com/index.php?title=ZCS_System_Architecture
Arquitetura do Zimbra
Aqui vou discorrer rapidamente sobre a arquitetura do Zimbra.
Zimbra Core
O Core do Zimbra contém as bibliotecas, utilitários, ferramentas de monitoramento e arquivos de configuração básicos.
Zimbra LDAP
O ZCS usa o OpenLDAP, que é um sistema LDAP Open Source. A autenticação de usuários é feita através do OpenLDAP, cada conta no no servidor Zimbra possui um ID de mailbox que serve como ponto de referência para identificar a conta. O OpenLDAP do ZCS tem um SCHEMA personalizado para funcionar integrado ao zimbra, para tanto existem muitos atributos que funcionam apenas do zimbra.
Zimbra MTA
O ZCS utiliza o Postfix com MTA. O Postfix recebe as mensagens e faz o roteamento para o ZCS mailbox server, para isto ele utiliza LMTP. O MTA tem integrado a ele sistemas Antivirus e Antispam, sendo o CLAMAV e SPAMASSASIN.
Zimbra Store
O pacote Zimbra STORE do zimbra fornece os componentes para o mailbox server, incluindo o Apache Tomcat necessário para a aplicação do ZCS rodar.
Cada servidor zimbra possui seu próprio sistema de store que armazena e faz a indexação das mensagens recebidas.
Data Store
As informações dos usuários ficam armazenadas em um banco de dados MYSQL, dentro dele estão informações como definições de tags, pastas, calendários, contatos, e o status sobre as mensagens de cada usuário (lida, não lida, tags e a pasta em que a mensagem reside).
Message Store
O Message Storage é o local onde todas as mensagens e anexos ficam armazenados. As mensagens ficam armazenadas no foramto MIME. Mensagens enviadas para multiplos usuários são armazenadas apenas uma vez no sistema de arquivos.
Index Store
A tecnologia de indexação e busca é feita através do Lucene. Índices dos arquivos são mantidos para cada mailbox.
Zimbra SNMP
Este é um pacote opcional, se for instalado ele possibilita o monitoramento de cada serviço do Zimbra, o logger vai monitorar os arquivos de logs e gerar SNMP traps.
Zimbra Logger
Este é um pacote opcional, se for instalado ele possibilita a integração dos serviços do zimbra com o syslog.
Zimbra Spell
Este é um pacote opcional, se for instalado ele possibilita o uso de corretor ortografico na groupware do zimbra, ele usa o ASPELL para fazer isto.
Zimbra Backup
Existem vários scripts de backup disponíveis no site do ZIMBRA para serem utilizam com a versão community.
https://wiki.zimbra.com/index.php?title=ZCS_System_Architecture
Pulos do gato no Zimbra
Aqui cito alguns pulos do gato, primeiro vamos falar da indexação de mensagens, o Zimbra oferece um recurso muito interessante, vamos supor que eu envie uma mensagem para 4 amigos do seu trabalho, contendo um vídeozinho AVI de 512 KB, teoricamente cada um receberia uma mensagem de 512 K, desta forma o espaço utilizado em meu storage aumentaria 2048 KB ou 2 MegaBytes, mas isto não ocorre com o Zimbra pois ele cria um objeto em seu banco, indexa a informação e permite o acesso dos 4 usuários àquele objeto, economizando espaço no seu storage, neste caso são 1536 KB economizados, em um grande volume terás uma diminuição em seu custo de storage.
Que eu seu saiba apenas o GMAIL faz este tipo de indexação... bacana!
https://wiki.zimbra.com/index.php?title=ZCS_System_Architecture
Sobre licença, uso, logos e host de serviços usando zimbra
O zimbra utiliza da licença Mozilla para sua aplicação, cada componente do zimbra possuiu sua própria licença, para maiores informações acesse o wiki do Zimbra.
https://www.zimbra.com/license/collaboration_suite_collective_license.html
https://www.zimbra.com/partners/trademark_branding_faq.html
O que versão Community não oferece?
Não oferece administração de domínios em níveis, ou seja o usuário admin administra todos os domínios, não tem como criar um usuário para administrar um domínio específico, só nas versões comerciais existe tal opção.
Não oferece sistema de backup NATIVO, existem alguns scripts na wiki em várias linguagens que permitem que seja feito o backup do Zimbra, mas não são perfeitos, a forma mais segura é criar um volume para o ZIMBRA em seu storage, fazer uma SNAPSHOT e jogar isto em uma fita, assim não temos paradas de serviço.
Não oferece a criação de Cluster HA de forma nativa, se oferecesse poderíamos criar um cluster em alguns cliques. A versão comercial usa soluções RH para fazer o cluster.
Não oferece gerenciamento inteligente do storage, isto te permite pegar as mensagens antigas e jogar em um STORAGE mais simples com custo menor para sua organização...
Não oferece personalização profunda na interface WEB, na versão community dá apra criar temas alterando LOGO e cores, na versão comercial tem-se mais flexibilidade.
Não oferece suporte a sistema ADS nativo.
Não oferece suporte do zimbra por telefone, e-mail e base de conhecimento, na versão community você disponível a WIKI e os FORUMS que já são suficientes no meu ponto de vista.
Não oferece sincronização via Outlook MAPI
Não oferece sincronização via Apple iSYNC
Não oferece sincronização de correio, contatos e calendário para dispositivos móveis compatíveis com PALM, SYMBIAN e WINDOWS MOBILE.
Não oferece sincronização de correio, contatos e calendário para Blackberry.
Não oferece sincronização de correio, contatos e calendário para dispositivos compatíveis com tecnologia J2ME.
Todos estes recursos estão nas versões comerciais, mas dá pra viver sem eles!
https://www.zimbra.com/products/product_editions.html
Requisitos de instalação
Requesitos mínimos para ambiente de testes (segundo wiki zimbra)
Processador Intel ou AMD com clock de no mínimo 1,5 Ghz e com pelo menos 1,5 GB de RAM e 5 GB de espaço em disco para o /opt.
Requesitos mínimos para rodá-lo em produção (segundo wiki zimbra)
Processador Intel ou AMD com clock de no mínimo 2 Ghz e com pelo menos 2 GB de RAM para ambientes com menos de 2000 usuários, mais de 2000 mil usuários recomenda-se 4 GB de ram, 10 gb de espaço no /opt.
Eu já sugiro ambiente com arquitetura 64 bits caso você tenha mais de 500 usuários web, por questões de performance, o espaço em disco você vai dimensionar de acordo com seus usuários e com a quota que pretende dar a cada um deles,
Não use RAID 5 , o recomendando é RAID 1, RAID 0 ou a combinação de ambos RAID 10, que é a combinação que eu tenho usado, segundo a documentação do zimbra RAID 5 pode lhe acarretar alguns problemas de performance em ambientes com mais de 100 usuários.
Requesitos mínimos para rodá-lo em produção (segundo o guto)
Sugestão pessoal minha, a cada 100 usuários pense em reservar 500 MB de RAM e tenha 2 core para cada 1000 usuários, por exemplo com 2000 mil usuários você teria um computador com 4 cores e 10 gigas de ram, assim ele rodará macio, sei que parece é muito, mas é que todos estes recursos rodando em cima do tomcat podem pesar, estou falando do cenário ideal.
Apesar de falar 500 MB para cada 100 usuários, isso foi só uma forma de mensurar, sabemos que o Zimbra pede no mínimo 2 GBytes de Ram para produção.
Seria legal separar algumas coisas, SGBD em uma máquina, filtros em outra máquina, aplicação em outra máquina, separando não pesa.
https://wiki.zimbra.com/index.php?title=FAQ
https://www.zimbra.com/pdf/Zimbra%20Collaboration%20Suite%20System%20Requirements.pdf
Quais navegadores são suportados pelo Zimbra
Firefox 1.5+ on PC, Mac, Linux
Internet Explorer 6+ on PC (não funciona muito bem)
Safari 2.0+ on Mac
Explanação sobre Migrações
Se você for fazer uma migração do MS-Exchange para o Zimbra se deu bem, no site do Zimbra existe uma ferramenta que permite que você migre os usuários, contatos, e-mails e calendários de forma simples é rápida. Ele só não importa notas, filtros, tarefas e porta arquivos.
Se tiver um OpenLDAP em produção você pode fazer autenticação externa via ZIMBRA.
O Zimbra oferece um ambiente CLI para administrá-lo, o que facilita e muito a criação de scripts para criação de usuários e/ou migrações.
Você pode também utilizar o IMAPSYNC para sincronizar mensagens e calendários de outros ambientes que não sejam MS-Exchange.
https://wiki.zimbra.com/index.php?title=User_Migration
https://www.zimbra.com/docs/os/latest/migration_wizard_for_exchange_installation_guide/
Instalando Zimbra em Diversos Cenários
configurações de dns
Antes de iniciar a instalação do zimbra, seu servidor deve ter...
Endereço IP Público com Reverso Configurado;
Host com registro de DNS do tipo A na zona referente ao seu domínio;
Registro de DNS do tipo MX na zona referente ao seu domínio;
Seu domínio deve ser referenciado no /etc/hosts como o exemplo abaixo
127.0.0.1 zcs.seudominio.com.br zcs
pré-requesitos de pacotes
pré-requesitos para se instalar em Debian 32 Bits
NPTL. Native POSIX Thread Library
Sudo. Superuser, required to delegate admins.
libidn. For internationalizing domain names in applications (IDNA)
cURL. A command line tool for transferring files with URL syntax
fetchmail. A remote-mail retrieval and forwarding utility used for on-demand TCIP/IP links.
GMP. GNU Multiple-Precision Library.
compat-libstdcc++-33. Compatibility Standard C++ libraries.
( NOTE: The 32-bit version of the compat-libstdc rpm package is required for both 32-bit or 64-bit servers. )
pré-requesitos para se instalar em Ubuntu 64 Bits
NPTL. Native POSIX Thread Library
Sudo. Superuser, required to delegate admins.
libidn. For internationalizing domain names in applications (IDNA)
cURL. A command line tool for transferring files with URL syntax
fetchmail. A remote-mail retrieval and forwarding utility used for on-demand TCIP/IP links.
GMP. GNU Multiple-Precision Library.
compat-libstdcc++-33. Compatibility Standard C++ libraries.
( NOTE: The 32-bit version of the compat-libstdc rpm package is required for both 32-bit or 64-bit servers. )
Instalando em Debian 32 Bits
Instalando em Ubuntu 64 Bits
E o backup, como procedo?
Eu aconselho que você crie um volume para o Zimbra em seu STORAGE para que você possa fazer uma SNAPSHOT do volume facilitando o backup em mídias, evitando que o serviço fique indisponível durante o backup.
https://wiki.zimbra.com/index.php?title=Open_Source_Edition_Backup_Procedure
Firewall no servidor Zimbra
Basicamente voce precisa liberar as portas TCP
25, 80, 110, 143, 389, 443, 465, 993, 995, 7071
https://wiki.zimbra.com/index.php?title=Firewall_Configuration
Agora vai uma dica, cuidado com a entrada 127.0.1.1 no seu /etc/hosts
Se o seu ip 127.0.1.1 apontar para o host que escolheste para seu zimbra na instalação, lembre-se de liberar 127.0.1.1 na INPUT e OUTPUT caso sua política padrão seja DROP nas duas cadeias da tabela filter, do contrário a aplicação Zimbra MTA, SASLDAEMON e openLDAP não vão "subir".
Outra solução, o ubuntu vem com esse ip 127.0.1.1 devido a um bug no gnome, mas como é um bug do gnome, e estamos falando de ubuntu server, algo sem ambiente gráfico, afinal não tem por que ficar gastando memoria e recursos com ambiente gráfico em um sevidor (servidor que é servidor, é tela preta!) você pode simplesmente comentar essa linha em /etc/hosts e deixar tudo na 127.0.0.1, ou seja migre o host para linha acima, isto irá evitar os ajustes na firewal citados acima, foi o que eu fiz aqui.
Melhorias no controle de SPAM & VIRUS
Integradando SPF, Razor & Pyzor ao SpamAssassin do Zimbra
Aqui vamos aprender como incrementar um pouco mais o tratamento de SPAM no Zimbra!
instalando spf query
SPF (Sender Policy Framework) é um sistema que tenta prevenir o envio de mensagens forjadas, faz isto através de configurações em seu DNS, quando um e-mail for enviado, o servidor checará as entradas TXT/SPF no seu servidor de DNS, e através dela saberá qual servidor pode entregar mensagens com origem em seu domínio, caso alguém esteja enviando mensagens @seudominio sem ser os servidores citados no registro TXT/SPF o servidor MTA pode ser configurado para recusá-la. É uma maneira bem eficiente de evitar problemas com seu dominio.
instale o biblioteca para checagem spf
apt-get install libmail-spf-query-perl
instalando o razor2
O Razor2 é um sistema colaborativo, distribuido de filtro para deteccao e controle de spam.
instale o razor2
apt-get install razor
crie o diretorio do razor
mkdir /opt/zimbra/amavisd/.razor; chown -Rf zimbra:zimbra /opt/zimbra/amavisd/.razor
agora torne-se zimbra (su zimbra) e crie a conta no razor
razor-admin -home=/opt/zimbra/amavisd/.razor -create
razor-admin -home=/opt/zimbra/amavisd/.razor -discover
razor-admin -home=/opt/zimbra/amavisd/.razor -register
agora edite o arquivo /opt/zimbra/conf/spamassassin/v310.pre e descomente a linha referente ao razor
loadplugin Mail::SpamAssassin::Plugin::Razor2
agora vamos instalar pyzor
instalando o pyzor
O pyzor é uma rede de sistemas distríbuidos para controle de spam, este utiliza digest de mensagens para fazer análise e identificar o SPAM.
apt-get install pyzor
crie o diretorio do pyzor
mkdir /opt/zimbra/amavisd/.pyzor; chown zimbra:zimbra /opt/zimbra/amavisd/.pyzor
agora como usuario zimbra (su zimbra)
zimbra@zcs:~/amavisd$ pyzor --homedir /opt/zimbra/amavisd/.pyzor discover
downloading servers from https://pyzor.sourceforge.net/cgi-bin/inform-servers-0-3-x
Traceback (most recent call last):
File "/usr/bin/pyzor", line 8, in <module>
pyzor.client.run()
File "/var/lib/python-support/python2.5/pyzor/client.py", line 1005, in run
ExecCall().run()
File "/var/lib/python-support/python2.5/pyzor/client.py", line 184, in run
self.servers = self.get_servers(servers_fn)
File "/var/lib/python-support/python2.5/pyzor/client.py", line 411, in get_servers
servers.read(open(servers_fn))
File "/var/lib/python-support/python2.5/pyzor/client.py", line 117, in read
self.append(pyzor.Address.from_str(line))
File "/var/lib/python-support/python2.5/pyzor/__init__.py", line 458, in from_str
fields[1] = int(fields[1])
IndexError: list index out of range
cabuloso não, mas fica frio, vamos resolver!
Pelo o que pude constatar, o pyzor tenta baixar o arquivo servers atualizado em https://pyzor.sourceforge.net/cgi-bin/inform-servers-0-3-x porém ele o arquivo não está disponível e portando retorna aquele erro cabuloso.
Para resolver este problema, coloque a linha abaixo no arquivo servers dentro do diretório /opt/zimbra/amavisd/.pyzor, pois ele vai funcionar.
zimbra@zcs:/opt/zimbra$ echo "82.94.255.100:24441" > /opt/zimbra/amavisd/.pyzor/servers
agora vamos fazer um teste para ver se nosso pyzor consegue se conectar no servidor.
zimbra@zcs:/opt/zimbra/amavisd/.pyzor$ pyzor --homedir /opt/zimbra/amavisd/.pyzor ping
82.94.255.100:24441 (200, 'OK')
ajustando o spamassassin para trabalhar com razor2 e pyzor
edite o arquivo /opt/zimbra/conf/spamassassin/local.cf
ok_languages en es
ok_locales en es
trusted_networks 127. 10.70. 192.168.
use_bayes 1
skip_rbl_checks 0
use_razor2 1
dns_available yes
## Optional Score Increases
## Choose your preferred values...
score SPF_FAIL 10.000
score SPF_HELO_FAIL 10.000
score RAZOR2_CHECK 2.500
score PYZOR_CHECK 2.500
score BAYES_99 4.300
score BAYES_90 3.500
score BAYES_80 3.000
bayes_ignore_header Received: from mail3.example.com
bayes_ignore_header Received: from localhost
bayes_ignore_header Received: from mail1.example.com
bayes_ignore_header Received: from mail2.example.com
ajustando configurações do amavisd-new
Edite o arquivo /opt/zimbra/conf/amavisd.conf
$sa_tag_level_deflt = -10.0; # add spam info headers if at, or above that level
$sa_tag2_level_deflt = 6.6; # add 'spam detected' headers at that level
$sa_kill_level_deflt = 15; # triggers spam evasive actions
$sa_dsn_cutoff_level = 15; # spam level beyond which a DSN is not sent
$sa_quarantine_cutoff_level = 15; # spam level beyond which quarantine is off
$sa_mail_body_size_limit = 512*1024; # don't waste time on SA if mail is larger
$sa_local_tests_only = 0; # only tests which do not require internet access?
https://wiki.zimbra.com/index.php?title=Improving_Anti-spam_system#SPF
https://wiki.zimbra.com/index.php?title=Improving_Anti-spam_system#Razor2
https://wiki.zimbra.com/index.php?title=Improving_Anti-spam_system#Pyzor
https://wiki.zimbra.com/index.php?title=Improving_Anti-spam_system#Spamassassin_Config
https://www.openspf.org/
https://razor.sourceforge.net/
https://pyzor.sourceforge.net/
Integrando postgrey ao zimbra
O postgrey é uma implementação do conceito "greylist". Muito eficiente no combate ao SPAM a greylist consiste em uma fila especial para entrega de mensagens, ele funciona da seguinte forma, quando um MTA tentar entregar uma mensagem para o seu servidor MTA o postgrey recusar a mensagem, dando um reject com codigo 550 (ou seja, tente mais tarde), se for um servidor real, configurado de acordo com as RFC's de SMTP, ele tentará entregar a mensagem novamente depois de algum tempo, na segunda tentativa o postgrey libera o envio. Se for um sistema de SPAM ele simplesmente passa para a próxima mensagem de sua lista e não tenta entregar aquela mensagem que foi rejeitada. O postgrey é um sistema simples, com um conceito simples, porém extremamente funcional e diminui muito SPAM e VIRUS, seu fluxo de mensagens e sua fila vão diminuir bastante.
veja neste gráfico como diminuiu a quantidade de spam e virus do servidor, analise o antes e depois.
vamos instalar o postgrey
apt-get install postgrey
agora vamos configurar o postfix do zimbra para ususá-lo, edite o arquivo
vi /opt/zimbra/conf/postfix_recipient_restrictions.cf
e coloque a linha baixo antes da linha que contem a diretiva permite
check_policy_service inet:127.0.0.1:60000
parametros de inicializacao do postgrey
agora vamos ajustar os parametros de incializacao do postgrey, edite o arquivo /etc/defaults/postgrey e substitua
POSTGREY_OPTS="--inet=127.0.0.1:60000"
por
POSTGREY_OPTS="--inet=127.0.0.1:60000 --delay=60 --max-age=30"
vamos entender o que é o que!
--delay especifica o tempo que um MTA ficara na greylist (por quanto tempo ele vai recusar msgs do mta).
--max-age significa por quanto tempo o postgrey vai manter essas informações em cache
whitelist do postgrey
O postgrey possue 2 tipos de whitelist, uma para clients e outra para recipients, vamos ajustar a whitelist de clients, edite o arquivo /etc/postgrey/whitelist_clients e caso queria colocar parte da esplanada dos ministérios lá, ficaria assim...
# ministerios do brasil
planejamento.gov.br
comunicacoes.gov.br
mc.gov.br
mct.gov.br
mec.gov.br
desenvolvimento.gov.br
mds.gov.br
cultura.gov.br
cidades.gov.br
agricultura.gov.br
incra.gov.br
in.gov.br
mma.gov.br
mme.gov.br
mpas.gov.br
mre.gov.br
saude.gov.br
turismo.gov.br
presidencia.gov.br
brasil.gov.br
defesa.org.br
fazenda.gov.br
esporte.gov.br
integracao.gov.br
mj.gov.br
mte.gov.br
transportes.gov.br
# entidades com status de ministerio
agu.gov.br
cgu.gov.br
bcb.gov.br
nae.gov.br
# autarquias, agencias e programas ligados a ministerios
iti.gov.br
radiobras.gov.br
ebc.tv.br
onid.org.br
tvbrasil.org.br
serpro.gov.br
dataprev.gov.br
Salve a lista, reinicie o postgrey
/etc/init.d/postgrey restart
ou
invoke-rc.d postgrey restart
pronto, postgrey instalado, configurado e integrado!
https://wiki.zimbra.com/index.php?title=Improving_Anti-spam_system#Postgrey
https://postgrey.schweikert.ch/
https://greylisting.org/
Dicas
Administrando o zimbra por linha de comando
Aprenda como fazer tudo na unha! :P
https://wiki.zimbra.com/index.php?title=Zimbra_CLI_Command_List
https://wiki.zimbra.com/index.php?title=General_CLI_Tool_Information
manipulando domínios
Se transformando em zimbra
# su zimbra
Vamos ver como se cria um domínio com autenticação local no zimbra...
$ zmprov cd dominio.com.br zimbraAuthMech zimbra
... e agora deletando o domínio...
$ zmprov dd dominio.com.br
... buscando informações sobre o domínio ...
$ zmprov ga dominio.com.br
... buscando informaçõe ssobre todos os domínios ...
$ zmprov gad dominio.com.br
manipulando usuários
Vamos ver o quão difícil é criar um usuário no zimbra via CLI
primeiro se transforme em zimbra
# su zimbra
agora vamos a criação do usuário
$ zmprov ca gutocarvalho@alwaysgeek.net senha
e agora deletando...
$ zmprov da gutocarvalho@alwaysgeek.net
e criando um alias simples
$ zprov aaa alias@dominio conta1@dominio.com.br conta2@dominio.com.br conta3@dominio.com.br
e agora deletando o alias
$ zprov raa alias@dominio conta1@dominio.com.br conta2@dominio.com.br conta3@dominio.com.br
fazendo um busca que vai me mostrar todos os usuários zimbra
$ zmprov gaa
refinando a busca para apenas um dominio
$ zmprov gaa dominio.com.br
Vê as possibilidades de usar, perl, ruby, shell ou python para criar scripts/programas para facilitar a sua migração?
CLI ROX!
alterando tabelas de transporte do postfix no Zimbra
O zimbra trabalha com templates, se for necessário alguma alteração na tabela de transporte do postfix você não deve fazer a alteração no arquivo /opt/zimbra/postfix/conf/main.cf por que quando o serviço zimbra-mta for reiniciado o arquivo main.cf será reconstruido de acordo com o seu template.
A template do serviço está localizado em /opt/zimbra/conf/zmmta.cfg
Troque esta linha por
POSTCONF transport_maps LOCAL postfix_transport_maps
por algo como:
POSTCONF transport_maps ldap:/opt/zimbra/conf/ldap-transport.cf,hash:/opt/zimbra/conf/mdaTransport
veja um exemplo de arquivos de transporte
dominio.gov.br smtp:[mta.dominio.gov.br]
subdominio1.dominio.gov.br smtp:[mta.dominio.gov.br]
subdominio2.dominio.gov.br smtp:[mta.dominio.gov.br]
outrodominio.gov.br smtp:[mda.dominio.gov.br]
com esta tabela de transporte estamos dizendo ao mta do zimbra que se ele receber uma mensagem com destino a gutocarvalho@outrodominio.gov.br e este usuario nao existir no zcs, ele vai automaticamente direcionar a mensagem para o mta.dominio.gov.br
Este tipo de estratégia pode ser utilizado caso você tenha um gateway MTA que consulte um arvore LDAP verificando um atributo que lhe indique qual servidor é responsável por aquela conta, algo como mailHost do qmailschema.
Veja dois exemplos de arquivos LDIF com este atributo:
dn: uid=jose.carvalho,ou=people,dc=dominio,dc=gov,dc=br
objectClass: inetOrgPerson
objectClass: qmailUser
uid: jose.carvalho
cn: José Augusto Carvalho
sn: Carvalho
mail: jose.carvalho@dominio.gov.br
mailHost: zcs.dominio.gov.br
userPassword: {SSHA}+ssSZPjDshK7m7FdRC6A6a21wnnTx63A
accountStatus: active
dn: uid=jose.cost,ou=people,dc=dominio,dc=gov,dc=br
objectClass: inetOrgPerson
objectClass: qmailUser
uid: jose.carvalho
cn: José Augusto Costa
sn: Carvalho
mail: jose.costa@dominio.gov.br
mailHost: xchange.dominio.gov.br
userPassword: {SSHA}+ssSZPjDshK7m7FdRC6A6a21wnnTx63A
accountStatus: active
Assim quando o gateway MTA receber uma mensagem para jose.carvalho@dominio.gov.br ele sabe que deverá entrega-la ao servidor zcs.mda.gov.br e se receber uma mensagem para jose.costa@dominio.gov.br ele deverá entregá-la para o servidor xchange.dominio.gov.br.
O importante é que os servidores ZCS e XCHANGE devem ter tabelas de transporte corretamente configuradas para enviar mensagens entre si.
Veja um exemplo deste cenário com um gateway mx.
A título de curiosidade, aqui vai um exemplo de configuração de um postfix para atuar como gateway mx/mta.
# See /usr/share/postfix/main.cf.dist for a commented, more complete version
# Debian specific: Specifying a file name will cause the first
# line of that file to be used as the name. The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h
readme_directory = no
# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.
myhostname = mxgw.mda.gov.br
#alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = nomedoservidor.dominio.gov.br,
dominio1.gov.br,
dominio2.gov.br,
dominio3.gov.br,
dominio4.gov.br,
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
# verificando se o usuario existe no diretorio, do contrario descarta
local_recipient_maps = ldap:ldapCheck
ldapCheck_server_host = localhost
ldapCheck_server_port = 389
ldapCheck_search_base = dc=br
ldapCheck_scope = sub
ldapCheck_bind = yes
ldapCheck_cache = yes
ldapCheck_timeout = 30
ldapCheck_bind_dn = cn=admin,dc=br
ldapCheck_bind_pw = mda&*(
ldapCheck_query_filter = (&(mail=%s)(accountStatus=active))
ldapCheck_result_attribute = mail
ldapCheck_dereference = 0
# verificando qual servidor atende o usuario, depois encaminha
transport_maps = ldap:mailtransport
mailtransport_server_host = localhost
mailtransport_server_port = 389
mailtransport_scope = sub
mailtransport_cache = yes
mailtransport_bind = yes
mailtransport_bind_dn = cn=admin,dc=br
mailtransport_bind_pw = mda&*(
mailtransport_timeout = 5
mailtransport_search_base = dc=br
mailtransport_query_filter = (&(mail=%s)(accountStatus=active))
mailtransport_result_attribute = mailHost
mailtransport_result_filter = relay:%s
mailtransport_lookup_wildcards = no
bom como zimbra pode se autenticar em um openLDAP externo, se voce possui um openLDAP ja funcionando, com usuarios e tudo mais, aproveite este recurso.
Agora se você prefere criar uma arvore LDAP pura pra ter independencia do zimbra, faça a árvore direitinho, veja um exemplo de LDIF apra construir uma ávore para abrigar domínios com topo .br
veja o exemplo de LDIF.....
# dominio br ################
dn: dc=br
objectClass: dcObject
objectClass: organization
o: br domains
dc: br
# dominio org.br ##################
dn: dc=org,dc=br
objectClass: dcObject
objectClass: organization
o: org domains
dc: org
# dominio .gov.br #####################
dn: dc=gov,dc=br
objectClass: dcObject
objectClass: organization
o: gov domains
o: gov
# dominio dominio1.gov.br #############################################
dn: dc=dominio1,dc=gov,dc=br
objectClass: dcObject
objectClass: organization
o: dominio1.gov.br
dc: dominio1
dn: ou=people,dc=dominio1,dc=gov,dc=br
ou: people
objectClass: organizationalUnit
dn: ou=alias,dc=dominio1,dc=gov,dc=br
ou: alias
objectClass: organizationalUnit
# dominio dominio2.org.br #############################################
dn: dc=dominio2,dc=org,dc=br
objectClass: dcObject
objectClass: organization
o: dominio2.org.br
dc: dominio2
dn: ou=people,dc=dominio2,dc=org,dc=br
ou: people
objectClass: organizationalUnit
dn: ou=alias,dc=dominio2,dc=org,dc=br
ou: alias
objectClass: organizationalUnit
Alguns colegas experientes com o postfix sabem que é bem complicado especificar os mapas separando em ramos como estes acima, o fato é que neste cenário fica bem mais organizado, podem perceber também que não faço checagem de mapa de alias ou forward no GATEWAY MX, eu não faço isto pois aqui neste ponto não é necessário tratar isto, eu só preciso saber para onde eu vou entregar, se é alias ou conta normal o MTA responsável saberá tratar isto..... A questão é que a árvore fica limpa e organizada, mas lembre-se isto é um GW MX e não uma implementação de postfix com openLDAP com mailbox tudo nesta máquina, se assim fosse as configurações do postfix e design da ávore seriam mais "rebuscadas" para atender este tipo de cenário...
Entendendo os logs do zimbra
https://wiki.zimbra.com/index.php?title=Log_Files
Personalizando a identidade visual do Zimbra
https://wiki.zimbra.com/index.php?title=Theme_Directory_Structure
https://files.zimbra.com/docs/skins/index.html
Tunning de Performance no Zimbra
https://wiki.zimbra.com/index.php?title=Performance_Tuning_Guidelines_for_Large_Deployments
Zimlets
Coloque novas feautures no zimbra ou integre seus sitemas da intranet a ele através dos Zimlets.
https://wiki.zimbra.com/index.php?title=Zimlets
https://wiki.zimbra.com/index.php?title=Zimlet_Developers_Guide
https://www.zimbra.com/pdf/Zimbra%20Zimlets%20Whitepaper.pdf
Diretório de Zimlets
https://wiki.zimbra.com/index.php?title=Zimlet_Directory
Como adiciono um disclaimer (footer) padrao no zimbra ?
https://wiki.zimbra.com/index.php?title=Adding_a_disclaimer_(altermime)_or_footer
Integrando Zimbra e MailMan
https://wiki.zimbra.com/index.php?title=ZCS_Mailman_Integration
Usando DSPAM com Zimbra
https://wiki.zimbra.com/index.php?title=Using_DSPAM_for_Spam_Filtering
Atualizando Clamav do Zimbra
https://wiki.zimbra.com/index.php?title=Updating_CLAMAV
Fake SMTP system package
Os pacotes do zimbra não são reconhecidos como um MTA, no debian/ubuntu mta é Postfix ou Exim4 e ponto.
O problema é que se eu for instalar o pacote mailx ou nail, utilitários necessários para que o bacula e qualquer programa ou serviço envie e-mail para o administrador, o debian/ubuntu vai pedir para instalar como dependência o exim4 ou postfix, ele não deixa a gente instalar só o mail-x ou nail.
Bom para resolver isto podemos fazer um fake-smtp-mta-package ;P
Veja como se faz
apt-get install equivs
cd /tmp
cp /usr/share/doc/equivs/examples/mail-transport-agent.ctl .
equivs-build mail-transport-agent.ctl
estes comandos resultarão no pacote /tmp/mta-local_1.0_all.deb , agora vamos instalar.
dpkg -i /tmp/mta-local_1.0_all.deb
pronto, agora podes instalar o mailx ou nail numa boa!
apt-get install mailx
Desinstalando o Zimbra de forma completa
Se você instalou o zimbra em uma máquina de testes, seja em seu desktop ou um servidor de laboratório e agora deseja colocar em produção em outro servidor, mas o servidor de testes ainda tem traços do zimbra, siga o tutorial abaixo para limpar estes traços.
https://wiki.zimbra.com/index.php?title=UnInstall_Zimbra
Erros Comuns
Queue Monitoring/Monitoramento da Fila
Se você clicar em monitoramento de filas e certificados e retornar uma bela tela de erro como esta...
Message: system failure: exception during auth {RemoteManager: MAIL.DOMAIN.COM->zimbra@MAIL.DOMAIN.COM:22}
com.zimbra.cs.service.ServiceException: system failure: exception during auth {RemoteManager:
MAIL.DOMAIN.COM->zimbra@MAIL.DOMAIN.COM:22}
at com.zimbra.cs.service.ServiceException.FAILURE(ServiceException.java:174)
at com.zimbra.cs.rmgmt.RemoteManager.getSession(RemoteManager.java:197)
at com.zimbra.cs.rmgmt.RemoteManager.execute(RemoteManager.java:134)
etc...
... que aconteceu comigo, o problema é que eu tinha alterado a porta do sshd de 22 para 2222 e a coisa parou de funcionar, o zimbra necessita se conecar na porta 22 para fazer estas checagens da fila e do certificado.
Pode ser também outro problema, talvez relacionado as chaves SSH ou permissões, leia a wikipage abaixo para maiores informações.
https://wiki.zimbra.com/index.php?title=Mail_Queue_Monitoring
Cases de Uso do Zimbra
Radiobrás (EBC) em torno de 1.000 usuários
Universidade de Brasília (UNB) em torno de 10.000 usuários
Tem um case? Coloque aqui horas!
Agradecimentos
Agradeço aos amigos da EBC pelos esclarecimentos e informações sobre sua experiência com o Zimbra Community.
Emerson Luis, EBC, https://www.ebc.tv.br
Reinaldo, EBC, https://www.ebc.tv.br
David, EBC, https://www.ebc.tv.br
Agradeço aos amigos de diversos locais, Serpro, Cobra, Dataprev, B2BR, MDS, MDA, MPOG, TRE, TRISTAR, dentre outros, que falaram muito comigo sobre postfix/ha, postfix mx/gateway/hub, postfix transport maps, openldap/syncrepl, demonstrando vários tipos de groupwares, toda a conversa foi fundamental para poder fazer uma análise bacana e escolher uma solução adequada para o meu caso.
Blogs
Fernando Ike, https://www.midstorm.org/~fike/weblog/
Ulisses Castro, https://ulissescastro.wordpress.com/
Deivi Kuhn, https://metalpolitica.blogspot.com/
César Cardoso, https://zyakannazio.eti.br/fudeblog/
Elias Mussi, https://diario.mussicorp.net/
José Pissin, https://pizza.blog.br
Sem Blogs
Lucius Curado,
Josué Soares,
José Ferronato,
Ricardo Fagundes,
Ulysses Almeida,
Patrick Ximenez,
Se esqueci de alguém é só avisar!
Referências
https://www.zimbra.com/
https://wiki.zimbra.com/
https://forum.zimbra.com/
Faq do ZCS
https://wiki.zimbra.com/index.php?title=FAQ
Post em Fórum sobre instalação do ZCS 5.x em Ubuntu 64bits
https://www.zimbra.com/forums/installation/10306-howto-ubuntu-64bit-install.html
Tutorial de Instalação do Zimbra 5.x no Debian 4
https://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=8351
Tutorial brazuca de intalação do ZCS 5.x 32bits no Ubuntu Hardy
https://www.diotto.net/artigos/instalando-o-zimbra-no-ubuntu/
Site que faz build do Zimbra para Solaris, Ubuntu8 e FreeBSD
https://varlogmessages.vroomvroom.org/
Instruções para se fazer o build do ZCS 5.x para o Ubuntu 8.x
https://varlogmessages.vroomvroom.org/documentation/ubuntu-port/ubuntu-build-instructions
———
Voltar