Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Zimbra Anahuac2

3,793 views

Published on

Published in: Technology
  • Be the first to comment

Zimbra Anahuac2

  1. 1. ApresentaçãoProfessor: Anahuac de Paula Gil Membro da comunidade SL desde 1996 Criador e mantenedor do KyaPanel Autor do livro OpenLDAP Extreme
  2. 2. AulasPeríodo: de 19 a 30 de novembroHorário: das 08:30 às 12:30 diariamenteIntervalo: das 10:30 às 10:45Método: práticoMeio: on-line em laboratórioMaterial: slides + manuais oficiais em en_US
  3. 3. InfraRecurso: VirtualBoxSO: Ubuntu Server 10.04 - LTSAplicativo: Zimbra OSE – 7.2.0
  4. 4. Infra – Copiando as VMsCó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
  5. 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. 6. FundamentosServiço de correio eletrônico ● SMTP ● POP/IMAP ● Base de usuários ● Anti Vírus ● Anti Spam ● Greylist ● SPF ● Gotcha
  7. 7. Fundamentos
  8. 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. 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. 10. 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.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. 11. 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.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. 12. DNS● Em /etc/resolv.conf nameserver ip_do_servidor_dns
  13. 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. 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. 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
  16. 16. ZM - Pacotes● zimbra-apache, zimbra-core, zimbra-ldap, zimbra-logger, zimbra-memcached, zimbra- mta, zimbra-proxy, zimbra-snmp, zimbra-spell e zimbra-store
  17. 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. 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. 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. 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. 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. 22. ZM – Pós instalação● Organização dos diretórios # ls /opt/zimbra - bin - conf - postfix - store
  23. 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. 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. 25. ZM – Console Administrativo● Configuração - Configurações do servidor * Informações gerais * Serviços * MTA * IMAP * POP * Volumes
  26. 26. ZM – Console Administrativo● Configuração - Zimlets * http://gallery.zimbra.com/ * Zimbra Notifier (só para Windows) * Colored E-mails * Downloader * Holiday Calendar * Undo Send
  27. 27. ZM – Console Administrativo● Configuração - Zimlets * Instalando Download → Zimlets → Ditribuir
  28. 28. ZM – Console Administrativo● Configuração - Extensões administrativas * http://gallery.zimbra.com/ * Domain Signature Disclaimer
  29. 29. 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
  30. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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 zimbraSkinLogoURLhttp://dominio.foo.bar
  40. 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. 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. 42. ZM – Instalação Distribuída● Separar os serviços (dividir para conquistar) * LDAP Server * Zimbra MailBoxes * MTA ( SMTP + AVAS )
  43. 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. 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. 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. 46. ZM – Instalação Distribuída● Instalar servidor LDAP * No menu principal selecione 2 → zimbra-ldap * Defina todas as senhas
  47. 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. 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. 49. ZM – Instalação Distribuída● Instalar servidor Mailbox * Admin Password * SMTP Host → ainda não foi instalado, mas...
  50. 50. ZM – Instalação Distribuída● Instalar servidor Mailbox * Definir a senha do nginx 5 → 7
  51. 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
  52. 52. ZM – Instalação Distribuída● Instalar servidor MTA * Configurar:
  53. 53. 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
  54. 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. 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. 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. 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. 58. ZM – Backup● Misto: completo + caixas postais ● Implica em copiar os usuários um por um ● Prós * Todos ● Contras: * Muito espaço
  59. 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. 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. 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. 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
  63. 63. 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 ADMINUSER ADMINPASS LDAPMASTERSERVER LDAPZIMBRAPASS PARALLEL_SUPPORT MAX_PARALLEL_PROCESS
  64. 64. ZM – Backup - zmbkpose● Configurando zmbkpose ● Copiar o script para /usr/bin e definir permissionamento # cp zmbkpose /usr/bin # chmod +x /usr/bin/zmbkpose
  65. 65. ZM – Backup - zmbkpose● Executando zmbkpose # su zimbra # zmbkpose -h # zmbkpose -f # zmbkpose -i
  66. 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. 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. 68. ZM – Troubleshooting● Consiste na avaliação dos logs de registro ● /opt/zimbra/log mailbox.log access_log.* backup.log
  69. 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. 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. 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. 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 # ./

×