Icono del sitio Blog personal de Guido Cutipa

Configurar el aprovisionamiento automático de cuentas Zentyal en Zimbra

El aprovisionamiento automático de cuentas es una forma de automatizar la creación de cuentas de usuario en Zimbra basadas en datos de un controlador de dominio en este caso Zentyal.

Las siguientes configuraciones fueron probadas en instalaciones de Zimbra en Centos 7 y 8 y Ubuntu 16.04 y 18.04

Primero se debe crear un archivo autoprov.txt, yo sugiero crearlo en un lugar donde se pueda acceder nuevamente al archivo, cuando se cambia de controlador de dominio (por una migración) es posible que se necesite ejecutar nuevamente este archivo.

nano autoprov.txt

La conexión entre Zentyal o Active Directory y Zimbra tiene tres modos diferentes disponibles:

Para este tutorial se usará el modo EAGER porque es el más estable y confiable, sin embargo, podrían presentarse 2 escenarios de configuración:

El nombre de dominio de Zentyal es igual al nombre de dominio de Zimbra

Si el nombre de dominio de Zentyal (guidocutipa.blog.bo) es igual al nombre de dominio de Zimbra (guidocutipa.blog.bo) usaremos la siguiente configuración para el archivo autoprov.txt:

md guidocutipa.blog.bo zimbraAutoProvAccountNameMap "samAccountName"
md guidocutipa.blog.bo +zimbraAutoProvAttrMap description=description
md guidocutipa.blog.bo +zimbraAutoProvAttrMap displayName=displayName
md guidocutipa.blog.bo +zimbraAutoProvAttrMap givenName=givenName
md guidocutipa.blog.bo +zimbraAutoProvAttrMap cn=cn
md guidocutipa.blog.bo +zimbraAutoProvAttrMap sn=sn
md guidocutipa.blog.bo zimbraAutoProvAuthMech LDAP
md guidocutipa.blog.bo zimbraAutoProvBatchSize 40
md guidocutipa.blog.bo zimbraAutoProvLdapAdminBindDn "CN=Guido Cutipa,CN=Users, DC=guidocutipa,DC=blog,DC=bo"
md guidocutipa.blog.bo zimbraAutoProvLdapAdminBindPassword P4ssw0rd
md guidocutipa.blog.bo zimbraAutoProvLdapBindDn "guido.cutipa@guidocutipa.blog.bo"
md guidocutipa.blog.bo zimbraAutoProvLdapSearchBase "DC=guidocutipa,DC=blog,DC=bo"
md guidocutipa.blog.bo zimbraAutoProvLdapSearchFilter "(cn=%u)"
md guidocutipa.blog.bo zimbraAutoProvLdapURL "ldap://192.168.1.253:389"
md guidocutipa.blog.bo zimbraAutoProvMode EAGER
md guidocutipa.blog.bo zimbraAutoProvNotificationBody "Tu cuenta ha sido creada automáticamente. Tu cuenta de correo electrónico es ${ACCOUNT_ADDRESS}."
md guidocutipa.blog.bo zimbraAutoProvNotificationFromAddress guido.cutipa@guidocutipa.blog.bo
md guidocutipa.blog.bo zimbraAutoProvNotificationSubject "Nueva cuenta creada"
ms correo.guidocutipa.blog.bo zimbraAutoProvPollingInterval "1m"
ms correo.guidocutipa.blog.bo +zimbraAutoProvScheduledDomains "guidocutipa.blog.bo"

zimbraAutoProvAttrMap ayudará a realizar el mapeo entre los atributos del controlador de dominio Zentyal y Zimbra

zimbraAutoProvLdapAdminBindDn, zimbraAutoProvLdapAdminBindPassword, zimbraAutoProvLdapBindDn corresponden a los datos de un usuario administrador del controlador de dominio, para este caso el usuario pertenece al grupo “Domain Admins”, si no se quiere cometer errores de configuración la mejor opción es obtener los datos mediante la herramienta ADSI que se instala con las herramientas de administración remota de servidor RSAT,

zimbraAutoProvLdapSearchBase corresponde a la ruta desde la cual se sincronizarán las cuentas, en caso de dejarlo en la raíz «DC=guidocutipa,DC=blog,DC=bo» se sincronizaran inclusive cuentas administrativas:

Para prevenir esto se podrían crear todos los usuarios del dominio deltro de una unidad organizativa por ejemplo «OU=sistemas,DC=guidocutipa,DC=blog,DC=bo».

zimbraAutoProvLdapSearchFilter corresponde al modo de autenticación, se tienen 2 opciones:

Es posible enviar un mensaje de bienvenida con la anterior configuración:

zimbraAutoProvNotificationBody corresponde al cuerpo del mensaje

zimbraAutoProvNotificationFromAddress es el correo desde el cual se enviará el mensaje

zimbraAutoProvNotificationSubject es el asunto del correo electrónico

Finalmente zimbraAutoProvPollingInterval es la cantidad de tiempo entre cada sincronización entre Zentyal y Zimbra, para el ejemplo se ejecutará cada minuto (1m).

El nombre de dominio de Zentyal es diferente al nombre de dominio de Zimbra

Si el nombre de dominio de Zentyal (guidocutipa.local) es diferente al nombre de dominio de Zimbra (guidocutipa.blog.bo) usaremos la siguiente configuración para el archivo autoprov.txt:

