quinta-feira, 28 de maio de 2009

Zimbra e KyaPanel no Ubuntu 8.04 Server

        Beleza galera, este é meu primeiro post em blog, nunca tive muito interesse em desenvolver esta prática, mais postar em um blog descobri que é uma boa forma de se compartilhar e ao mesmo tempo documentar o trabalho e todas minhas dificuldades que tive durante todo o processo. Espero de alguma forma poder colaborar com outras pessoas que queiram implementar a idéia. Chega de balela e vamos ao que interessa.

         Utilizei a Distribuição Ubuntu 8.04.2 Server (www.ubuntu.com), pois esta é a última distro LTS, suite de email ZIMBRA, e o painel de gerenciamento KyaPanel, uma ótima integração de ferramentas para um ambiente de email totalmente opensource.

        Primeiramente esteja com o seu server atualizado, confira se em teu arquivo /etc/hosts o nome da máquina esteja com o nome de domínio incluído exemplo: mail.meudominio.com.br e que seu DNS esteja devidamente configurado para que está máquina seja o servidor de email (esta abordagem não faz parte do escopo deste artigo), baixe o pacote zimbra para ubuntu 8.04:

http://h.yimg.com/lo/downloads/5.0.16_GA/zcs-5.0.16_GA_2921.UBUNTU8.20090429045342.tgz

descompacte o arquivo: tar xvfs zcs-5.0.16_GA_2921.UBUNTU8.20090429045342.tgz próximo passo é instalar as dependências para instalação do zimbra:

        sudo apt-get install libpcre3-dev libgmp3c2 libstdc++5-3.3-dev libltdl3-dev

        Caso tenha alguma outra procure o nome da biblioteca que esta em falta e prossiga com a instalação.

        Entre na pasta aonde foi descompactado os arquivos do zimbra e rode o script sudo ./install.sh ao rodar vai aparecer algo parecido a:

Operations logged to /tmp/install.log.8829

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-convertd...NOT FOUND

zimbra-cluster...NOT FOUND

zimbra-core...NOT FOUND


PLEASE READ THIS AGREEMENT CAREFULLY BEFORE USING THE SOFTWARE.

ZIMBRA, INC. ("ZIMBRA") WILL ONLY LICENSE THIS SOFTWARE TO YOU IF YOU

FIRST ACCEPT THE TERMS OF THIS AGREEMENT. BY DOWNLOADING OR INSTALLING

THE SOFTWARE, OR USING THE PRODUCT, YOU ARE CONSENTING TO BE BOUND BY

THIS AGREEMENT. IF YOU DO NOT AGREE TO ALL OF THE TERMS OF THIS

AGREEMENT, THEN DO NOT DOWNLOAD, INSTALL OR USE THE PRODUCT.


License Terms for the Zimbra Collaboration Suite:

http://www.zimbra.com/license/zimbra_public_eula_2.1.html



Press Return to continue


        Pressione ENTER para aceitar, iremos instalar: zimbra-core , zimbra-ldap , zimbra-logger , zimbra-mta , zimbra-snmp , zimbra-store , zimbra-apache , zimbra-spell , por padrão todos estes pacotes estarão marcados como Yes para instalação, ficando de fora o zimbra-proxy que está marcado como No.

        Próximo prompt será: The system will be modified. Continue? [N] , coloque Y e de ENTER para prosseguir a instalação (este processo é um pouco demorado dependendo das configurações do seu server), neste próximo passa é relativo as configurações de DNS do seu servidor, se tudo estiver configurado de forma correta em seu DNS vocẽ não encontrará problemas nesta parte, caso apareça a mensagem: DNS ERROR resolving MX for mail.meudominio.com.br

It is suggested that the domain name have an MX record configured in DNS

Change domain name? [Yes]

        Pressione ENTER e digite o seu domínio para que o instalador possa verificar as configurações que estão no seu DNS, então digite meudominio.com.br, caso acuse algum erro você pode continuar os procedimentos de instalação e voltando depois para configurar o DNS de forma adequada. Digitando No e ENTER.

        Este passo agora é muito importante pois iremos definir a senha de admin, que o administrador do sistema zimbra, selecione a opção 3 em seguida 4, digite a nova senha de admin (cuidado pois os caracteres ficam visíveis), pressione r para voltar para o menu anterior, pressione a para aplicar as configurações.

Save configuration data to a file? [Yes] dê ENTER

Save config in file: [/opt/zimbra/config.12764] ENTER

The system will be modified - continue? [No] Yes e ENTER

Notify Zimbra of your installation? [Yes] No e ENTER

Moving /tmp/zmsetup.05252009-131654.log to /opt/zimbra/log


