terça-feira, 7 de abril de 2009

Instalação e Configuração do Zimbra + KyaPanel


Fiz a implementação de um servidor de email rodando Zimbra e KyaPanel, e criei uma documentação sobre a instalação e configuração do Zimbra para funcionar junto com o KyaPanel. Depois de muito sofrimento consegui fazer funcionar essa dupla que depois de bem configurada é uma maravilha. Inúmeros recursos e vantagens que fazem da combinação Zimbra+KyaPanel uma das soluções mais completas e administráveis para servidores de email do mundo do software livre.

Agradeço ao meu grande amigo Marcos Abadi que me auxiliou nas configurações do openldap e para deixar o kyapanel redondinho...

No final do tutorial tem o ítem Problemas Frequentes, que recomendo fortemente uma lida. Procurei esclarecer a solução dos problemas que tive na implementação da dupla.
Também final do tutorial estão os links dos sites e wikis que me baseei para criar este tutorial.


1. PRÉ INSTALAÇÃO:

O Firewall e o SELinux deverão ser desabilitados na instalação.

Após a instalação ser realizada temos que desabilitar alguns serviços:


# chkconfig sendmail off

# chkconfig iptables off

# chkconfig ip6tables off


Precisamos também instalar o pacote libtool-ltdl


# yum install libtool-ltdl fetchmail compat-libstdc++-296 compat-libstdc++-33


Configuração do DNS ( Altere conforme sua rede )

zimbra A 10.0.1.1

@ MX 5 zimbramail.meudomnio.net.


2. INSTALANDO O ZIMBRA

Faça o download da ultima versão do pacote de instalação no site do desenvolvedor.

Entre na pasta onde foi descompactado o pacote do zimbra, e execute os comandos abaixo:

./install.sh --platform-override


A saída deverá se parecer com isto:


Checking for existing installation...

zimbra-ldap...NOT FOUND

zimbra-logger...NOT FOUND

zimbra-mta...NOT FOUND

zimbra-snmp...NOT FOUND

zimbra-store...NOT FOUND

zimbra-apache...NOT FOUND

zimbra-spell...NOT FOUND

zimbra-proxy...NOT FOUND

zimbra-archiving...NOT FOUND

zimbra-cluster...NOT FOUND

zimbra-core...NOT FOUND



O Zimbra irá pedir para confirmar a licença e logo após irá checar o sistema


Checking for prerequisites...

NPTL...FOUND

sudo...FOUND sudo-1.6.7p12-10

libidn...FOUND libidn-0.6.5-1.1

fetchmail...FOUND fetchmail-6.3.6-1.1

gmp...FOUND gmp-4.1.4-10

compat-libstdc++-296...FOUND compat-libstdc++-296-2.96-138

compat-libstdc++-33...FOUND compat-libstdc++-33-3.2.3-61

libtool-ltdl...FOUND libtool-ltdl-1.5.22-6.1

/usr/lib/libstdc++.so.6...FOUND

Prerequisite check complete.

Checking for standard system perl...

perl-5.8.8...FOUND start system perl-5.8.8


Checking for installable packages


Found zimbra-core

Found zimbra-ldap

Found zimbra-logger

Found zimbra-mta

Found zimbra-snmp

Found zimbra-store

Found zimbra-apache

Found zimbra-spell

Found zimbra-proxy


O próximo passo será escolher os pacotes a serem instalados no servidor. Para um servidor completo de E-mails responda Y para todos os pacotes, menos o Proxy que não é essencial.

Install zimbra-ldap [Y]

Install zimbra-logger [Y]

Install zimbra-mta [Y]

Install zimbra-snmp [Y]

Install zimbra-store [Y]

Install zimbra-apache [Y]

Install zimbra-spell [Y]

Install zimbra-proxy [N]

Você receberá uma mensagem que a plataforma onde esta sendo instalado é diferente de RHEL5. Responda Y para continuar a instalação. Logo após aparecerá uma mensagem informando que o sistema irá receber alterações, responda Y também.


You appear to be installing packages on a platform different

than the platform for which they were built


This platform is CentOS5

Packages found: zimbra-core-5.0.2_GA_1975.RHEL5-20080130221917.i386.rpm

