Migración de Kerio a Zimbra

Migrar cuentas de Kerio Connect a Zimbra Collaboration con Imapsync.

En anteriores entradas vimos qué es Zimbra Collaboration, qué prerrequisitos hay que cumplir para su instalación, cómo instalar y configurar DNSMasq y finalmente cómo instalar Zimbra.

Ahora vamos a ver cómo migrar nuestras cuentas de un servidor Kerio Connect a Zimbra Collaboration, dado que éste fue mi caso. Para ello utilizaremos un software gratuito llamado ImapSync. Hay otros programas que pueden hacer lo mismo, algunos incluso basados en ImapSync, pero yo probé varios, tanto con interfaz gráfica como por linea de comandos, y ninguno terminaba de funcionar correctamente entre estos dos servidores. Quizás fuera yo, simplemente cometiendo un fallo, pero con ImapSync conseguí el resultado que necesitaba.

Algunas consideraciones

Autenticación Sencilla

En primer lugar, ImapSync requiere activar en Zimbra la Autenticación de Acceso Básica o Autenticación Sencilla (Plain Authentication). Ésta se encuentra en Configuración > Configuración General > Proxy > Configuración de Proxy para Mail («Configuration > General Configuration > Proxy > Proxy Congiguration for mail»).

PLAIN Authentication

Límites de Tamaño

Esto puede o puede no ser necesario dependiendo del tamaño de las cuentas de usuario, el tamaño de los correos y los archivos adjuntos. Si no estás seguro de cuánto pesan los correos de tus usuarios, o los adjuntos de éstos correos, recomiendo aumentar los límites por si acaso, y bajarlos de nuevo luego.

Verificamos los tamaños máximos configurados por defecto. Recomiendo copiar estas cifras a un documento de texto para poder restablecerlas luego.

zmprov getConfig zimbraFileUploadMaxSize
zimbraFileUploadMaxSize: 10485760
zmprov getConfig zimbraImapMaxRequestSize
zimbraImapMaxRequestSize: 10240
zmprov getConfig zimbraMailContentMaxSize
zimbraMailContentMaxSize: 10240000
zmprov getConfig zimbraMtaMaxMessageSize
zimbraMtaMaxMessageSize: 204857600

Configuramos nuevos límites de tamaño:

zmprov modifyConfig zimbraFileUploadMaxSize 150000000
zmprov modifyConfig zimbraImapMaxRequestSize 150000000
zmprov modifyConfig zimbraMailContentMaxSize 150000000
zmprov modifyConfig zimbraMtaMaxMessageSize 150000000

Revisamos que los cambios se hayan hecho correctamente:

zmprov getConfig zimbraFileUploadMaxSize
zmprov getConfig zimbraImapMaxRequestSize
zmprov getConfig zimbraMailContentMaxSize
zmprov getConfig zimbraMtaMaxMessageSize

Reiniciamos mailboxctl:

zmmailboxdctl restart

ImapSync

Con la información de la web oficial de ImapSync, la página de GitHub y la Wiki de Zimbra, hice varias pruebas con cuentas falsas hasta que conseguí migrar/sincronizar todas las carpetas y correos entre una cuenta de Kerio Connect y una cuenta de Zimbra Collaboration. El comando que utilicé fue el siguiente:

imapsync --nosyncacls --subscribe --syncinternaldates --nofoldersizes --skipsize --noauthmd5 --host1 11.11.11.11 --user1 user1@domain.com --password1 123456 --host2 22.22.22.22 --user2 user2@domain2.com --password2 123456 -authmech2 PLAIN --ssl2

Voy a explicar las opciones que he usado:

--nosyncacls
  No sincroniza las ACL (Listas de Control de Acceso). Habilitado por defecto.
--subscribe
  Suscribirse a las carpetas transferidas al Servidor2 a las que está suscrito en el Servidor1. Habilitado por defecto.
--syncinternaldates 
  Sincroniza/Mantiene las fechas originales de los correos. 
--nofoldersizes
  No calcular el tamaño de las carpetas antes de sincronizarlas. Por defecto las calculas, pero como queremos sincronizarlo todo, no importa el tamaño.
--skipsize
  Ignora tamaños. Habilitado por defecto.
--noauthmd5
  No usar MD5 para la autenticacón. Habilitado por defecto.
--authmech2 PLAIN 
  Mechanismo de autenticación en el Servidor2 (Zimbra)
--ssl2
  Usa connexión SSL con el Servidor2 (Zimbra) si es posible. Habilitado por defecto.

Controlar los logs

Algo muy importante que yo recomiendo hacer es monitorizar los Logs durante cada transferencia. De esta forma puedes ver si ocurre algún error y qué está haciendo en cada momento. Para ello, podemos utilizar el simple comando tail:

tail -f log/mailbox.log | grep -i warn

Calendarios y Contactos

ImapSync no puede transferir calendarios y contactos entre servidores y cuentas, sólo carpetas y correos. En mi caso simplemente exporté los calendarios y los contactos desde las cuentas de Kerio Connect, y las importé a las cuentas de Zimbra. Se puede hacer de otras formas, como por ejemplo a través de Microsoft Outlook, la aplicación de migración de Zimbra u otro software, pero en mi caso el número de cuentas no era demasiado grande y pude migrar esto a mano.

Y con esto termina este tutorial! Seguramente hay otras formas de migrar cuentas y correos entre Kerio Connect y Zimbra Collaboration, pero no encontré ninguno que me funcionara mejor que ImapSync y personalmente creo que es uno de los más seguros y sobretodo rápidos. Probadlo y contadme qué tal os ha ido o si conocéis alguna alternativa mejor!