Una de las funcionalidades más demandadas en entornos colaborativos es la sincronización completa de correos, calendarios y contactos en dispositivos móviles y clientes como Outlook. Por eso, hoy te enseñaremos cómo habilitar ActiveSync en Zextras Carbonio CE, utilizando la herramienta open source Z-Push.
Con esta integración, podrás brindar acceso móvil a los buzones de tus usuarios como si estuvieran conectados a un servidor Exchange, sin depender de soluciones cerradas ni pagar licencias adicionales.
Este tutorial está diseñado para ayudarte paso a paso a implementar ActiveSync en Zextras Carbonio CE y Ubuntu 24.04, aprovechando todo el potencial de tu servidor de correo y ofreciendo una experiencia profesional a tus usuarios, incluso desde el móvil.
IMPORTANTE: La instalación de Z-Push en este caso se hará en el propio servidor que contiene Zextras Carbonio CE, en el caso de usar Carbonio CE en modo multi-servidor, la instalación la realiza en el nodo Proxy. Usaremos Apache2 para brindar ActiveSync, ten esto en cuenta, pero no te preocupes, usaremos otros puertos y modificaremos el proxy inverso de Carbonio CE para apuntar a Apache solo en la url necesaria.
Es imprescindible que tengas un certificado válido instalado en tu servidor Carbonio al menos para el protocolo https. Manos a la obra!
1. Actualizando el sistema:
# apt update
# apt upgrade
2. Instalando Apache2, PHP y módulos necesarios:
# apt -y install apache2 php8.3 php8.3-cli php8.3-soap php8.3-mbstring php8.3-imap php8.3-curl libawl-php php8.3-curl php8.3-xml php8.3-ldap php8.3-intl libapache2-mod-php8.3
3. Instalando Z-Push:
# apt install git
Directorio de Z-Push y Logs
# mkdir /var/lib/z-push /var/log/z-push
# chmod 755 /var/lib/z-push /var/log/z-push
Descarga y copia de Z-Push
# git clone https://github.com/Z-Hub/Z-Push.git
# cp -r Z-Push/src/* /var/lib/z-push
Descarga del plugin backend para Carbonio CE
# wget -O zpushzimbra.tar.gz https://sourceforge.net/projects/zimbrabackend/files/latest/download
Copiar el plugin al directorio
# mkdir -p /var/lib/z-push/backend/zimbra
# tar xf zpushzimbra.tar.gz --strip-components=1 -C /var/lib/z-push/backend/zimbra
4. Es momento de configurar Z-Push, editamos el archivo config.php y editar las variables siguientes:
# nano /var/lib/z-push/config.php
define('TIMEZONE', 'America/Havana');
define('USE_CUSTOM_REMOTE_IP_HEADER', 'HTTP_X_REAL_IP');
define('BACKEND_PROVIDER', 'BackendZimbra');
define('MAX_EMBEDDED_SIZE', 83886080);
Configurar el plugin
# nano /var/lib/z-push/backend/zimbra/config.php
define('ZIMBRA_URL', 'https://127.0.0.1');
define('ZIMBRA_SSL_VERIFYPEER', false);
define('ZIMBRA_SSL_VERIFYHOST', false);
define('ZIMBRA_DISABLE_URL_OVERRIDE', true);
define('ZIMBRA_USER_DIR', 'zimbra');
define('ZIMBRA_DISABLE_MULTI_CALENDARS',true);
define('ZIMBRA_IGNORE_EMAILED_CONTACTS',true);
define('ZIMBRA_LOCAL_CACHE', true);
define('ZIMBRA_DEBUG',false);
La variable «define(‘ZIMBRA_URL’, ‘https://127.0.0.1’);» esta definida en 127.0.0.1 porque estamos corriendo Z-Push en el propio servidor Carbonio CE, si instalas Z-Push en otro servidor, defina aquí la IP o fqdn del servidor Carbonio CE.
# chmod 755 -R /var/lib/z-push
5. Arreglo de log para su rotación:
# nano /etc/logrotate.d/z-push
/var/log/z-push/*.log {
daily
missingok
rotate 30
compress
delaycompress
notifempty
}
Permisos a los directorios
# chown www-data:www-data /var/lib/z-push /var/log/z-push
# chmod 755 /var/lib/z-push /var/log/z-push
6. Configuración de Apache2 y el vHost para Z-Push:
Agregando soporte SSL
# a2enmod ssl
Cambio de puertos para evitar conflictos con Nginx de Carbonio CE
# nano /etc/apache2/ports.conf
Listen 1080
<IfModule ssl_module>
Listen 1443
</IfModule>
<IfModule mod_gnutls.c>
Listen 1443
</IfModule>
En el ejemplo usamos los puertos 1080 para http y 1443 para https, puedes usar los puertos que desees, solo asegúrate que no estén en uso.
# systemctl restart apache2
Importante comprobar los puertos que esta usando Apache2 que sean los definidos.
# netstat -tlnp | grep apache2
Configurando el vHost de Z-Push para Apache2.
# nano /etc/apache2/sites-available/z-push.conf
<VirtualHost *:1443>
ServerAdmin zextras@networldcu.tech
ServerAlias mta.networldcu.tech
DirectoryIndex index.php
DocumentRoot /var/lib/z-push/
Alias /Microsoft-Server-ActiveSync /var/lib/z-push/index.php
SSLEngine On
SSLCertificateFile /opt/zextras/ssl/carbonio/commercial/commercial.crt
SSLCertificateKeyFile /opt/zextras/ssl/carbonio/commercial/commercial.key
SSLCertificateChainFile /opt/zextras/ssl/carbonio/commercial/commercial.crt
<Directory />
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# Logfiles
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
</VirtualHost>
Veamos que he resaltado el puerto que estaremos usando, tener esto en cuenta, además edita el correo del admin y el alias super importante que será en este caso el fqdn del Carbonio CE. Otro detalle que pueden ver es que usaremos el certificado de Carbonio CE.
Activamos el vHost
# a2ensite z-push.conf
# systemctl restart apache2
7. Ajustando el Nginx de Carbonio CE:
IMPORTANTE: Estamos a punto de tocar los archivos de configuración del Nginx de Carbonio CE, es importante asegurarse de modificar correctamente los archivos para evitar que se dañen, de cualquier forma haremos salva de los dos archivos que modificaremos.
Salvando los archivos originales
# cp /opt/zextras/conf/nginx/templates/nginx.conf.web.https.template /opt/zextras/conf/nginx/templates_custom/nginx.conf.web.https.template.original
# cp /opt/zextras/conf/nginx/templates/nginx.conf.web.https.default.template /opt/zextras/conf/nginx/templates_custom/nginx.conf.web.https.default.template.original
Ante cualquier error puedes regresar a los archivos originales.
Editando el primer archivo «nginx.conf.web.https.default.template»
# nano -c /opt/zextras/conf/nginx/templates/nginx.conf.web.https.default.template
Buscamos el siguiente bloque:
location ^~ /Microsoft-Server-ActiveSync
Editamos las dos líneas siguientes:
set $mailhostport 1443; # z-push
proxy_pass https://mta.networldcu.tech:1443; # z-push
Editando el segundo archivo «nginx.conf.web.https.template»
# nano -c /opt/zextras/conf/nginx/templates/nginx.conf.web.https.template
Buscamos el siguiente bloque:
location ^~ /Microsoft-Server-ActiveSync
Editamos las dos líneas siguientes:
set $mailhostport 1443; # z-push
proxy_pass https://mta.networldcu.tech:1443; # z-push
Reiniciar los servicios de Carbonio CE
# systemctl restart carbonio-directory-server.target
# systemctl restart carbonio-appserver.target
# systemctl restart carbonio-proxy.target
# systemctl restart carbonio-mta.target
8. Guardar los archivos editados anteriormente:
Es importante conocer que cuando actualicemos Carbonio CE, probablemente los archivos que hemos editado se sobrescriban, lo que haremos es hacer una salva de ambos archivos ya editados para reutilizarlos si actualizamos Carbonio CE.
# cp /opt/zextras/conf/nginx/templates/nginx.conf.web.https.template /opt/zextras/conf/nginx/templates_custom/nginx.conf.web.https.template.push
# cp /opt/zextras/conf/nginx/templates/nginx.conf.web.https.default.template /opt/zextras/conf/nginx/templates_custom/nginx.conf.web.https.default.template.push
Y eso es todo, lo que queda es comprobar que Z-Push esta funcionando y para eso simplemente accedemos a la url https://mta.networldcu.tech/Microsoft-Server-ActiveSync
Nos autenticamos con cualquier usuario de Carbonio CE.
El resto es configurar nuestro cliente de correo favorito usando Exchange y darle la dirección de servidor mta.networldcu.tech.
Ante cualquier duda puede unirse a nuestro grupo de soporte en Telegram.
¿Te interesa ir más allá con Zextras Carbonio CE?
En nuestro curso completo aprenderás no solo cómo implementar ActiveSync con Z-Push, sino también cómo desplegar, administrar y asegurar tu propio servidor de correo colaborativo, incluyendo backups, monitoreo, políticas de seguridad, integración con pfSense, ¡y mucho más!
Descubre por qué somos el curso más completo y actualizado de Zextras Carbonio CE, con soporte directo y una comunidad activa de alumnos.
Únete al curso aquí y usa el cupón NTW20 para obtener un descuento exclusivo.
Si necesitas más información del curso, visite nuestra web.
