Você está na página 1de 72

Apresentao

Professor: Anahuac de Paula Gil


Membro da comunidade SL desde 1996
Criador e mantenedor do KyaPanel
Autor do livro OpenLDAP Extreme

Aulas
Perodo:
Horrio:
Intervalo:

de 19 a 30 de novembro
das 08:30 s 12:30 diariamente
das 10:30 s 10:45

Mtodo:
Meio:
Material:

prtico
on-line em laboratrio
slides + manuais oficiais em en_US

Infra

Recurso: VirtualBox
SO:
Ubuntu Server 10.04 - LTS
Aplicativo: Zimbra OSE 7.2.0

Infra Copiando as VM's


Cpia comum:
# cp zimbra.vdi zimbra_mn_ldap.vdi
# cp zimbra.vdi zimbra_mn_mailbox.vdi
# cp zimbra.vdi zimbra_mn_mta.vdi
# VBoxManage internalcommands sethduuid zimbra_mn_ldap.vdi
# VBoxManage internalcommands sethduuid zimbra_mn_mailbox.vdi
# VBoxManage internalcommands sethduuid zimbra_mn_mta.vdi

ZM Instalao Distribuda

Instalar servidor LDAP


* Instalao normal, selecionando somente o pacote
zimbra-ldap na lista de pacotes.
* Todos os demais pacotes no devem ser instalados
* Ateno para definir uma senha de admin do LDAP
Selecione 1 nas configuraes.

Fundamentos
Servio de correio eletrnico

SMTP
POP/IMAP
Base de usurios
Anti Vrus
Anti Spam
Greylist
SPF
Gotcha

Fundamentos

DNS

Resoluo direta de host


Resoluo 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"

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";
};

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
IN
training.com.
training.com.
@
server
mail
smtp
pop
imap
webmail
muita
mailbox

IN
IN
IN
IN
IN
IN
IN
IN
IN

NS
MX
IN
IN
A
A
A
A
A
A
A
A
A

server.training.com.
10 mail
TXT "v=spf1 a mx ~all"
SPF "v=spf1 a mx ~all"
192.168.0.X
192.168.0.X
192.168.0.X
192.168.0.X
192.168.0.X
192.168.0.X
192.168.0.X
192.168.0.X
192.168.0.X

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
IN
training.com.
training.com.
@
server
mail
smtp
pop
imap
webmail
muita
mailbox

IN
IN
IN
IN
IN
IN
IN
IN
IN

NS
MX
IN
IN
A
A
A
A
A
A
A
A
A

server.training.com.
10 mail
TXT "v=spf1 a mx ~all"
SPF "v=spf1 a mx ~all"
192.168.0.X
192.168.0.X
192.168.0.X
192.168.0.X
192.168.0.X
192.168.0.X
192.168.0.X
192.168.0.X
192.168.0.X

DNS

Em /etc/resolv.conf
nameserver ip_do_servidor_dns

SMTP x ESMTP
SMTP
Primeiro comando de conexo:

ESMTP
Primeiro comando de conexo:

HELO

EHLO

RFC 821

RFC 1869

SMTP MAIL FROM e RCPT TO


permite um tamanho de apenas 512
caracteres incluindo o <CRLF>.

ESMTP MAIL FROM and RCPT TO


permite um tamanho maior do que 512
caracteres.

SMTP puro no pode ser estendido


com novos comandos.

ESMTP um framework que otimiza o


SMTP permitindo que se adionem
novos comandos.

Introduo ao Zimbra

Servio de colaborao
- Email, agenda, tarefas, arquivos...

Foi software proprietrio. Yahoo e VM Ware

Feito em Java, compilado.

Pacotes prprios de Postfix, OpenLDAP,


Amavis, MySQL, etc

Verses NE e OSE

ZM - Componentes

Jetty Servidor web onde ele executado

Postfix Servidor SMTP

OpenLDAP Autenticao

MySQL Base de dados principal

Lucene Servio de textos e pesquisas

Antivirus ClamAV, SpamAssassin e Amavis