This may or may not work

Install anyway? [N] Y

The system will be modified. Continue? [N] Y


Agora o Zimbra será literalmente instalado no servidor. Esta tarefa é consideravelmente demorada.

Preste atenção nos "*" no item Admin Password. Isto significa que deverá ser setada uma senha para o usuário admin.

Digite 3 para entrar na opção zimbra-store

Agora digite 4 e insira uma senha para o administrador, depois digite r para voltar ao menu principal e digite a para salvar as modificações.

Se tudo correu bem o Zimbra já esta instalado e funcional no servidor.


Notify Zimbra of your installation? [Yes] YES


3. Habilitando o RPMForge Repository


Os pacotes do monit e munin, entre outras dependencias para o KyaPanel não estão no repositório do CentOS, por isso vamos habilitar o RPMForge


# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
# rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm


4. INSTALANDO DEPENDÊNCIAS


yum install munin munin-node openldap-servers perl-File-Tail perl-RRDs perl-net-server-fork rddtoll rddtool-perl perl-Mail-IMAPClient bc httpd php postfix httpd openldap openldap-servers openldap-clients perl-File-Tail rrdtool rrdtool-perl perl-Mail-IMAPClient maildrop munin munin-node clamav clamav-server clamav-update spamassassin sqlite samba xinetd samba-client -y


wget ftp://rpmfind.net/linux/fedora/releases/9/Everything/i386/os/Packages/tcputils-0.6.2-3.fc9.i386.rpm
# rpm -Uvh tcputils-0.6.2-3.fc9.i386.rpm


5. CONFIGURANDO O MUNIN

Iniciando o serviço

# /etc/init.d/munin-node start


Configurando

Agora vamos editar o arquivo de configuração /etc/munin/munin.conf, vamos configurar o htmldir e o FQN da máquina.

# vi /etc/munin/munin.conf

###########################
[...]
dbdir /var/lib/munin
htmldir /var/www/munin
logdir /var/log/munin
rundir /var/run/munin


# Where to look for the HTML templates
tmpldir /etc/munin/templates
[...]
# a simple host tree
[srv02.goldit.com.br]
address 127.0.0.1
use_node_name yes
#################################


Criando o diretório


# mkdir -p /var/www/munin
# chown munin:munin /var/www/munin
# /etc/init.d/munin-node restart


Observações


No arquivo /etc/hosts deverá conter a entrada para o FQN do servidor, por exemplo:

127.0.0.1 localhost srv02.goldit.com.br


Iniciando o XINETD:

/etc/init.d/xinetd start


6. INSTALAÇAO DO KYAPANEL

Faça o download da ultima versão do software no site do desenvolvedor no formato RPM

Instale o pacote:

# rpm -i kyapanell-2.2.1.rpm


Configure o APACHE para rodar em uma porta diferente para não conflitar com o zimbra na porta 80

vim /etc/httpd/conf/httpd.conf


Altere a linha : Listen 80

para

Listen 800


Reinicie o apache: /etc/init.d/httpd restart

Para o término da instalação acesso no seu navegador: http://zimbramail.meudomino.net:800/kyainstall


Configurando Ldap