Configuration complete - press return to exit


        Pressione ENTER

        Agora você já está com a suite Zimbra instalada, configurada e rodando, agora seguiremos com a instalação do KyaPanel baixe o arquivo em :

http://www.kyapanel.com/images/stories/projetos/dl.php?f=kyapanel_2.2~1_all.deb

antes de prosseguir com a instalação do KyaPanel sugiro que pare o serviço do Zimbra para que não conflitem com as dependências que serão necessárias para instalação.

/etc/init.d/zimbra stop (aguarde pois são vários serviços que estão incluídos portanto demora um pouco).       

        Agora instale o pacote do KyaPanel com o comando:

        sudo dpkg -i kyapanel_2.2~1_all.deb

certo ele vai reclamar que tem várias dependências, não tem nenhum problema, para isto temos o comando:

        sudo apt-get -f install

isto fará com que seja instalada todas as dependências e em seguida a instalação do KyaPanel.

        Pronto KyaPanel instalado, agora vamos partir para a configuração openldap. Vocẽ pode perguntar openldap???? Sim, o KyaPanel instala o openldap como dependência, mas iremos utilizá-lo para a configuração inicial, mais no final iremos remover do serviço para não iniciar, pois o Zimbra já possui o openldap integrado.

        Quando o debconf lhe fizer perguntas, responda todas default's apertando só ENTER, pois está configurações não nos interessam no momento.

        Copie os arquivos de /usr/share/kyapanel/ldap/schema/*.schema para a pasta /etc/ldap/schema/

        sudo cp /usr/share/kyapanel/ldap/schema/* /etc/ldap/schema/

        Pare o openldap: /etc/init.d/slapd stop

        Certo vamos agora editar o arquivo /etc/ldap/slapd.conf , utilize o editor de sua preferência no meu caso vou usar o Vim.              

        sudo vim /etc/ldap/slapd.conf

        Descomente a linha #allow bind_v2 , na parte do esquemas inclua os esquemas necessários para o KyaPanel. Insira abaixo do último include:

include /etc/ldap/schema/misc.schema

include /etc/ldap/schema/qmailuser.schema

include /etc/ldap/schema/phpgwaccount.schema

include /etc/ldap/schema/phpgwcontact.schema

include /etc/ldap/schema/samba.schema


        Observer logo mais abaixo no arquivo que tem a opção:

suffix “dc=medominio,dc=com,dc=br”

logo mais abaixo tem a opção rootdn que está comentanda, descomente e insira na linha logo abaixo:

rootpw 123

salve e feche o arquivo.

        Agora vamos para configuração do KyaPanel via interface Web, digite no navegador http://ip_do_servidor/kyainstall/

        Na aba general defina a senha para o usuário kya, que é o administrador do painel, clique na aba ldap e insira o ip do servidor, no nosso caso 127.0.0.1, e a senha logo mais abaixo que é: 123, clique em Status Test, em seguida clique em Install, logo após irá aparecer a tela de Login, coloque o usuário: kya e a senha que vocẽ definiu anteriormente. Na próxima tela clique em Global Configurations, Enable/Disable Module, marque na linha Mail Module a opção local e pressione o botão change que fica logo acima.

        Próximo passo agora é fazer a integração do KyaPanel com o Zimbra (aqui foi aonde mais sofri).

        Agora vamos para parar e remover os serviços instalados com o KyaPanel que conflitam com o Zimbra, primeiro pare os serviços:

cd /etc/init.d/; ./postfix stop; ./courier-authdaemon stop; ./courier-imap stop; ./courier-ldap stop; ./courier-pop stop; ./slapd stop;

        Agora removeremos da inicialização os mesmos:

cd /etc/init.d/

update-rc.d -f postfix remove

update-rc.d -f courier-authdaemon remove

update-rc.d -f courier-imap remove

update-rc.d -f courier-ldap remove

update-rc.d -f courier-pop remove

update-rc.d -f slapd remove


        Vamos agora fazer a integração:

cd /usr/share/kyapanel/mail/zimbra/

./kp2z.sh

        Pressione ENTER quando solicitado e aguarde.

        Precisamos mudar a porta do apache2 pois conflita com o Zimbra, edite:

sudo vim /etc/apache2/ports.conf e coloque em Listen por exemplo porta 8080. Reinicie o apache:

sudo /etc/init.d/apache2 restart

        Vamos iniciar o zimbra agora:

sudo /etc/init.d/zimbra start (aguarde pois demora mesmo)

        Sincronizar domínios e usuários do KyaPanel com Zimbra e vice versa com o comando:

./kp2z_users.sh -a

dê ENTER para confirmar o caminho do Zimbra e aguarde.

        Configuração do Postfix com KyaPanel:

entre em /opt/zimbra/postfix/conf/

mv main.cf main.cf.old

        Crie um novo arquivo main.cf com o conteúdo abaixo (lembrando de substituir meudominio.com.br, pelo seu domínio, e a senha do Ldap pela sua, que você vai encontrar no Kyapanel dentro de Global Configurations, Ldap):

# KyaPanel main.cf

smtpd_banner = $myhostname ESMTP $mail_name

biff = no

# appending .domain is the MUA's job.

append_dot_mydomain = no

readme_directory = no

# TLS parameters

smtpd_tls_cert_file = /opt/zimbra/conf/smtpd.crt

smtpd_tls_key_file = /opt/zimbra/conf/smtpd.key

smtpd_tls_auth_only = yes

smtpd_tls_loglevel = 1

smtpd_use_tls = yes

smtpd_sasl_auth_enable = yes

broken_sasl_auth_clients = yes

myhostname = mail

alias_maps = hash:/etc/aliases

alias_database = hash:/etc/aliases

myorigin = /etc/mailname

mydestination = mail, localhost, ldap:vdomains

relayhost =

mynetworks = 127.0.0.0/8

mailbox_size_limit = 0

recipient_delimiter = +

inet_interfaces = all

home_mailbox = Maildir/

mailbox_transport = kyapanel:

virtual_transport = kyapanel:

local_recipient_maps = ldap:accounts,ldap:vamldap

mailbox_command_maps = ldap:accounts

alias_maps = ldap:vamldap

virtual_alias_maps = ldap:vamldap

virtual_mailbox_base = /

virtual_mailbox_maps = ldap:accounts

virtual_mailbox_limit = 0

virtual_uid_maps = static:1003

virtual_gid_maps = static:1004

canonical_maps = ldap:canodoms

sender_bcc_maps = ldap:senderbcc

recipient_bcc_maps = ldap:recipientbcc

always_bcc=

#--------------------------------------------------------------

accounts_server_host = 127.0.1.1

accounts_bind_dn = cn=config

accounts_bind_pw = O_laV2U2W

accounts_search_base = ou=mail,ou=kya_panel,dc=meudominio,dc=com,dc=br

accounts_query_filter = (&(uid=%s)(mail=%s))

accounts_result_attribute = mailMessageStore

accounts_bind = yes

#--------------------------------------------------------------

vdomains_server_host = 127.0.1.1

vdomains_bind_dn = cn=config

vdomains_bind_pw = O_laV2U2W

vdomains_search_base = ou=mail,ou=kya_panel,dc=meudominio,dc=com,dc=br

vdomains_query_filter = (ou=%s)

vdomains_result_attribute = ou

vdomains_bind = yes

#--------------------------------------------------------------

vamldap_server_host = 127.0.1.1

vamldap_bind_dn = cn=config

vamldap_bind_pw = O_laV2U2W

vamldap_search_base = ou=aliases,ou=kya_panel,dc=meudominio,dc=com,dc=br

vamldap_query_filter = (&(uid=%s)(mail=%s))

vamldap_result_attribute = mailForwardingAddress

vamldap_bind = yes

#--------------------------------------------------------------

canodoms_server_host = 127.0.1.1

canodoms_bind_dn = cn=config

canodoms_bind_pw = O_laV2U2W

canodoms_search_base = ou=mail,ou=kya_panel,dc=meudominio,dc=com,dc=br

canodoms_query_filter = (ou=%d)

canodoms_result_attribute = CanonicalDomain

canodoms_bind = yes

#--------------------------------------------------------------

senderbcc_server_host = 127.0.1.1

senderbcc_bind_dn = cn=config

senderbcc_bind_pw = O_laV2U2W

senderbcc_search_base = ou=mail,ou=kya_panel,dc=meudominio,dc=com,dc=br

senderbcc_query_filter = (uid=%s)

senderbcc_result_attribute = SenderBccUser

senderbcc_bind = yes

#--------------------------------------------------------------

recipientbcc_server_host = 127.0.1.1

recipientbcc_bind_dn = cn=config

recipientbcc_bind_pw = O_laV2U2W

recipientbcc_search_base = ou=mail,ou=kya_panel,dc=meudominio,dc=com,dc=br

recipientbcc_query_filter = (uid=%s)

recipientbcc_result_attribute = RecipientBccUser

recipientbcc_bind = yes

#--------------------------------------------------------------

header_checks = regexp:/opt/zimbra/postfix/conf/header_checks

smtpd_client_restrictions =

permit_mynetworks,

permit_sasl_authenticated,

check_client_access hash:/opt/zimbra/postfix/conf/whitelist_ip,

check_sender_access hash:/opt/zimbra/postfix/conf/whitelist_dom,

check_recipient_access hash:/opt/zimbra/postfix/conf/reverse_out,

reject_unknown_client_hostname,

reject_non_fqdn_hostname,

reject_rbl_client bl.spamcop.net,

reject_rbl_client sbl.spamhaus.org,

reject_rbl_client pbl.spamhaus.org,

reject_rbl_client list.dsbl.org,

reject_rbl_client dnsbl.njabl.org

smtpd_sender_restrictions =

reject_non_fqdn_sender,

reject_unknown_sender_domain,

smtpd_recipient_restrictions =

permit_mynetworks,

permit_sasl_authenticated,

reject_non_fqdn_recipient,

reject_unknown_recipient_domain,

reject_unauth_destination

smtpd_data_restrictions =

permit_mynetworks,

permit_sasl_authenticated,

reject_unauth_destination,

reject_unauth_pipelining,

reject_multi_recipient_bounce


        Agora vamos criar os arquivos e setar como arquivos do postfix dentro de /opt/zimbra/postfix/conf os arquivos vazios, whitelist_dom, whitelist_ip e reverse_out:

touch whitelist_dom whitelist_ip reverse_out

/opt/zimbra/postfix/sbin/postmap whitelist_dom whitelist_ip reverse_out

        Edite o arquivo header_check e insira este conteúdo no final do arquivo:

/^Subject:/ WARN

/^From:/ WARN

Edite agora o arquivo master.cf e insira este conteúdo no final do arquivo:

kyapanel unix - n n - - pipe

flags=Rq user=courier argv=/usr/share/kyapanel/mail/bin/kya-filter.sh -f ${sender} -- ${recipient}

        Insira também na linha 10 este conteúdo:

        -o content_filter=kyapanel:kyapanel

mais tarde iremos remover esta linha, não sei bem o motivo mais o postfix dá erro neste local, mais iremos deixar por enquanto por motivos de configurações do KyaPanel.

        Para deixar o KyaPanel redondo com suas configurações iremos configurar o courier, o zimbra não se utiliza deste serviço, mais pra efeito de configurações fiz conforme o painel pede, vamos la:

Edite o arquivo: /etc/courier/authldaprc

vim /etc/courier/authldaprc

e vá ate o gerenciador do painel http://ip_do_servidor:8080/kyapanel/ , E-mail Management, General Configurations e entre em Courier Imap, complete as configurações dos arquivos authldaprc e authdaemonrc, conforme descrito em vermelho. (Da mesma forma você pode conferir se todas as informações do Postfix estão corretas também.)

        Pronto agora é só ir adicionando usuários ao domínio. O KyaPanel tem várias opções de configurações para você como quota de domínio, quantidades de emails, etc.. agora é só ir destrinchando e ser feliz.

        Recomendo reiniciar o servidor antes de começar a utilizar, para ver se ficou tudo certo.

        Tem também o gerenciador do zimbra que você pode definir algumas opções, vale a pena dar uma olhada, pra isto digite em seu navegador: https://ip_do_servidor:7071/ usuário admin e a senha que você definiu no momento da instalação do Zimbra.

        Espero ter ajudado alguém nesta árdua batalha de configuração deste servidor de email.




5 comentários:

  1. Boa tarde, primeiramente gostaria de parabenizar pelo tutorial, me encorajou a fazer testes com o Zimbra, que já venho namorando a algum tempo.
    Gostaria de saber qual configuração de máquina foi utilizada para esta "empreitada" e qual o recomendável para suportar 120 usuários.

    Grato.

    Marcos Rogério

    ResponderExcluir
  2. Caro Marcos, primeiramente desculpe-me pela demora, este tutorial eu fiz em cima de uma maquina virtual, mais pra esta finalidade uma maquina com um processador P4 com 1Gb de Ram você consegue atender esta sua demanda!!!

    ResponderExcluir
    Respostas
    1. Amigo, o Zimbra é um aplicação VMware, execelente porém se seus usuários utilizarem serviços IMAP / Webmail você vai precisar de um pouco mais de memória. 3G no mínimo e também dê preferência para um processador com duplo núcleo. No mais o sistema é muito show e com esta implementação do kyapanel para suprir essa deficiência da versão open-source do Zimbra você terá uma aplicação extremamente poderosa e até mesmo comercial.

      Excluir
  3. Bom dia Carlos, parabéns pelo tutorial.

    Seguindo os passos, quando fui parar o zimbra não aceitou a senha que escolhi e nem a senha que estava entre os colchetes.

    Segui a instalação do KyaPanel mesmo assim.

    Ao acessar a configuração via Web, não deu certo.
    HTTP ERROR: 404

    The page you were trying to access does not exist.

    Como devo proceder?

    Um abraço!

    ResponderExcluir
  4. Muy bueno, estoy por realizarlo para migrar desde jegue, mi duda es si en mi caso conviene instalar kya primero, migrar desde jegue y luego zimbra.

    Saludos

    ResponderExcluir