James/Sieve Criao de filtros

ZM - Pacotes

zimbra-apache, zimbra-core, zimbra-ldap,


zimbra-logger, zimbra-memcached, zimbramta, zimbra-proxy, zimbra-snmp, zimbra-spell e
zimbra-store

ZM Arquitetura

Core Ncleo do Zimbra


LDAP Autenticao
MTA Envio e recebimento de mensagens
Store Armazenamento
SNMP Anlise e monitoramento
Logger Registro de atividades
Spell Correo ortogrfica (apache)
Proxy Servio POP/IMAP
Memcahe Cache e otimizao de memria

ZM - Disponibilidade e Escalabilidade

Disponibilidade
Somente disponvel na verso NE
Na verso OSE com HeartBeat e DRBD
Escalabilidade
Proveniente do ambiente multi-server

ZM Instalao 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 espao livre em /opt

ZM Instalao do Zimbra
3) Instalando
# cd zcs-7.2.0_GA_2669.UBUNTU10_64.20120410002303
# ./install.sh

4) Passos
- Concorda com a licena?
- Seleo dos pacotes a serem instalados: Y para todos
- Resoluo de nomes para domnio:
* Muda hostname?
* Muda domnio?
- Tela de definies: senha admin, portas e outros.
- Tecla a confirma
- Informar a Zimbra sobre essa instalao?

ZM Ps instalao

Anlise do log de instalao;


# vi /opt/zimbra/log/zmsetup.*

Servios e portas iniciadas


# nmap ip_principal

ZM Ps instalao

Organizao dos diretrios


# ls /opt/zimbra
- bin
- conf
- postfix
- store

ZM Console Administrativo

Endereos
- Contas
- Nomes alternativos
- Listas de distribuio
- Recursos (locais ou maquinas - agenda)
Configurao
- Classe de servio
* Informaes gerais
* Recursos
* Preferncias
* Temas
* Zimlets
* Conjunto de servidores
* Avanado

ZM Console Administrativo

Configurao
- Domnios
* Informaes gerais
* Lista global de endereos
* Autenticao
* Hosts virtuais
* Avanado
* Interoperao livre/ocupado
* Zimlets
* Temas
* Certificado

ZM Console Administrativo

Configurao
- Configuraes do servidor
* Informaes gerais
* Servios
* MTA
* IMAP
* POP
* Volumes

ZM Console Administrativo

Configurao
- Zimlets
* http://gallery.zimbra.com/
* Zimbra Notifier (s para Windows)
* Colored E-mails
* Downloader
* Holiday Calendar
* Undo Send

ZM Console Administrativo

Configurao
- Zimlets
* Instalando
Download Zimlets Ditribuir

ZM Console Administrativo

Configurao
- Extenses administrativas
* http://gallery.zimbra.com/
* Domain Signature Disclaimer

ZM Console Administrativo

Configurao
- Zimlets
- Extenses administrativas
- Configuraes globais
* Informaes gerais
* Anexos
* MTA
* IMAP
* POP
* AS/AV
* Interoperao livre/ocupado
* Temas
* Avanado

ZM Console Administrativo

Monitorando
- Status do servidor
- Estatsticas do servidor

Ferramentas
- Filas de e-mail
- Atualizaes de software
- Certificados
- Migrao de conta

Buscas

ZM Linha de comando

99,9% das vezes, executar como usurio zimbra


# zmprov help

Criando domnios e usurios


# zmprov cd dominio
# zmprov ca usuario@dominio senha

ZM Linha de comando

Modificando usurios
# zmprov ma usuario@dominio zimbraMailQuota cota
# zmprov sm usuario@dominio cf /pasta
# zmprov sp usuario@dominio senha
# zmprov ma usuario@dominio userPassword hash

Listando domnios e usurios


# zmprov gad (get all domains)
# zmprov -l gaa dominio (get all accounts)

ZM Linha de comando

Removendo domnios e usurios


# zmprov da usuario@dominio
# zmprov dd dominio