Copiar schemas da pasta /usr/share/ldap/schemas/* para a pasta /etc/openldap/schemas/


Incluir schemas no aquivo : /etc/openldap/slapd.conf


include /etc/openldap/schema/misc.schema

include /etc/openldap/schema/qmailuser.schema

include /etc/openldap/schema/phpgwcontact.schema

include /etc/openldap/schema/phpgwaccount.schema

include /etc/openldap/schema/samba.schema

-

incluir configurações abaixo no slapd.conf


access to attrs=userPassword,shadowLastChange

by dn="cn=admin,dc=meudominio,dc=net" write

by anonymous auth

by self write

by * none


access to *

by dn="cn=admin,dc=meudominio,dc=net" write

by * read



database bdb

suffix "dc=meudominio,dc=net"

rootdn "cn=admin,dc=meudominio,dc=net"

rootpw {MD5}yfdfgfFGGHdSDfgGFS==

OBS: Para gerar a senha execute:

# slappasswd -h {md5}

Depois cole a saída no item rootpw


Agora pare o ldap:

# /etc/init.d/ldap stop


Configurando Base do Openldap

No CentOS o OpenLDAP não é configurado de forma automática, ou seja, não há base inicial e alguns ajustes precisam ser feitos para que o instalador do KyaPanel funcione bem.

Cuidado: O rhl_populate.sh irá remover completamente a sua base LDAP para que ela seja reconstruída da forma que o KyaPanel prefere.

Execute o script abaixo:

usr/share/kyapanel/install/rhl_populate.sh


Continuando a instalação:

Na tela de instalação seleciona o idioma para a instalação

Depois insira a senha para o usuário

Então clique na guia LDAP

Insira o IP do servidor LDAP que é o mesmo do ZIMBRA e a senha da base do LDAP


Clique em STATUS TEST

Se tudo estiver correto deve aparecer a mesagem de sucesso na conexão e aparecerá o botao INSTALAR.

Clique nele e em alguns segundos irá aparecer a tela de login do KYAPANEL.


7. CONFIGURANDO MÓDULOS KYAPANEL

Após logar no kypanel, clique no botão CONFIGURAÇÕES GLOBAIS.

Então vá no opção ATIVAR/DESATIVAR MODULOS

Na opção Módulo Mail, marque a opção LOCAL no Modulo EMAIL

Então clique em ALTERAR.


Após habilitar o modulo de email, temos que habilitar o suporte ao zimbra:

E-mail Management -> General Configurations -> Zimbra – Enable


criando link:

ln -s /etc/openldap/ /etc/ldap


Pare o zimbra:

su zimbra -c"/opt/zimbra/bin/zmcontrol stop"


8. CONFIGURANDO KYAPANEL

Vá em /usr/share/kyapanel/mail/zimbra

Rode o script kp2z.sh

# ./kp2z.sh

OBS: Para rodar o kp2z.sh, o Zimbra não deve estar executando.


Agora rode o script

Vá em /usr/share/kyapanel/mail/zimbra

# ./kp2z_users.sh


Configurando POSTFIX

Para configura o postfix vá no menu principal do KYAPANEL:

Gestão de email – Configurações gerais – Postfix

Então siga os passos recomendados.



PROBLEMAS FREQUENTES:


Limpar entradas erradas:

dentro do arquivo ldap.conf.in

apagar entradas duplicadas dos schemas



Limpar identificação de zimbra ON

no arquivo kya.conf

apague a linha:

ZIMBRA=1

alterar dono dos arquivos do postfix do zimbra

[root@zimbra zimbra]# chown root.zimbra /opt/zimbra/postfix/conf/main.cf

[root@zimbra zimbra]# chown root.zimbra /opt/zimbra/postfix/conf/master.cf

[root@zimbra zimbra]# chown root.zimbra /opt/zimbra/postfix/conf/master.cf.in



Feitos os procedimentos acima execute novamente os scripts kp2z.sh e kp2z_users.sh

OBS: Depois de executado os scripts verifique se a opção ZIMBRA=1 está habilitada, se não estiver habilite pois será necessário para configuração do postfix


Declaração de Variáveis no /etc/kya.conf

No final do arquivo insira:

ZIMBRAHOME=/opt/zimbra/

ZIMBRA_BKP=1

ZIMBRA_BKP_CICLE=7

ZIMBRA_BKP_KEEP_CICLE=52

ZIMBRA=1


Depois execute novamente o scritp: /usr/share/kyapanel/mail/zimbra/kp2z_users.sh

Pronto!

Para acessar zimbra, acesse:
http://zimbramail.meudomini.net

Para acessar console de administração do Zimbra :
https://zimbramail.meudominio.net:7071

Para acessar o console de administração do KyaPanel va em:
http://zimbramail.meudominio.net:800/kyapanel/


LINKS USADOS NO DESENVOLVIMENTO DO TUTORIAL:

Boa parte das informações do tutorial foram tiradas dos sites dos desenvolvedores, e adapatadas para o funcionamento em comunhão do Zimbra e do KyaPAnel

http://www.kyapanel.com/wiki/doku.php?id=kyapanel:howto_zimbra_pt_br

http://www.kyapanel.com/wiki/doku.php?id=kyapanel:kyapanel_pt_br

http://www.zimbra.com/

http://www.zimbra.com/docs/ne/latest/single_server_install/






11 comentários:

Jeronimo Zucco disse...

Legal a guia. Só esqueceu de no final reabilitar (ou customizar) o firewall, além do selinux.

Duda Grass disse...

Obrigado pelo comentário Jeronimo, mas parti do presuposto de que o servidor de email esteja dentro de uma DMZ, nesse caso tanto firewall quanto selinux nao se fazem necessário. Mas a observação é válida...
abraço!

Edson F. Cunha disse...

Ôla boa Tarde, estou a dias com um problema para rodar o rhl_populate.sh.

Checking configuration files for slapd: /etc/openldap/slapd.conf: line 85: warning: no by clause(s) specified in access line (ignored).
/etc/openldap/slapd.conf: line 91: warning: no by clause(s) specified in access line (ignored).
config file testing succeeded [ OK ]
Starting slapd: [ OK ]
Stopping slapd [ OK ]

Só que após estas mensagens ele para não cria a base ldap.

Edson F. Cunha disse...

Outro problema que estou tendo é encontrar :

[root@filesrvmail yum.repos.d]# yum install perl-RRDs maildrop clamav-server clamav-update perl-net-server-fork -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* rpmforge: apt.sw.be
* base: ftp.ussg.iu.edu
* updates: centos.corenetworks.net
* addons: centos.cogentcloud.com
* extras: centos.pop.com.br
Setting up Install Process
Parsing package install arguments
No package perl-RRDs available.
No package maildrop available.
No package clamav-server available.
No package clamav-update available.
No package perl-net-server-fork available.
Nothing to do

Para o centos 5.3

Duda Grass disse...

Olá Edson!
Bom vamos por partes...
No erro do populate ele manda tu revisar as linhas 85 e 91 do teu slapd.conf. Então é provável que tenha erros na tua configuração e por isso ele não termina a criação das bases do kya.

No problema das dependências, tb tive alguns problemas com o Clam e acabei instalando os rpm's dele em separado.
Com os pacotes do PERL não tive problemas na época, mas pode ser que os pacotes não estejam mais disponiveis ou mudaram de nome. Uma tentativa que pode fazer é tentar executar: # yum install perl*

E ver se ele baixa o restante do pacotes.

abraço.

Gucafi disse...

Tche, to com uma duvida, fiz todo o tutorial, mas depois o Kyapanel não reconhece mais o modulo de e-mail.

O melhor e maior portal da região! disse...

Olá gostei do seu artigo.

Quero implatar o zimbra na empresa que trabalho. Tenho um domínio empresa.com.br e pagamos a hospedagem do site da empresa que tbm tem email só que dá muito problema.

Como faço para que eu consiga enviar email usando meu dominio? e receba ?

Algum servidor dns tem que apontar para meu servidor?

Tenho dúvida como configurar um dns para ele responder pelo meu dominio visto que já tenho esse dominio funciona na hospedagem.
Obrigado

Unknown disse...
Este comentário foi removido pelo autor.
anonnymus disse...

Após iniciar o serviço munin-nod, s seguinte mensagem aparece:

/etc/init.d/munin-node start
Starting Munin Node: Can't locate Net/Server/Fork.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at /usr/sbin/munin-node line 130.
BEGIN failed--compilation aborted at /usr/sbin/munin-node line 130.

Anônimo disse...

Boa tarde, hora que começa a carregar o kyainstall, retorna o erro:
Erro no servidor
O site encontrou um erro ao recuperar http://192.168.1.155:800/kyainstall/install/index.php. Ele pode estar em manutenção ou configurado incorretamente.
Veja algumas sugestões:
Recarregue esta página da web mais tarde.

Você tem idéia do que possa ser?? onde fica os logs para eu tentar corrigir esse erro?? grato

Anônimo disse...

Boa tarde! Por favor, estou precisando da possibilidade de reutilizar a conta de um usuário para outro, porém guardando o conteúdo para possíveis auditorias. É possível?