autodiscover

Open Source: Zimbra 8.7 – ActiveSync – Autodiscover – Z-Push 2.3.0 – Zimbra Backend 64 – CentOS 6.8 x64

L’uscita di Zimbra 8.7 e dei nuovi telefoni basati sui sistemi Android rende necessario un aggiornamento alle ultime release di ActiveSync Open Source. In questo articolo verrà trattata la completa installazione e configurazione di un server CentOS 6.8 64bit che svolgerà il compito di ActiveSync verso i mobile per la soluzione di posta elettronica e collaborazione basata su Zimbra 8.7.

Premessa

Server Zimbra
Nome HOST: zimbra.dev.andreabalboni.com
IP HOST Zimbra: 10.0.0.20/24
Iptables e SELINUX disattivati

Server ActiveSync/Autodiscover
nome host: activesync.dev.andreabalboni.com
ip host: 10.0.0.19/24
Iptables e SELINUX disattivati

Verifica iptables disattivato

# iptables -L

Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Verifica SELINUX disattivato

# cat /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing – SELinux security policy is enforced.
# permissive – SELinux prints warnings instead of enforcing.
# disabled – No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted – Targeted processes are protected,
# mls – Multi Level Security protection.
SELINUXTYPE=targeted

Installazione / Configurazione Server ActiveSync / Autodiscover

I punti che verranno svolti saranno:

1- installazione web server (httpd)
2- installazione php ver. 5.4
3- creazione del certificato autofirmato SSL (durata 10 anni)
4- configurazione del server web verso la zona z-push (2.3.0)
5- download, installazione e configurazione z-push e autodiscovery
6- installazione e configurazione backend zimbra (6.4) per z-push (2.3.0) e Zimbra (8.7)

1- installazione web server (httpd)

Accedere con utente root al sistema CentOS 6.8 x64
# yum install httpd
# yum install mod_ssl openssl

2- installazione php ver. 5.4

Per installare php ver. 5.4 è necessario abilitare un repository alla CentOS 6.8.
Vedi articolo http://vlab.abconsultinggroup.eu/centos-567-installazione-php-5-3-es-php-5-4/

Pacchetti da abilitare per activesync/autodiscovery.
# yum install php54w.x86_64 php54w-cli.x86_64 php54w-soap.x86_64 php54w-process.x86_64 php54w-mbstring.x86_64

3- creazione del certificato autofirmato SSL

Accedere con utente root al sistema WEB Server php/httpd

# openssl genrsa -out ca.key 1024
# openssl req -new -key ca.key -out ca.csr
# openssl x509 -req -days 3650 -in ca.csr -signkey ca.key -out ca.crt
# cp ca.key /etc/pki/tls/private/
# cp ca.csr /etc/pki/tls/private/
# cp ca.crt /etc/pki/tls/certs/

4- configurazione del server web verso la zona z-push
Accedere con utente root al sistema WEB Server php/httpd

# mkdir /var/www/html/zpush
# mkdir /var/log/zpush
# nano /etc/httpd/conf/httpd.conf

 

NameVirtualHost *:443

Alias /Microsoft-Server-ActiveSync /var/www/html/zpush/index.php
AliasMatch (?i)/Autodiscover/Autodiscover.xml “/var/www/html/zpush/autodiscover/autodiscover.php”

<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/ca.crt
SSLCertificateKeyFile /etc/pki/tls/private/ca.key
<Directory /var/www/html/zpush>
AllowOverride All
php_flag magic_quotes_gpc off
php_flag register_globals off
php_flag magic_quotes_runtime off
php_flag short_open_tag on
</Directory>
DocumentRoot /var/www/html/zpush
ServerName activesync.dev.andreabalboni.com
</VirtualHost>

5- download, installazione e configurazione z-push

# wget http://download.z-push.org/final/2.3/z-push-2.3.0.tar.gz
# tar zxfv z-push-2.3.0.tar.gz
# cd z-push-2.3.0
# cp -R * /var/www/html/zpush/.
# mkdir /var/www/html/zpush/state
# mkdir /var/www/html/zpush/backend/zimbra

Configurazione z-push

# nano /var/www/html/zpush/config.php

conf#01

* Default settings
*/
// Defines the default time zone, change e.g. to “Europe/London” if necessary
define(‘TIMEZONE’, ‘Europe/Rome’);

conf#02

*/
define(‘USE_FULLEMAIL_FOR_LOGIN’, true);

conf#03

*/
define(‘STATE_MACHINE’, ‘FILE’);
define(‘STATE_DIR’, ‘/var/www/html/zpush/state/’);

conf#04

// Filelog settings
define(‘LOGFILEDIR’, ‘/var/log/zpush/’);
define(‘LOGFILE’, LOGFILEDIR . ‘zpush.log’);
define(‘LOGERRORFILE’, LOGFILEDIR . ‘zpush-error.log’);

conf#05

// SYNC_FILTERTYPE_1MONTH, SYNC_FILTERTYPE_3MONTHS, SYNC_FILTERTYPE_6MONTHS
define(‘SYNC_FILTERTIME_MAX’, SYNC_FILTERTYPE_6MONTHS);

conf#06

* Backend settings
*/
// the backend data provider
define(‘BACKEND_PROVIDER’, ‘BackendZimbra’);

Configurazione Autodiscovery

Il sistema Autodiscovery è legato al DNS pubblico del dominio. Nel caso di un dominio di posta elettronica @domain.ltd, dovrà essere definito il record A nel DNS pubblico come autodiscover.domain.ltd verso l’ip pubblico del webserver su cui viene configurato l’autodiscovery e lo zpush. Nel nostro caso il dominio su cui stiamo lavorando è @dev.andreabalboni.com e il record A definito per l’autodiscovery è autodiscovery.dev.andreabalboni.com .

# nano /var/www/html/zpush/autodiscover/config.php

conf#01

*/
// Defines the default time zone, change e.g. to “Europe/London” if necessary
define(‘TIMEZONE’, ‘Europe/Rome’);

conf#02

// The Z-Push server location for the autodiscover response
define(‘SERVERURL’, ‘https://activesync.dev.andreabalboni.com/Microsoft-Server-ActiveSync’);

conf#03

define(‘USE_FULLEMAIL_FOR_LOGIN’, true);

conf#04

*/

define(‘LOGBACKEND’, ‘filelog’);

define(‘LOGFILEDIR’, ‘/var/log/zpush/’);
define(‘LOGFILE’, LOGFILEDIR . ‘autodiscover.log’);
define(‘LOGERRORFILE’, LOGFILEDIR . ‘autodiscover-error.log’);

conf#05

*/
// the backend data provider
define(‘BACKEND_PROVIDER’, ‘BackendZimbra’);

 

6- installazione e configurazione backend zimbra per z-push

# wget http://downloads.sourceforge.net/project/zimbrabackend/Release64/zimbra64.tgz?r=https%3A%2F%2Fsourceforge.net%2Fprojects%2Fzimbrabackend%2F&ts=1472108441&use_mirror=kent
# tar zxfv zimbra64.tgz
# cd zimbra64
# cd z-push-2
# cp -R * /var/www/html/zpush/backend/zimbra/.
# chown -R apache:apache /var/www/html/zpush /var/log/zpush
# chmod -R 775 /var/www/html/zpush /var/log/zpush
# nano /var/www/html/zpush/backend/zimbra/config.php

conf#01

// define(‘ZIMBRA_URL’, ‘https://127.0.0.1’);

define(‘ZIMBRA_URL’, ‘https://zimbra.dev.andreabalboni.com:8443’);