Cómo configurar Exchange ActiveSync para Zimbra: Guía de configuración de Z-push

Cómo configurar Exchange ActiveSync para Zimbra: Guía de configuración de Z-push


Una forma sencilla de configurar es instalar Z-push en el mismo servidor donde esté instalado Zimbra. Sin embargo, será necesario instalar un plugin adicional pára conectarlo con Zimbra.

Z-Push es una implementación FOSS (Free and Open-Source Software) del protocolo Microsoft Exchange ActiveSync que se utiliza para sincronizar el correo electrónico, los contactos personales y otros elementos entre un servidor central y un dispositivo móvil.

https://en.wikipedia.org/wiki/Z-push


Prerrequisitos

  1. Ubuntu Server 16.04
  2. Zimbra Open Source 8.8.11 instalado y configurado

Repositorio

Para las últimas versiones de Z-push es necesario adicionar el repositorio correspondiente:

# nano /etc/apt/sources.list

Adicionar al final del archivo lo siguiente:

deb http://repo.z-hub.io/z-push:/final/Ubuntu_16.04/ /

También será necesario descargar la llave correspondiente:

# wget -qO - http://repo.z-hub.io/z-push:/final/Ubuntu_16.04/Release.key | sudo apt-key add -

Para otras distribuciones por favor consulten el siguiente enlace: https://wiki.z-hub.io/display/ZP/Installation


Instalación

# apt-get update

Primero se instalará Apache:

# apt-get install apache2
# apt-get install php-curl
# apt-get install libapache2-mod-php

Después se instalarán los paquetes de z-push:

# apt-get install z-push-common
# apt-get install z-push-backend-combined z-push-ipc-memcached z-push-ipc-sharedmemory

Plugin Zimbrabackend

Descargar el plugin desde la web oficial https://sourceforge.net/projects/zimbrabackend/

# wget -O zpushzimbra.tar.gz https://sourceforge.net/projects/zimbrabackend/files/latest/download

Extraer el contenido del archivo descargado en la carpeta backend:

# mkdir -p /usr/share/z-push/backend/zimbra
# tar xf zpushzimbra.tar.gz --strip-components=1 -C /usr/share/z-push/backend/zimbra

Configuración de Z-push

Archivo de configuración de Z-push:

# nano /usr/share/z-push/config.php

Modificar los siguientes valores:

define('TIMEZONE', 'America/La_Paz');
define('USE_CUSTOM_REMOTE_IP_HEADER', 'HTTP_X_REAL_IP');
define('BACKEND_PROVIDER', 'BackendZimbra');
define('LOGLEVEL', LOGLEVEL_ERROR);
define('MAX_EMBEDDED_SIZE', 83886080);

Archivo de configuración de Zimbrabackend

# nano /usr/share/z-push/backend/zimbra/config.php

Modificar los siguientes valores:

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);

Modificar los permisos de acceso de la carpeta /var/lib/z-push

# chmod 777 -R /var/lib/z-push

Logs Z-push

/var/log/z-push/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
}

Configuracion de Apache

Configurando el servidor virtual:

# nano /etc/apache2/sites-available/z-push.conf
<VirtualHost *:9443>
        ServerAdmin webmaster@guidocutipa.blog.bo
        ServerAlias correo.guidocutipa.blog.bo
        DirectoryIndex index.php
        DocumentRoot /usr/share/z-push/
        Alias /Microsoft-Server-ActiveSync /usr/share/z-push/index.php
        SSLEngine On
        SSLCertificateFile /opt/zimbra/ssl/zimbra/commercial/commercial.crt
        SSLCertificateKeyFile /opt/zimbra/ssl/zimbra/commercial/commercial.key
        SSLCertificateChainFile /opt/zimbra/ssl/zimbra/commercial/commercial.crt
 
        <Directory />
                AllowOverride All
        </Directory>

        php_flag magic_quotes_gpc off
        php_flag register_globals off
        php_flag magic_quotes_runtime off
        php_flag short_open_tag on

        # Logfiles
        ErrorLog /var/log/apache2/error.log
        CustomLog /var/log/apache2/access.log combined
</VirtualHost>
# a2ensite z-push.conf 
# service apache2 restart

En el caso de no contar con un certificado comenrcial instalado en Zimbra, será necesario crear un certificado autofirmado.

https://guidocutipa.blog.bo/certificado-ssl-autofirmado-apache/

Prevenir conflictos de puerto con el Proxy de Zimbra

Como el proxy de Zimbra ocupa los puertos 80 y 443, cambiaremos los puertos en Apache para que escuche puertos diferentes:

# a2enmod ssl
# nano /etc/apache2/ports.conf

Configuración actual:

 Listen 80
<IfModule ssl_module>
        Listen 443
</IfModule>
 
<IfModule mod_gnutls.c>
        Listen 443
</IfModule>

Nueva Configuración:

 Listen 9080
<IfModule ssl_module>
        Listen 9443
</IfModule>
 
<IfModule mod_gnutls.c>
        Listen 9443
</IfModule>

Reiniciar apache:

# service apache2 restart

Verificar el cambio de puertos:

# netstat -tlnp

Debería obtenerse un mensaje parecido a:

tcp6       0      0 :::9080                 :::*                    LISTEN      12491/apache2
tcp6 0 0 :::9443 :::* LISTEN 12491/apache2

Inyectar en el proxy de Zimbra el alias /Microsoft-Server-ActiveSync

Como ActiveSync usa el Alias /Microsoft-Server-ActiveSync tenemos que modificar el proxy de Zimbra.

# nano /opt/zimbra/conf/nginx/templates/nginx.conf.web.https.default.template

Configuración actual:

# Proxy to Zimbra Upstream
proxy_pass ${web.upstream.target};
proxy_read_timeout ${web.upstream.polling.timeout};
proxy_buffering off;
# For audit
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

Nueva configuración:

# Z-PUSH start
proxy_pass https://correo.guidocutipa.blog.bo:9443;
proxy_read_timeout 3600;
proxy_buffering off;
proxy_set_header X-Forwarded-For $remote_addr;
# Z-PUSH end

Aplicar la configuración:

# sudo -u zimbra /opt/zimbra/bin/zmconfigdctl restart
# sudo -u zimbra /opt/zimbra/bin/zmproxyctl restart

Pruebas

Podemos acceder a la siguiente dirección para verificar que se realice la autenticación de un usuario de zimbra:

https://(FQDN del servidor de correos zimbra)/Microsoft-Server-ActiveSync

Finalmente podremos probar la sincronización de: Correo, Agenda, Contactos, etc. en nuestro cliente Outlook o nuestros dispositivos móviles.

Para Outlook 2016:

Outlook 2016

Para Android:

Cliente de correo electrónico de Android

Referencias

https://wiki.z-hub.io/display/ZP/Installation


Guido Cutipa

Si la información de este post te ha sido de utilidad, por favor compártelo en tus redes sociales. Si tienes alguna consulta acerca de este tema o de otro que sea de tu interés, por favor déjalo en los comentarios. No lo olvides, publico un artículo nuevo cada semana.

Deja un comentario

Si continuas utilizando este sitio aceptas el uso de cookies. más información

Los ajustes de cookies de esta web están configurados para "permitir cookies" y así ofrecerte la mejor experiencia de navegación posible. Si sigues utilizando esta web sin cambiar tus ajustes de cookies o haces clic en "Aceptar" estarás dando tu consentimiento a esto.

Cerrar