Upload
anahuac2
View
3.215
Download
10
Embed Size (px)
Citation preview
Apresentação
Professor: Anahuac de Paula Gil
Membro da comunidade SL desde 1996Criador e mantenedor do KyaPanelAutor do livro OpenLDAP Extreme
Aulas
Período: de 19 a 30 de novembroHorário: das 08:30 às 12:30 diariamenteIntervalo: das 10:30 às 10:45
Método: práticoMeio: on-line em laboratórioMaterial: slides + manuais oficiais em en_US
Infra
Recurso: VirtualBoxSO: Ubuntu Server 10.04 - LTSAplicativo: Zimbra OSE – 7.2.0
Infra – Copiando as VM's
Cópia 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 – 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.
Fundamentos
Serviço de correio eletrônico
● SMTP● POP/IMAP● Base de usuários● Anti Vírus● Anti Spam● Greylist● SPF● Gotcha
Fundamentos
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"
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";};
DNSEm /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.Xserver IN A 192.168.0.Xmail IN A 192.168.0.Xsmtp IN A 192.168.0.Xpop IN A 192.168.0.Ximap IN A 192.168.0.Xwebmail IN A 192.168.0.Xmuita IN A 192.168.0.Xmailbox IN A 192.168.0.X
DNSEm /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.Xserver IN A 192.168.0.Xmail IN A 192.168.0.Xsmtp IN A 192.168.0.Xpop IN A 192.168.0.Ximap IN A 192.168.0.Xwebmail IN A 192.168.0.Xmuita IN A 192.168.0.Xmailbox IN A 192.168.0.X
DNS
● Em /etc/resolv.conf
nameserver ip_do_servidor_dns
SMTP x ESMTP
SMTP ESMTP
Primeiro comando de conexão:
HELO
Primeiro comando de conexão:
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 não pode ser estendido com novos comandos.
ESMTP é um framework que otimiza o SMTP permitindo que se adionem
novos comandos.
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
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
ZM - Pacotes
● zimbra-apache, zimbra-core, zimbra-ldap,
zimbra-logger, zimbra-memcached, zimbra-
mta, zimbra-proxy, zimbra-snmp, zimbra-spell e
zimbra-store
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
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
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
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?
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
ZM – Pós instalação
● Organização dos diretórios
# ls /opt/zimbra
- bin- conf- postfix- store
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
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
ZM – Console Administrativo
● Configuração
- Configurações do servidor
* Informações gerais* Serviços* MTA* IMAP* POP* Volumes
ZM – Console Administrativo
● Configuração
- Zimlets
* http://gallery.zimbra.com/
* Zimbra Notifier (só para Windows)* Colored E-mails* Downloader* Holiday Calendar* Undo Send
ZM – Console Administrativo
● Configuração
- Zimlets
* Instalando
Download → Zimlets → Ditribuir
ZM – Console Administrativo
● Configuração
- Extensões administrativas
* http://gallery.zimbra.com/
* Domain Signature Disclaimer
ZM – Console Administrativo● Configuração
- Zimlets
- Extensões administrativas
- Configurações globais* Informações gerais* Anexos* MTA* IMAP* POP* AS/AV* Interoperação livre/ocupado* Temas* Avançado
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
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
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)
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
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
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
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
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
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
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: Não esquecer do permissionamento
ZM – Testando envio e recebimento● Enviando
* Via interface* Via comando
# export smtp=endereço_ip# echo teste | nail -v -s “Assunto da mensagem” -r [email protected] -S smtp-use-starttls -S ssl-verify=ignore -S smtp-auth=login -S [email protected] smtp-auth-password=senha123 [email protected]
ZM – Instalação Distribuída
● Separar os serviços (dividir para conquistar)
* LDAP Server* Zimbra MailBoxes* MTA ( SMTP + AVAS )
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
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
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)
ZM – Instalação Distribuída
● Instalar servidor LDAP
* No menu principal selecione 2 → zimbra-ldap
* Defina todas as senhas
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
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
ZM – Instalação Distribuída● Instalar servidor Mailbox
* Admin Password* SMTP Host → ainda não foi instalado, mas...
ZM – Instalação Distribuída
● Instalar servidor Mailbox
* Definir a senha do nginx 5 → 7
ZM – Instalação Distribuída
● Instalar servidor MTA
* Apenas o pacote zimbra-mta é instalado
* Se for usar SNMP deve instalar em todos os servidores
ZM – Instalação Distribuída
● Instalar servidor MTA
* Configurar:
ZM – Instalação Distribuída
● 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 – 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
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'
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
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.
ZM – Backup
● Misto: completo + caixas postais
● Implica em copiar os usuários um por um
● Prós
* Todos
● Contras:
* Muito espaço
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 informações 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 láDefinir
# mkdir /etc/zmbkpose ; cp zmbpkose.conf /etc/zmbkpose
● Editar zmbkpose.conf
ADMINUSERADMINPASSLDAPMASTERSERVERLDAPZIMBRAPASSPARALLEL_SUPPORTMAX_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 – 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
ZM – Troubleshooting
● Consiste na avaliação dos logs de registro
● /opt/zimbra/log
mailbox.logaccess_log.*backup.log
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
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
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
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# ./