Automatizando criao
* criar um arquivo com lista de domnios (/tmp/arq_dom)
* criar um arquivo com lista de usurios (/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

ZM Linha de comando

Automatizando remoo
* criar um arquivo com lista de domnios
# zmprov gad > /tmp/all_doms
* criar um arquivo com lista de usurios de cada domnio e
remov-los e remover o domnio
# 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

ZM Linha de comando

Segredos
* Remover boto SPAM
# zmprov mc default zimbraFeatureAntispamEnabled FALSE
* Confirmao de recebimento
# zmprov mc default zimbraFeatureReadReceiptsEnabled TRUE
# zmprov mc default zimbraPrefMailSendReadReceipts always

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 configurao preso
# zmlocalconfig -n zmmtaconfig_interval=86400

ZM Linha de comando

Segredos
* Impedindo modificaes
/opt/zimbra/conf/zmmta.cf
* LDAP tunning
# zmlocalconfig -n zmmtaconfig_interval=86400
* Fora o uso de autenticao em ambiente SSL
# zmtlsctl mixed

ZM Linha de comando

Segredos
* Definir host virtual
# zmprov md dominio.foo.bar zimbraVirtualHostname
webmail.dominio.foo.bar
* Mudar URL para interface de alterao de senhas
# zmprov md dominio.foo.bar zimbraChangePasswordURL
https://webmail.dominio.foo.bar:81/kyapanel
* Limpar cache e forar mudanas mais rapidamente
# zmprov fc server hostname

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

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: No esquecer do permissionamento

ZM Testando envio e recebimento

Enviando
* Via interface
* Via comando
# export smtp=endereo_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

ZM Instalao Distribuda

Separar os servios (dividir para conquistar)


* LDAP Server
* Zimbra MailBoxes
* MTA ( SMTP + AVAS )

ZM Instalao Distribuda

Benefcios
* Escalabilidade
Pode-se crescer, teoricamente, sem limite
* Disponibilidade
Um server cai, mas os demais continuam funcionando
* Desempenho
Carga distribuda combate gargalos como I/O
* A busca pelo servidor certo automtica no login

ZM Instalao Distribuda

Instalar servidor LDAP


* Instalao normal, selecionando somente os pacotes
zimbra-ldap e zimbra-snmp na lista de pacotes.
* Todos os demais pacotes no devem ser instalados

ZM Instalao Distribuda

Instalar servidor LDAP


* Ateno para a definio da senha de admin do LDAP
( Common Configuration 2 )

* Ateno com o timezone


( Timezone = 30 Amrica/So Paulo)

ZM Instalao Distribuda

Instalar servidor LDAP


* No menu principal selecione 2 zimbra-ldap

* Defina todas as senhas

ZM Instalao Distribuda

Instalar servidor Mailbox


* O pacote zimbra-logger s instalado no primeiro
servidor Mailbox
* Sero instalados os pacotes abaixo:

* Os pacotes zimbra-memcached, zimbra-proxy e zimbrasnmp tambm

ZM Instalao Distribuda

Instalar servidor Mailbox


* Configurar o servidor LDAP no menu abaixo (2):

* Definir senha tambm (4)


* Definir timezone igual ao do servidor LDAP

ZM Instalao Distribuda

Instalar servidor Mailbox

* Admin Password
* SMTP Host ainda no foi instalado, mas...

ZM Instalao Distribuda

Instalar servidor Mailbox

* Definir a senha do nginx 5 7

ZM Instalao Distribuda

Instalar servidor MTA


* Apenas o pacote zimbra-mta instalado

* Se for usar SNMP deve instalar em todos os servidores

ZM Instalao Distribuda

Instalar servidor MTA


* Configurar:

ZM Instalao Distribuda

Instalar servidor MTA


* Configurar:
* LDAP 1 2
* LDAP Admin password 1 4
* MTA Auth host 2 2 (Um servidor Mailbox)
* Postfix user 2 6
* Amavis user 2 7

ZM Migrao

Com mesmo hostname e endereo IP

Na mquina de Origem
* Parar o Zimbra

Na mquina de destino
* Instalar a mesma verso do Linux
* Instalar a mesma verso do Zimbra
* Parar o Zimbra
* Remover o contedo de /opt/zimbra/
* Usar o rsync para copiar tudo:

# rsync -avHS ip_de_origem:/opt/zimbra/* /opt/zimbra

ZM Migrao

Com endereo IP diferente

Se for na mesma sub-rede (sub net mask) tudo bem. Nada


precisa ser feito alm de ajustar o DNS
Na mquina de destino

Se for em outra rede, ser necessrio ajustar o


parmetro zimbraMtaMyNetworks com o comando
abaixo:
# zmprov modifyServer hostname_do_servidor
zimbraMtaMyNetworks '127.0.0.0/8 novo_endereco_ip'

ZM Backup

Completo

Implica em copiar todo o /opt/zimbra.

Prs:
* Restaurao garantida;
* Recuperao de desastres garantida;

Contras:
* Muita rea;
* Restaurao parcial problemtica

ZM Backup

Somente das caixas

Implica em copiar os usurios um por um

Prs:
* Restaurao parcial facilitada;
* Pode-se fazer backup incremental por usurio

Contras:
* Restaurao completa mais trabalhosa;
* Recuperao de desastres improvvel.

ZM Backup

Misto: completo + caixas postais

Implica em copiar os usurios um por um

Prs
* Todos

Contras:
* Muito espao

ZM Backup

Backup completo: How To


# rsync -avhS --delete origem destino

Diariamente ou at duas vezes por dia


Cuidado com o I/O

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

ZM Backup

Backup das informaes LDAP de caixa postal

Usando ldapsearch
# ldapsearch -x -H ldapserver -D admin -w senha
-b '' -LLL "(zimbraMailDeliveryAddress=caixa_postal)"
> caixa_postal.ldiff

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

ZM Backup - zmbkpose

Configurando zmbkpose

Criar /etc/zmbkpose e copiar zmbkpose.conf para lDefinir


# mkdir /etc/zmbkpose ; cp zmbpkose.conf /etc/zmbkpose

Editar zmbkpose.conf
ADMINUSER
ADMINPASS
LDAPMASTERSERVER
LDAPZIMBRAPASS
PARALLEL_SUPPORT
MAX_PARALLEL_PROCESS

ZM Backup - zmbkpose

Configurando zmbkpose

Copiar o script para /usr/bin e definir permissionamento


# cp zmbkpose /usr/bin
# chmod +x /usr/bin/zmbkpose

ZM Backup - zmbkpose

Executando zmbkpose
# su zimbra
# zmbkpose -h
# zmbkpose -f
# zmbkpose -i

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)

