De la mano de Oscar Mas nos llega este tutorial muy valioso sobre cómo convertir un SingleServer en un MultiServer (MTA y Mailbox)
Lo que voy a explicar hoy, es a pasar un solo servidor de zimbra (singleserver) a dos servidores (multiserver); un Mail Storage y un MTA. Hemos de tener en cuenta que durante toda la instalación se usará la misma versión de Zimbra, cosa que es obligatoria para este tipo de despliegue.
Si leeis por internet documentación al respecto, veréis que siempre dicen que los servicios de Zimbra no dejan de funcionar durante todo el procedimiento, a esta característica se le llama no downtime. La verdad es que la parte de Zimbra, es totalmente correcta la afirmación, pero nadie cuenta que una vez añadido nuestro servidor de MTA, hemos de realizar diferentes pruebas y hacer cambios en nuestro sistema de Firewall, eso sin contar los fallos humanos que podemos realizar durante todo el procedimiento. Con esto lo que vengo a indicar, es que existe un tiempo indeterminado, en que los servicios de Zimbra dejarán de funcionar.
Empezaremos con un servidor de Zimbra, funcionando correctamente, con la IP 192.168.100.20 (zimbra.ilba.cat):
[root@zimbra ~]# hostname -f zimbra.ilba.cat [root@zimbra ~]# su - zimbra [zimbra@zimbra ~]$ zmcontrol status Host zimbra.ilba.cat antispam Running antivirus Running convertd Running ldap Running logger Running mailbox Running mta Running opendkim Running snmp Running spell Running stats Running zmconfigd Running
Los servicios que nos encontraremos instalados en nuestro servidor (singleserver), serán los siguientes:
[zimbra@zimbra ~]$ zmprov gs `zmhostname` | grep zimbraServiceInstalled zimbraServiceInstalled: antivirus zimbraServiceInstalled: antispam zimbraServiceInstalled: opendkim zimbraServiceInstalled: logger zimbraServiceInstalled: mailbox zimbraServiceInstalled: mta zimbraServiceInstalled: convertd zimbraServiceInstalled: stats zimbraServiceInstalled: snmp zimbraServiceInstalled: ldap zimbraServiceInstalled: spell
Es importante, que antes de empezar, sepamos el password que le hemos asignado al usuario root del LDAP, ya que posteriormente lo necesitaremos para desplegar tanto el MTA como el segundo storage:
[zimbra@zimbra ~]$ zmlocalconfig -s ldap_root_password ldap_root_password = LGXRXQgzx
Una manera de no equivocarnos al desplegar servidores Zimbra, es dejar siempre una copia del paquete que hemos instalado en nuestro servidor, de esta manera nos aseguramos que siempre usaremos la misma versión para los diferentes servidores que vayamos a instalar. En mi caso, el servidor que hará de MTA lo he llamado zcsmta.ilba.cat, y tiene la IP 192.168.100.21.
NOTA: en CentOS, para realizar un SCP del paquete de Zimbra entre servidores, necesitaremos instalar en el servidor de destino el paquete:
[root@zcsmta ~]# yum -y install openssh-clients
Ahora ya podemos copiar el paquete de Zimbra del servidor de origen (zimbra.ilba.cat) al de destino (zcsmta.ilba.cat)
[root@zimbra ~]# cd /usr/local/src/ [root@zimbra src]# scp zcs-NETWORK-8.0.6_GA_5922.RHEL6_64.20131203103753.tgz [email protected]:/usr/local/src/
También es muy importante, añadir el puntero DNS en nuestro servidor bind, ya que toda la implementación estará basada en nombre FQDN:
[root@zimbra src]# vim /etc/named/ilba.cat.zone $TTL 86400 @ IN SOA ilba.cat. root.ilba.cat. ( 103 ; serial 1H ; refresh 1M ; retry 1W ; expiry 1D ) ; minimum @ IN NS zimbra.ilba.cat. @ IN A 192.168.100.20 @ IN MX 10 zimbra.ilba.cat. zimbra IN A 192.168.100.20 zcsmta IN A 192.168.100.21
Reiniciamos los servicios de bind y verificamos la conectividad:
[root@zimbra src]# service named restart Stopping named: . [ OK ] Starting named: [ OK ] [root@zimbra src]# ping zcsmta.ilba.cat -c 1 PING zcsmta.ilba.cat (192.168.100.21) 56(84) bytes of data. 64 bytes from 192.168.100.21: icmp_seq=1 ttl=64 time=1.30 ms --- zcsmta.ilba.cat ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 5641ms rtt min/avg/max/mdev = 1.309/1.309/1.309/0.000 ms
También es importante, que verifiquemos que el fichero de hosts está correctamente configurado en el servidor de destino, en el cual instalaremos los servicios de MTA:
[root@zcsmta ~]# cat /etc/hosts 127.0.0.1 localhost.localdomain localhost 192.168.100.21 zcsmta.ilba.cat zcsmta
También eliminaremos del inicio el postfix, ya que sino nos dará el error “Port conflict detected: 25 (zimbra-mta)”:
[root@zcsmta ~]# chkconfig --level 2345 postfix off [root@zcsmta ~]# /etc/init.d/postfix stop
Después de los pasos previos, ya podemos empezar a instalar nuestro servidor de MTA:
[root@zcsmta ~]# cd /usr/local/src/ [root@zcsmta src]# tar xzvf zcs-NETWORK-8.0.6_GA_5922.RHEL6_64.20131203103753.tgz [root@zcsmta src]# yum -y install perl nc sysstat [root@zcsmta src]# cd zcs-NETWORK-8.0.6_GA_5922.RHEL6_64.20131203103753 [root@zcsmta zcs-NETWORK-8.0.6_GA_5922.RHEL6_64.20131203103753]# ./install.sh
Los servicios que instalaremos serán los siguientes:
Install zimbra-ldap [Y] N Install zimbra-logger [Y] N Install zimbra-mta [Y] Install zimbra-snmp [Y] Y Install zimbra-store [Y] N Install zimbra-apache [Y] Install zimbra-spell [Y] Install zimbra-convertd [N] Install zimbra-memcached [N] Y Install zimbra-proxy [N] Y
En el “main menu”, lo dejaremos de la siguiente manera:
1) Common Configuration: +Hostname: ilba.cat ******* +Ldap master host: UNSET zimbra.ilba.cat +Ldap port: 389 ******* +Ldap Admin password: UNSET LGXRXQgzx +LDAP Base DN: cn=zimbra +Secure interprocess communications: yes +TimeZone: Africa/Algiers +IP Mode: ipv4 +Default SSL digest: sha1 2) zimbra-mta: Enabled ******* +MTA Auth host: UNSET zimbra.ilba.cat +Enable Spamassassin: yes +Enable Clam AV: yes +Enable OpenDKIM: yes +Notification address for AV alerts: [email protected] ******* +Bind password for postfix ldap user: UNSET LGXRXQgzx ******* +Bind password for amavis ldap user: UNSET LGXRXQgzx 3) zimbra-snmp: Enabled 4) zimbra-spell: Enabled 5) zimbra-proxy: Enabled 6) Enable default backup schedule: yes r) Start servers after configuration yes s) Save config to file x) Expand menu q) Quit
Una vez acabada la instalación, necesitaremos cambiar los puertos de IMAP y POP3, para que tengan una correcta relación con nuestro MTA:
[root@zcsmta ~]# zmprov -l ms zimbra.ilba.cat zimbraImapBindPort 7143 zimbraImapSSLBindPort 7993 zimbraImapProxyBindPort 143 zimbraImapSSLProxyBindPort 993
Habilitamos el Reverse Proxy en nuestro MTA:
[root@zcsmta ~]# zmprov ms zcsmta.ilba.cat zimbraReverseProxyMailMode both
Y por último indicamos que estamos trabajando con un servidor proxy tanto en nuestro storage como en nuestro MTA
[root@zimbra ~]# /opt/zimbra/libexec/zmproxyconfig -e -w -H zimbra.ilba.cat [root@zimbra ~]# zmcontrol stop && sleep 30 && zmcontrol start [root@zcsmta ~]# /opt/zimbra/libexec/zmproxyconfig -e -w -H zcsmta.ilba.cat [root@zcsmta ~]# zmcontrol stop && sleep 30 && zmcontrol start
Ahora ya tenemos nuestro MTA totalmente funcionando. Queda por configurar varias cosas;
- Las dichosas cruces rojas que nos salen al acceder via web en la administración de Zimbra
- Que los logs del servidor de MTA, vayan al servidor de Storage. De esta manera tendrmos los logs centralizados
- Copiar las claves SSH en el servidor MTA
Estos procedimientos están totalmente explicados en nuestro post anterior: http://www.jorgedelacruz.es/tag/zimbra-server-status/
Si quisieramos añadir un Storage más a nuestra implantación, os puedo asegurar que el downtime si que es realmente de 0 segundos, para ello también lo teneis explicado en el post: http://www.jorgedelacruz.es/2013/11/13/zimbra-solucionando-problemas-con-server-status-y-anadiendo-segundo-storage/. Por experiencia, el tiempo de montaje de un segundo storage a una plataforma como la que tenemos aquí, es de unos 30 min., eso sí con el sistema operativo ya instalado.
Un saludo y espero que este post os sirva de referencia.

