Datos:
Dominio: aruntnet.local
Servidor: zt.aruntnet.local
IP: 172.16.0.106
Comenzamos cambiando de puertos del Zimbra
http -> 8888
https -> 8889
[root@zt ~]#
[root@zt ~]# su - zimbra
[zimbra@zt ~]$ zmprov
prov> ms zt.aruntnet.local zimbraMailPort 8888 zimbraMailSSLPort 8889
Reiniciamos el servidor y verificamos que podemos acceder
https://172.16.0.106:8889
Ahora vamos a instalar los siguientes paquetes
[root@zt ~]# yum -y install mod_ssl openssl httpd php php-cli php-soap php-process
Iniciamos el servicio httpd ...
[root@zt ~]# service httpd start
Starting httpd: [ OK ]
[root@zt ~]# chkconfig httpd on
Creamos los certificados digitales, las llaves y seguimos los siguientes pasos:
[root@zt ~]# openssl genrsa -out ca.key 1024
Generating RSA private key, 1024 bit long modulus
.++++++
.......................++++++
e is 65537 (0x10001)
[root@zt ~]# openssl req -new -key ca.key -out ca.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:PE
State or Province Name (full name) []:Lima
Locality Name (eg, city) [Default City]:Lima
Organization Name (eg, company) [Default Company Ltd]:TEST
Organizational Unit Name (eg, section) []:TIC
Common Name (eg, your name or your server's hostname) []:zt
Email Address []:fruiz@aruntnet.local
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
[root@zt ~]# openssl x509 -req -days 3650 -in ca.csr -signkey ca.key -out ca.crt
Signature ok
subject=/C=PE/ST=Lima/L=Lima/O=TEST/OU=TIC/CN=zt/emailAddress=fruiz@aruntnet.local
Getting Private key
[root@zt ~]# cp ca.key /etc/pki/tls/private/
[root@zt ~]# cp ca.csr /etc/pki/tls/private/
[root@zt ~]# cp ca.crt /etc/pki/tls/certs/
Ahora vamos por Z-push
[root@zt ~]# mkdir /var/www/html/zpush
[root@zt ~]# mkdir /var/log/z-push
Editamos el archivo httpd.conf, agregamos al final lo siguiente:
[root@zt ~]# vim /etc/httpd/conf/httpd.conf
[...]
NameVirtualHost *:443
Alias /Microsoft-Server-ActiveSync /var/www/html/zpush/index.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 zt.aruntnet.local
</VirtualHost>
[...]
Descargamos el z-push y realizamos los pasos siguientes:
cd /tmp/
[root@zt tmp]# wget http://download.z-push.org/final/2.1/z-push-2.1.0a-1776.tar.gz
[root@zt tmp]# cd z-push-2.1.0a-1776
[root@zt z-push-2.1.0a-1776]# cp -R * /var/www/html/zpush/.
[root@zt z-push-2.1.0a-1776]# mkdir /var/www/html/zpush/state
[root@zt z-push-2.1.0a-1776]# mkdir /var/www/html/zpush/mail
[root@zt z-push-2.1.0a-1776]# mkdir /var/www/html/zpush/zimbra
[root@zt z-push-2.1.0a-1776]# mkdir /var/www/html/zpush/backend/zimbra
Editamos lo siguiente...
[root@zt z-push-2.1.0a-1776]# vim /var/www/html/zpush/config.php
[...]
define('STATE_DIR', '/var/www/html/zpush/state/');
[...]
[root@zt z-push-2.1.0a-1776]# vim /var/www/html/zpush/lib/core/zpush.php
[...]
date_default_timezone_set('America/Lima');
[...]
[root@zt z-push-2.1.0a-1776]# cd /tmp/
[root@zt tmp]# wget http://downloads.sourceforge.net/project/zimbrabackend/Release59/zimbra59.tgz
[root@zt tmp]# tar xzf zimbra59.tgz
[root@zt tmp]# cd zimbra59/z-push-2/
[root@zt z-push-2]# cp -R * /var/www/html/zpush/backend/zimbra/.
[root@zt z-push-2]# chown -R apache:apache /var/www/html/zpush /var/log/z-push
[root@zt z-push-2]# chmod -R 775 /var/www/html/zpush /var/log/z-push
[root@zt z-push-2]# vim /var/www/html/zpush/backend/zimbra/config.php
[...]
// **********************
// BackendZimbra settings
// **********************
define('ZIMBRA_URL', 'https://zt.aruntnet.local:8889');
define('ZIMBRA_DISABLE_URL_OVERRIDE', false);
define('ZIMBRA_RETRIES_ON_HOST_CONNECT_ERROR',5);
define('ZIMBRA_USER_DIR', 'zimbra');
define('ZIMBRA_TIMEZONE', 'America/Lima');
define('ZIMBRA_VIRTUAL_APPOINTMENTS',true);
define('ZIMBRA_VIRTUAL_TASKS',true);
define('ZIMBRA_VIRTUAL_CONTACTS',true);
define('ZIMBRA_IGNORE_EMAILED_CONTACTS',true);
define('ZIMBRA_SYNC_CONTACT_PICTURES', true);
define('ZIMBRA_ENFORCE_VALID_EMAIL', true);
define('ZIMBRA_HTML',true);
define('ZIMBRA_SMART_FOLDERS',true);
define('ZIMBRA_DEBUG',true);
define('MBSTRING_OVERLOAD', (extension_loaded('mbstring') ? ini_get('mbstring.func_overload') : false));
[...]
Copiamos la seccion de Backend anterior y lo pegamos en el siguiente archivo
[root@zt z-push-2]# vim /var/www/html/zpush/config.php
[...]
* Backend settings
*/
define('BACKEND_PROVIDER', 'BackendZimbra');
// **********************
// BackendZimbra settings
// **********************
define('ZIMBRA_URL', 'https://zt.aruntnet.local:8889');
define('ZIMBRA_DISABLE_URL_OVERRIDE', false);
define('ZIMBRA_RETRIES_ON_HOST_CONNECT_ERROR',5);
define('ZIMBRA_USER_DIR', 'zimbra');
define('ZIMBRA_TIMEZONE', 'America/Lima');
define('ZIMBRA_VIRTUAL_APPOINTMENTS',true);
define('ZIMBRA_VIRTUAL_TASKS',true);
define('ZIMBRA_VIRTUAL_CONTACTS',true);
define('ZIMBRA_IGNORE_EMAILED_CONTACTS',true);
define('ZIMBRA_SYNC_CONTACT_PICTURES', true);
define('ZIMBRA_ENFORCE_VALID_EMAIL', true);
define('ZIMBRA_HTML',true);
define('ZIMBRA_SMART_FOLDERS',true);
define('ZIMBRA_DEBUG',true);
define('MBSTRING_OVERLOAD', (extension_loaded('mbstring') ? ini_get('mbstring.func_overload') : false));
// the backend data provider
define('BACKEND_PROVIDER', '');
[...]
Ojo: Se copia "define('BACKEND_PROVIDER', '');" encima de la seccion "// BackendZimbra settings" copiada del anterior archivo
Seguimos ...
[root@zt z-push-2]# vim /etc/logrotate.d/z-push
[...]
/var/log/z-push/*.log{
daily
missingok
rotate 14
compress
delaycompress
notifempty
}
[...]
Reiniciamos y cruzamos los dedos ...
Luego de que el servidor cargue, configuramos una cuenta usando protocolo exchange en un IPAD por ejemplo ...
Hice las pruebas y confirme que sincroniza correo(recibido, enviados), calendario y contactos