ZM Recuperao 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

ZM Troubleshooting

Consiste na avaliao dos logs de registro

/opt/zimbra/log
mailbox.log
access_log.*
backup.log

ZM MySql - Integridade

Consiste na avaliao dos logs de registro

/opt/zimbra/libexec/zmdbintegrityreport
/opt/zimbra/mysql/bin/mysqlcheck --defaultsfile=/opt/zimbra/conf/my.cnf -S /opt/zimbra/db/mysql.sock -A
-C -s -u root --password=xxxxxxx

ZM KyaPanel

Sistema de gesto de servidores de E-mail

Permite gesto independente de mltiplos domnios


Gesto personalizada por domnio e por usurio
Backup e restore integrado
Gesto personalizada de spam
Ainda no gerencia ambientes multi-node

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 libapache2mod-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 muninnode gettext rrdtool sqlite tcputils xinetd bc maildrop
uudeview ytnef

Basta responder de forma padro qualquer tela de


configurao

ZM KyaPanel

Baixando, instalando e configurando

Apontar o navegador para http://endereoip/kyapanel


Basta seguir as orientaes do instalador at finalizar a
instalao do KyaPanel
Remover courier, slapd e postfix da inicializao (rcconf)
Como o objetivo integrar com Zimbra, antes de configurar
os demais servios, vamos fazer a integrao.
# cd /usr/share/kyapanel/mail/zimbra
# ./