md guidocutipa.blog.bo zimbraAutoProvAccountNameMap "samAccountName"
md guidocutipa.blog.bo +zimbraAutoProvAttrMap description=description
md guidocutipa.blog.bo +zimbraAutoProvAttrMap displayName=displayName
md guidocutipa.blog.bo +zimbraAutoProvAttrMap givenName=givenName
md guidocutipa.blog.bo +zimbraAutoProvAttrMap cn=cn
md guidocutipa.blog.bo +zimbraAutoProvAttrMap sn=sn
md guidocutipa.blog.bo zimbraAutoProvAuthMech LDAP
md guidocutipa.blog.bo zimbraAutoProvBatchSize 40
md guidocutipa.blog.bo zimbraAutoProvLdapAdminBindDn "CN=Guido Cutipa,CN=Users, DC=guidocutipa,DC=local"
md guidocutipa.blog.bo zimbraAutoProvLdapAdminBindPassword P4ssw0rd
md guidocutipa.blog.bo zimbraAutoProvLdapBindDn "guido.cutipa@guidocutipa.local"
md guidocutipa.blog.bo zimbraAutoProvLdapSearchBase "DC=guidocutipa,DC=local"
md guidocutipa.blog.bo zimbraAutoProvLdapSearchFilter "(cn=%u)"
md guidocutipa.blog.bo zimbraAutoProvLdapURL "ldap://192.168.1.253:389"
md guidocutipa.blog.bo zimbraAutoProvMode EAGER
md guidocutipa.blog.bo zimbraAutoProvNotificationBody "Tu cuenta ha sido creada automáticamente. Tu cuenta de correo electrónico es ${ACCOUNT_ADDRESS}."
md guidocutipa.blog.bo zimbraAutoProvNotificationFromAddress guido.cutipa@guidocutipa.blog.bo
md guidocutipa.blog.bo zimbraAutoProvNotificationSubject "Nueva cuenta creada"
ms correo.guidocutipa.blog.bo zimbraAutoProvPollingInterval "1m"
ms correo.guidocutipa.blog.bo +zimbraAutoProvScheduledDomains "guidocutipa.blog.bo"

Estan con negrillas los cambios realizados en la configuración, sin embargo, el parámetro más importante es zimbraAutoProvLdapSearchFilter corresponde al modo de autenticación.

Por ejemplo si el usuario de Zentyal se llama usuario1@guidocutipa.local y el usuario de Zimbra debe llamarse usuario1@guidocutipa.blog.bo en el parámetro zimbraAutoProvLdapSearchFilter se debe utilizar %u para validar solo la parte del nombre de usuario sin @, es decir solo se validará la autenticación como usuario1.

Una vez creado el archivo con el contenido, lo copiamos a una ruta donde el usuario zimbra pueda acceder a su contenido:

cp autoprov.txt /tmp/autoprov.txt

No olvide modificar los datos de acuerdo a la configuración de su servidor.

Aplicar la configuración, ejecutar el archivo autoprov.txt

Primero cambiamos de usuario

su - zimbra

Después ejecutamos el comando

zmprov < /tmp/autoprov.txt

Si todo sale bien veremos el siguiente mensaje:

Ahora probamos creando un usuario en Zentyal y esperaremos un minuto a que Zimbra se sincronice y cree automáticamente el usuario.

Comprobar el aprovisionamiento automático de cuentas Zentyal en Zimbra

Primero podemos ver el archivo log de Zimbra, para facilitar su revisión aplicaremos un filtro:

cat /opt/zimbra/log/mailbox.log | grep "autoprov - auto creating"

Si la configuración es correcta se podrá ver un mensaje similar al siguiente:

Otra forma de comprobar es revisar la pantalla de administración del administrador de zimbra:

Si se ingresa a una cuenta de correo, se verá un mensaje de correo en la bandeja de entrada con el mensaje configurado en el archivo de configuración autoprov.txt:

En el caso de que no se requiera crear correos para las cuentas por defecto del sistema (Zentyal), se podría modificar el archivo de configuración.

En lugar de:

md guidocutipa.blog.bo zimbraAutoProvLdapAdminBindDn "CN=Guido Cutipa,CN=Users,DC= guidocutipa,DC=local"

Podríamos crear todos los usuarios dentro de una OU:

md guidocutipa.blog.bo zimbraAutoProvLdapAdminBindDn "OU=LAPAZ,CN=Guido Cutipa,CN=Users,DC= guidocutipa,DC=local"

Revisión de errores

Si algo sale mal se puede modificar temporalmente el log del sistema y ponerlo en modo debug:

nano /opt/zimbra/conf/log4j.properties

Al final del archivo adicionar:

log4j.logger.zimbra.autoprov=DEBUG

Grabar los cambios, crear una nueva cuenta en Zentyal y revisar lo que muestra el mailbox.log.

tail -f /opt/zimbra/log/mailbox.log

Todo la configuración aplicada anteriormente no solo se puede aplicar con una instalación de Zentyal, también es compatible con un Servidor Active Directory.

Referencias

Para este artículo se utilizó la guía oficial de Zimbra y se la adaptó a la configuración de Zentyal https://wiki.zimbra.com/wiki/How_to_configure_auto-provisioning_with_AD

Salir de la versión móvil