O documento apresenta um curso sobre a instalação e configuração do servidor de email Zimbra. Ele inclui informações sobre o professor, período e método da aula, infraestrutura necessária com VirtualBox, detalhes sobre a instalação distribuída do Zimbra e fundamentos sobre serviços de email.
1. Apresentação
Professor: Anahuac de Paula Gil
Membro da comunidade SL desde 1996
Criador e mantenedor do KyaPanel
Autor do livro OpenLDAP Extreme
2. Aulas
Período: de 19 a 30 de novembro
Horário: das 08:30 às 12:30 diariamente
Intervalo: das 10:30 às 10:45
Método: prático
Meio: on-line em laboratório
Material: slides + manuais oficiais em en_US
5. ZM – Instalação Distribuída
● Instalar servidor LDAP
* Instalação normal, selecionando somente o pacote
“zimbra-ldap” na lista de pacotes.
* Todos os demais pacotes não devem ser instalados
* Atenção para definir uma senha de admin do LDAP –
Selecione 1 nas configurações.
6. Fundamentos
Serviço de correio eletrônico
● SMTP
● POP/IMAP
● Base de usuários
● Anti Vírus
● Anti Spam
● Greylist
● SPF
● Gotcha
8. DNS
● Resolução direta de host
● Resolução reversa de host
● Registro MX
IN MX prioridade host/alias
● Registro TXT
host IN TXT "v=spf1 a mx ~all"
host IN SPF "v=spf1 a mx ~all"
9. DNS
# apt-get install aptitude
# aptitude update
# aptitude install bind9 htop nmap loco nail
Em /etc/bind/named.conf.local
zone "training.com" IN {
type master;
notify no;
file "/etc/bind/training.com";
};
10. DNS
Em /etc/bind/training.com
$ORIGIN training.com.
@ 1D IN SOA server.training.com. server.training.com. (
2010051101 ; serial
10800 ; refresh (3 hours)
3600 ; retry (1 hour)
432000 ; expire (5 days)
38400 ; minimum (10 hours 40 minutes)
)
IN NS server.training.com.
IN MX 10 mail
training.com. IN TXT "v=spf1 a mx ~all"
training.com. IN SPF "v=spf1 a mx ~all"
@ IN A 192.168.0.X
server IN A 192.168.0.X
mail IN A 192.168.0.X
smtp IN A 192.168.0.X
pop IN A 192.168.0.X
imap IN A 192.168.0.X
webmail IN A 192.168.0.X
muita IN A 192.168.0.X
mailbox IN A 192.168.0.X
11. DNS
Em /etc/bind/training.com
$ORIGIN training.com.
@ 1D IN SOA server.training.com. server.training.com. (
2010051101 ; serial
10800 ; refresh (3 hours)
3600 ; retry (1 hour)
432000 ; expire (5 days)
38400 ; minimum (10 hours 40 minutes)
)
IN NS server.training.com.
IN MX 10 mail
training.com. IN TXT "v=spf1 a mx ~all"
training.com. IN SPF "v=spf1 a mx ~all"
@ IN A 192.168.0.X
server IN A 192.168.0.X
mail IN A 192.168.0.X
smtp IN A 192.168.0.X
pop IN A 192.168.0.X
imap IN A 192.168.0.X
webmail IN A 192.168.0.X
muita IN A 192.168.0.X
mailbox IN A 192.168.0.X
12. DNS
● Em /etc/resolv.conf
nameserver ip_do_servidor_dns
13. SMTP x ESMTP
SMTP ESMTP
Primeiro comando de conexão: Primeiro comando de conexão:
HELO EHLO
RFC 821 RFC 1869
SMTP “MAIL FROM” e “RCPT TO” ESMTP ‘MAIL FROM’ and “RCPT TO’
permite um tamanho de apenas 512 permite um tamanho maior do que 512
caracteres incluindo o <CRLF>. caracteres.
SMTP puro não pode ser estendido ESMTP é um framework que otimiza o
com novos comandos. SMTP permitindo que se adionem
novos comandos.
14. Introdução ao Zimbra
● Serviço de colaboração
- Email, agenda, tarefas, arquivos...
● Foi software proprietário. Yahoo e VM Ware
● Feito em Java, compilado.
● Pacotes próprios de Postfix, OpenLDAP,
Amavis, MySQL, etc
● Versões NE e OSE
15. ZM - Componentes
● Jetty – Servidor web onde ele é executado
● Postfix – Servidor SMTP
● OpenLDAP – Autenticação
● MySQL – Base de dados principal
● Lucene – Serviço de textos e pesquisas
● Antivirus – ClamAV, SpamAssassin e Amavis
● James/Sieve – Criação de filtros
17. ZM – Arquitetura
● Core – Núcleo do Zimbra
● LDAP – Autenticação
● MTA – Envio e recebimento de mensagens
● Store – Armazenamento
● SNMP – Análise e monitoramento
● Logger – Registro de atividades
● Spell – Correção ortográfica (apache)
● Proxy – Serviço POP/IMAP
● Memcahe – Cache e otimização de memória
18. ZM - Disponibilidade e Escalabilidade
● Disponibilidade
– Somente disponível na versão NE
– Na versão OSE com HeartBeat e DRBD
● Escalabilidade
– Proveniente do ambiente multi-server
19. ZM – Instalação do Zimbra
1) Download:
http://www.zimbra.com/downloads/os-downloads.html
2) Pré-requisitos
● Pacotes extras: libperl5.10, sysstat e sqlite3
# aptitude install libperl5.10 sysstat sqlite3
● Ao menos 5Gb de espaço livre em /opt
20. ZM – Instalação do Zimbra
3) Instalando
# cd zcs-7.2.0_GA_2669.UBUNTU10_64.20120410002303
# ./install.sh
4) Passos
- Concorda com a licença?
- Seleção dos pacotes a serem instalados: Y para todos
- Resolução de nomes para domínio:
* Muda hostname?
* Muda domínio?
- Tela de definições: senha admin, portas e outros.
- Tecla “a” confirma
- Informar a Zimbra sobre essa instalação?
21. ZM – Pós instalação
● Análise do log de instalação;
# vi /opt/zimbra/log/zmsetup.*
● Serviços e portas iniciadas
# nmap ip_principal
22. ZM – Pós instalação
● Organização dos diretórios
# ls /opt/zimbra
- bin
- conf
- postfix
- store
23. ZM – Console Administrativo
● Endereços
- Contas
- Nomes alternativos
- Listas de distribuição
- Recursos (locais ou maquinas - agenda)
● Configuração
- Classe de serviço
* Informações gerais
* Recursos
* Preferências
* Temas
* Zimlets
* Conjunto de servidores
* Avançado
24. ZM – Console Administrativo
● Configuração
- Domínios
* Informações gerais
* Lista global de endereços
* Autenticação
* Hosts virtuais
* Avançado
* Interoperação livre/ocupado
* Zimlets
* Temas
* Certificado
25. ZM – Console Administrativo
● Configuração
- Configurações do servidor
* Informações gerais
* Serviços
* MTA
* IMAP
* POP
* Volumes
30. ZM – Console Administrativo
● Monitorando
- Status do servidor
- Estatísticas do servidor
● Ferramentas
- Filas de e-mail
- Atualizações de software
- Certificados
- Migração de conta
● Buscas
31. ZM – Linha de comando
● 99,9% das vezes, executar como usuário “zimbra”
# zmprov help
● Criando domínios e usuários
# zmprov cd dominio
# zmprov ca usuario@dominio senha
32. ZM – Linha de comando
● Modificando usuários
# zmprov ma usuario@dominio zimbraMailQuota cota
# zmprov sm usuario@dominio cf /pasta
# zmprov sp usuario@dominio senha
# zmprov ma usuario@dominio userPassword “hash”
● Listando domínios e usuários
# zmprov gad (get all domains)
# zmprov -l gaa dominio (get all accounts)
33. ZM – Linha de comando
● Removendo domínios e usuários
# zmprov da usuario@dominio
# zmprov dd dominio
● Automatizando criação
* criar um arquivo com lista de domínios (/tmp/arq_dom)
* criar um arquivo com lista de usuários (/tmp/arq_usu)
# for each_dom in `cat /tmp/arq_dom` ; do for each_usu in
`cat /tmp/arq_usu` ; do zmprov ca $each_usu@$each_dom
senha123 ; done ; done
34. ZM – Linha de comando
● Automatizando remoção
* criar um arquivo com lista de domínios
# zmprov gad > /tmp/all_doms
* criar um arquivo com lista de usuários de cada domínio e
removê-los e remover o domínio
# for each_dom in `cat /tmp/all_doms` ; do zmprov -l gaa
$each_dom > /tmp/$each_dom ; for each_usu in `cat /tmp/
$each_dom` ; do zmprov da $each_usu ; done ; done
35. ZM – Linha de comando
● Segredos
* Remover botão SPAM
# zmprov mc default zimbraFeatureAntispamEnabled FALSE
* Confirmação de recebimento
# zmprov mc default zimbraFeatureReadReceiptsEnabled TRUE
# zmprov mc default zimbraPrefMailSendReadReceipts always
36. ZM – Linha de comando
● Segredos
* LDAP tunning
# zmlocalconfig -e ldap_common_threads=8
# zmlocalconfig -e ldap_common_toolthreads=1
# zmlocalconfig -e ldap_db_idlcachesize=10000
* Processo de configuração preso
# zmlocalconfig -n zmmtaconfig_interval=86400
37. ZM – Linha de comando
● Segredos
* Impedindo modificações
/opt/zimbra/conf/zmmta.cf
* LDAP tunning
# zmlocalconfig -n zmmtaconfig_interval=86400
* Força o uso de autenticação em ambiente SSL
# zmtlsctl mixed
38. ZM – Linha de comando
● Segredos
* Definir host virtual
# zmprov md dominio.foo.bar zimbraVirtualHostname
webmail.dominio.foo.bar
* Mudar URL para interface de alteração de senhas
# zmprov md dominio.foo.bar zimbraChangePasswordURL
https://webmail.dominio.foo.bar:81/kyapanel
* Limpar cache e forçar mudanças mais rapidamente
# zmprov fc server hostname
39. ZM – Linha de comando
● Ilegais: links e logotipos
* Tentativa de remover o link da tela de login
# zmtlsctl mixed
* Mudar link do logotipo
# zmprov md dominio.foo.bar zimbraSkinLogoURL
http://dominio.foo.bar
40. ZM – Linha de comando
● Ilegais: links e logotipos
* Definir outro logotipo na tela de login (450 x 100)
# zmprov md dominio.foo.bar zimbraSkinLogoLoginBanner /path/image.png
* Definir outro logotipo na interface interna (120 x 35)
# zmprov md dominio.foo.bar zimbraSkinLogoAppBanner /path/image.png
OBS: Não esquecer do permissionamento
41. ZM – Testando envio e recebimento
● Enviando
* Via interface
* Via comando
# export smtp=endereço_ip
# echo teste |
nail -v
-s “Assunto da mensagem”
-r anahuac@anahuac.biz
-S smtp-use-starttls
-S ssl-verify=ignore
-S smtp-auth=login
-S smtp-auth-user=usuario@dominio.foo.bar
-S smtp-auth-password=senha123
destinatario@dominio.foo.bar
42. ZM – Instalação Distribuída
● Separar os serviços (dividir para conquistar)
* LDAP Server
* Zimbra MailBoxes
* MTA ( SMTP + AVAS )
43. ZM – Instalação Distribuída
● Benefícios
* Escalabilidade
● Pode-se crescer, teoricamente, sem limite
* Disponibilidade
● Um server cai, mas os demais continuam funcionando
* Desempenho
● Carga distribuída combate gargalos como I/O
* A busca pelo servidor certo é automática no login
44. ZM – Instalação Distribuída
● Instalar servidor LDAP
* Instalação normal, selecionando somente os pacotes
“zimbra-ldap” e “zimbra-snmp” na lista de pacotes.
* Todos os demais pacotes não devem ser instalados
45. ZM – Instalação Distribuída
● Instalar servidor LDAP
* Atenção para a definição da senha de admin do LDAP
( Common Configuration → 2 )
* Atenção com o timezone
( Timezone = 30 → América/São Paulo)
46. ZM – Instalação Distribuída
● Instalar servidor LDAP
* No menu principal selecione 2 → zimbra-ldap
* Defina todas as senhas
47. ZM – Instalação Distribuída
● Instalar servidor Mailbox
* O pacote zimbra-logger só é instalado no primeiro
servidor Mailbox
* Serão instalados os pacotes abaixo:
* Os pacotes zimbra-memcached, zimbra-proxy e zimbra-
snmp também
48. ZM – Instalação Distribuída
● Instalar servidor Mailbox
* Configurar o servidor LDAP no menu abaixo (2):
* Definir senha também (4)
* Definir timezone igual ao do servidor LDAP
49. ZM – Instalação Distribuída
● Instalar servidor Mailbox
* Admin Password
* SMTP Host → ainda não foi instalado, mas...
50. ZM – Instalação Distribuída
● Instalar servidor Mailbox
* Definir a senha do nginx 5 → 7
51. ZM – Instalação Distribuída
● Instalar servidor MTA
* Apenas o pacote zimbra-mta é instalado
* Se for usar SNMP deve instalar em todos os servidores
54. ZM – Migração
● Com mesmo hostname e endereço IP
● Na máquina de Origem
* Parar o Zimbra
● Na máquina de destino
* Instalar a mesma versão do Linux
* Instalar a mesma versão do Zimbra
* Parar o Zimbra
* Remover o conteúdo de /opt/zimbra/
* Usar o rsync para copiar tudo:
# rsync -avHS ip_de_origem:/opt/zimbra/* /opt/zimbra
55. ZM – Migração
● Com endereço IP diferente
● Se for na mesma sub-rede (sub net mask) tudo bem. Nada
precisa ser feito além de ajustar o DNS
● Na máquina de destino
Se for em outra rede, será necessário ajustar o
parâmetro zimbraMtaMyNetworks com o comando
abaixo:
# zmprov modifyServer hostname_do_servidor
zimbraMtaMyNetworks '127.0.0.0/8 novo_endereco_ip'
56. ZM – Backup
● Completo
● Implica em copiar todo o /opt/zimbra.
● Prós:
* Restauração garantida;
* Recuperação de desastres garantida;
● Contras:
* Muita área;
* Restauração parcial problemática
57. ZM – Backup
● Somente das caixas
● Implica em copiar os usuários um por um
● Prós:
* Restauração parcial facilitada;
* Pode-se fazer backup incremental por usuário
● Contras:
* Restauração completa mais trabalhosa;
* Recuperação de desastres é improvável.
58. ZM – Backup
● Misto: completo + caixas postais
● Implica em copiar os usuários um por um
● Prós
* Todos
● Contras:
* Muito espaço
59. ZM – Backup
● Backup completo: How To
# rsync -avhS --delete origem destino
● Diariamente ou até duas vezes por dia
● Cuidado com o I/O
60. ZM – Backup
● Backup de caixa postal
● Usando SOAP - Protocolo Simples de Acesso a Objetos
● Usando “curl” como ferramenta:
# curl -k -u admin:senha
https://serverhost:7071/home/conta/?fmt=tgz
> arquivo.tgz
61. ZM – Backup
● Backup das informações LDAP de caixa postal
● Usando ldapsearch
# ldapsearch -x -H ldapserver -D admin -w senha
-b '' -LLL "(zimbraMailDeliveryAddress=caixa_postal)"
> caixa_postal.ldiff
62. ZM – Backup - zmbkpose
● Script pronto
● zmbkpose
● Desenvolvido por um brasileiro;
● Shell script, usando SOAP e curl;
● Permite backup e restore de caixas postais individuais e em
lote
● Tem que instalar o curl
# aptitude install curl
66. ZM – Backup - zmbkpose
● Restaurando uma conta
● Corrigir a linha 280 do zmbkpose
| awk '{print $2}'
por
| cut -d: -f1
# zmbkpose -r conta@dominio data(MM/DD/AA)
67. ZM – Recuperação de Desastres
● Restaurar backup completo e ajustar o permissionamento
● Restaurar com cp ou rsync
● Redefinir os permissionamentos
# chown -R zimbra:zimbra /opt/zimbra
# /opt/zimbra/libexec/zmfixperms
68. ZM – Troubleshooting
● Consiste na avaliação dos logs de registro
● /opt/zimbra/log
mailbox.log
access_log.*
backup.log
69. ZM – MySql - Integridade
● Consiste na avaliação dos logs de registro
● /opt/zimbra/libexec/zmdbintegrityreport
● /opt/zimbra/mysql/bin/mysqlcheck --defaults-
file=/opt/zimbra/conf/my.cnf -S /opt/zimbra/db/mysql.sock -A
-C -s -u root --password=xxxxxxx
70. ZM – KyaPanel
● Sistema de gestão de servidores de E-mail
● Permite gestão independente de múltiplos domínios
● Gestão personalizada por domínio e por usuário
● Backup e restore integrado
● Gestão personalizada de spam
● Ainda não gerencia ambientes multi-node
71. ZM – KyaPanel
● Baixando, instalando e configurando
● Baixando de http://www.kyapanel.com
● Para o Zimbra
● Instala os pacotes abaixo:
# aptitude install bc slapd apache2 ldap-utils libapache2-
mod-php5 libpam-ldap libdb4.8 phpldapadmin php5-ldap
php5-cgi db4.8-util postfix-ldap courier-base courier-imap
courier-ldap courier-pop courier-authdaemon libfile-tail-perl
librrds-perl librrd4 heirloom-mailx maildrop munin munin-
node gettext rrdtool sqlite tcputils xinetd bc maildrop
uudeview ytnef
● Basta responder de forma padrão qualquer tela de
configuração
72. ZM – KyaPanel
● Baixando, instalando e configurando
● Apontar o navegador para http://endereçoip/kyapanel
● Basta seguir as orientações do instalador até finalizar a
instalação do KyaPanel
● Remover courier, slapd e postfix da inicialização (rcconf)
● Como o objetivo é integrar com Zimbra, antes de configurar
os demais serviços, vamos fazer a integração.
# cd /usr/share/kyapanel/mail/zimbra
# ./