HOla amigo tengo un problema con mi zimbra, cuando hago zmcontrol status todos corre excepto el mailbox que me sale stopped, revice el /var/log/zimbra.log :
file /opt/zimbra/log/zmmailboxd_manager.pid does not exist ….estoy trabajando en centos 6.5.
Si me ayudas estaria muy agradecido!!
Lanza estos comandos:
su – zimbra
zmlocalconfig | grep mailboxd_java_heap_memory_percent
Reinicia servicios varias veces, también.
He buscado en el google y he visto esto:
http://www.zimbra.com/forums/administrators/27814-solved-mailboxmanager-does-not-start.html
Pruebalo y nos comentas como ha ido.
Gracias amigos, alli me dice q he instalado juntos con el postfix,pero yo he parado todo los servicios al momento de instalar pero me sale ese error, lo que voy hacer es instalar todo de nuevo pero primero quitando todo lo q es posfix para q no me genere ese error de cruse..gracias por su ayuda!!voy a ver como me va en este segundo intento.
Mucha suerte en este segundo intento Robin, dejanos logs la próxima vez. Un saludo
HOLA, TENGO UN GRAVE INCONVENIENTE CON MI SERVIDOR ZIMBRA, AL INICIAR LOS SERVICIOS SOLO SE MUESTRA LO SIGUIENTE:
[zimbra@mail root]$ zmcontrol start
Host mail.hpvc.gob.ec
Starting zmconfigd…Done.
Starting stats…Done.
LOS DEMÁS SERVICIOS NO LEVANTAN.
EL SERVIDOR ESTABA FUNCIONANDO CORRECTAMENTE Y DE PRONTO OCURRIÓ QUE SE ME NEGABA EL ACCESO AL CORREO Y A LA CONSOLA ADMINISTRATIVA, POR LO QUE DESDE EL SERVER DI LA ORDEN DE ARRANCAR SERVICIOS, PERO ESTOS NO SE MUESTRAN. QUE PUEDO HACER??
HOLA, TENGO UN GRAVE INCONVENIENTE CON MI SERVIDOR ZIMBRA, AL INICIAR LOS SERVICIOS SOLO SE MUESTRA LO SIGUIENTE:
[zimbra@mail root]$ zmcontrol start
Host mail.hpvc.gob.ec
Starting zmconfigd…Done.
Starting stats…Done.
LOS DEMÁS SERVICIOS NO LEVANTAN.
EL SERVIDOR ESTABA FUNCIONANDO CORRECTAMENTE Y DE PRONTO OCURRIÓ QUE SE ME NEGABA EL ACCESO AL CORREO Y A LA CONSOLA ADMINISTRATIVA, POR LO QUE DESDE EL SERVER DI LA ORDEN DE ARRANCAR SERVICIOS, PERO ESTOS NO SE MUESTRAN. QUE PUEDO HACER??
Buenas tardes Vivi,
Prueba a hacer un reinicio completo. Si no funciona podría hacer una conexión remota para ver que sucede.
Un saludo
Que te muestran los logs ¿?
Felicitaciones por tu Blog, es un referente en la web para todos los que usamos Zimbra! De pronto me puedes dar luces con algo, tengo un zimbra bajo un firewall, este firewall hace un dnat al puerto 25 de un MailGateway que estoy implementando con postfix, el resto de puertos son nateados por el fw hacia el zimbra multiserver. sin embaro al pasar por el puerto 25 (mi gateway) tengo el mensaje Relay access denied, ya he puesto mis subredes en mynetwork tanto en el postfix como en el zimbra, sin embargo no logra hacer el transport hacia su destino el gw.
Contraseña bloqueada. ESTE MENSAJE ME SALE CADA VEZ QUE LOS USUARIOS QUIEREN CAMBIAR SU CLAVE POR WEBCLIENT. QUE PUEDO HACER
Hola Jorge,
por lo que he visto has configurado un Reverse Proxy. Sin embargo, ¿es posible configurar un Reverse Proxy y en el Mailbox (donde se encuentra el webmail) tener configurado el redireccionamiento a HTTPS? Esta configuración me está dando problemas de bucles de redireccionamiento.
Un saludo,
Jorge
Jorge buenas noches y gracias por tu gentil ayuda.
Adicional a este tema, quisiéramos preguntar si es posible mover buzones de un mbox a otro en la versión OpenSource?
Me estaba guiando por este documento: https://wiki.zimbra.com/wiki/Zmmboxmove
Muchas gracias de antemano por la respuesta.
Saludos
Buenas tardes maestros!!! Necesito orientación con un escenario en el que el MX es Google (GApps) y explico.
Tengo varios dominios con el servicio google (dominio1, dominio2, dominio3, dominio4) estos 4 dominios usan como MX Gmail para las cuentas corporativas, con el fin de usar aparte de correo, otros servicios como Handouts, compartir pantalla, conferencia, etc., y he instalado zimbra para enviar correos de estos 4 dominios pero no correos de usuarios, sino correos automatizados de las aplicaciones… como RRHH, Marketing, etc. Básicamente está como relay autenticado, y he colocado los dominios porque necesito enviar los correos firmados por DKIM.
Todo funciona perfecto, firma, envía correos sin problema a cuentas que no pertenecen a los dominios 1,2,3,4…. pero cuando envío un correo con [email protected] para [email protected], [email protected], [email protected] y [email protected] estos no llegan, porque el zimbra al tener esos dominios registrados propiamente, No hace la consulta MX a dominio1, dominio2, dominio3 y dominio4 que tienen como MX a aspmx.1.google.com y los otros MTA de gmail, por lo tanto, los correos no le llegan a los usuarios. No se cómo decirle a zimbra que independientemente de que tenga el dominio interno, haga la consulta MX para que lo envía al servicio de Google.
En resumen, necesito el relay autenticado y con DKIM, que me sirva (y ya lo hace) para dominios fuera de zimbra, y dominios registrados en Zimbra que tienen como MX a gmail.
No puedo usar Transport, porque Gmail limita a 10.000 correos mensual en su relay, y solo uno de los servicios envía 16.000 correos al mes, que son recibos de nómina de los empleados de la corporación (4 dominios).
Podrían orientarme para resolver este inconveniente? ya que he “apagado” la consulta DNS, pero no veo que funcione…
Saludos
Ya resolví mi problema, hice un split domain con algunas modificaciones, porque google no entregaba los correos a los dominios externos a sus dominios registrados.
Gracias igualmente… será motivo para hacer un Post en mi Blog
Quisiera saber si con la version FOSS edition puedo lograr esto saludos.
Saludos Adriel,
Si, esto es para ambas versiones.
Un saludo
Hola Jorge muy bueno tu tuto, te queria consultar lo siguiente, tengo un zimbra opensource en un servidor local que hace hostrelay contra un mta que esta en una vm en nuestro proveedor de hosting, el también tiene el servidor dns de mis dominios, El zimbra local se autentifica contra active directory que esta en la misma red local. La pregunta seria si podria reemplazar el postfix que esta en nuestro servidor remoto el del proveedor de hosting por otro servidor zimbra como seria el tema de ldap active directory y la autentificación? la idea seria que mx1 sea zimbra local y mx2 sea el remoto. y que ambos tengan sincronizados los mails y los usuarios.
Bueno saludos
Nahuel
http://www.baglietto.ar