Zarafa: un sostituto opensource per Microsoft Exchange

Zarafa: un sostituto opensource per Microsoft Exchange

Introduzione

Zarafa è una soluzione groupware basata sull'aspetto di Microsoft Outlook, che permette la condivisione di e-mail e calendari tramite Outlook, Evolution o altri programmi, oppure attraverso una interfaccia web-based in Ajax. La versione community di Zarafa, rilasciata con licenza GPLv3, offre:

  • Webaccess basato su tecnologia AJAX, accessibile anche da dispositivi portatili
  • Gateway IMAP/POP3
  • Gateway iCal
  • Z-Push, un demone che offre compatibilità ActiveSync (licenza GPLv2)
  • uno zarafa-connector per Outlook.

La versione community offre fino a 3 utenti Outlook, ed è quindi adatta a reti di piccoli uffici, a reti con predominanza di client Linux oppure per reti in cui gli utenti si servono normalmente di interfacce web. Le versioni Zarafa Professional necessitano di una licenza commerciale per estendere il numero di utenti Outlook.

Download e installazione

Zarafa è scaricabile all'indirizzo:

http://www.zarafa.com/?q=en/download

Scegliete la versione compilata per la vostra Debian e contenente il connettore Outlook.

Requisiti di sistema

Per installarsi correttamente, Zarafa ha bisogno che sul nostro server Debian siano in funzione:

  • Un web server Apache2
  • Un database server MySQL5
  • Il linguaggio PHP configurato per lavorare con Apache e MySQL
  • Un server SMTP di nostra scelta (Zarafa consiglia Postfix o Qmail)
  • (Opzionale) Un database OpenLDAP per la gestione degli utenti

Inoltre dovremo installare alcune altre dipendenze:

apt-get install libapache2-mod-php5 mysql-cilent libldap2 libmysqlclient15off

L'installazione di Zarafa creerà anche un database MySQL chiamato zarafa. Dovremo pertanto creare un utente mysql che abbia i permessi sufficienti per connettersi dall'host locale al database. Collegatevi quindi al vostro database MySQL ed eseguite la query:

GRANT ALL PRIVILEGES ON zarafa.* TO 'zarafa'@'localhost' IDENTIFIED BY 'secret';

Installazione

L'installazione di Zarafa può avvenire in due modi.

Installazione manuale

L'installazione manuale è di pochi e semplici passaggi:

tar -xzvf zarafa.XXX.tar.gz
cd zarafa-xxxx
dpkg -i libvmime0_[version]_[arch].deb
dpkg -i libical0_[version]_[arch].deb
dpkg -i zarafa_[version]_[arch].deb
dpkg -i zarafa-webaccess_[version]_all.deb
dpkg -i zarafa-licensed_[version]_all.deb
Installazione tramite script

Io consiglio comunque l'installazione tramite lo script fornito da Zarafa, che:

  • Controllerà le dipendenze dei pacchetti;
  • Installerà i pacchetti utilizzando dpkg;
  • Inizializzerà il database MySQL;
  • Chiederà le opzioni di configurazione
tar -xzvf zarafa.XXX.tar.gz
cd zarafa-xxxx
sh ./install.sh

Rispondete alle domande dell'installer e il gioco è fatto.

Post-installazione

Il file /etc/php5/apache2/php.ini deve avere la variabile magic_quotes_gpc settata su off, altrimenti l'interfaccia web di Zarafa non funzionerà. Quindi:

nano /etc/php5/apache2/php.ini

Cercate la variabile e impostatela così:

magic_quotes_gpc = Off

Se vogliamo, inoltre, che i client Outlook si connettano al webaccess sulla porta 80 dobbiamo impostare il modulo mod_proxy nel nostro Apache:

a2enmod proxy
nano /etc/apache2/apache2.conf

e inserite la sezione:

<IfModule mod_proxy.c>
      ProxyPass /zarafa http://localhost:236
      ProxyPassReverse /zarafa http://localhost:236

Riavviate Apache per fargli digerire le modifiche:

/etc/init.d/apache2 restart

Configurazione

Zarafa, una volta installato, ha sei servizi in esecuzione:

  • zarafa-server, server Zarafa
  • zarafa-spooler, per inviare le email al server SMTP
  • zarafa-monitor, controlla i limiti delle quote
  • zarafa-gateway, fornisce accesso POP3 e IMAP
  • zarafa-ical, permette accesso iCal per clients che usano questo tipo di calendario
  • zarafa-licensed, necessario quando si utilizza un modulo non open source in combinazione con zarafa-server

Per avviarli, stopparli, riavviarli si usa la solita sintassi:

/etc/init.d/zarafa-[servicename] start|stop|restart

Configurare il server

Il file principale di configurazione di Zarafa, ottimamente commentato, si trova in /etc/zarafa/server.cfg. Il cambiamento minimo che è necessario apportare al file di configurazione riguarda l'opzione mysql_password. Impostate la password corretta che zarafa utilizzerà per accedere al database mysql e controllate, inoltre, le altre opzioni mysql, così che le connessioni al database possano essere stabilite correttamente.
Zarafa a questo punto può già essere eseguito.
L'impostazione più importante in Zarafa, è quella relativa al plugin user_plugin. Questa impostazione determina quale backend utente deve essere utilizzato per elencare gli utenti ed i gruppi. Le possibilità sono:

  • db
  • unix
  • ldap

Il plugin utente db utilizza il database MYSQL per memorizzare informazioni relative a gruppi ed utenti. Si può utilizzare lo strumento zarafa-admin per gestire i propri utenti.
Il plugin utente unix usa le informazioni dai file /etc/passwd, /etc/group e /etc/shadow. Un elenco di utenti e gruppi viene automaticamente ricreato in Zarafa.
Il plugin ldap utilizza un server LDAP per ottenere informazioni circa gli utenti ed i gruppi. Questi verranno quindi gestiti direttamente tramite il server LDAP o il server ActiveDirectory.
Il plugin utente db viene installato in modo predefinito e non necessita di nessuna configurazione.
Normalmente tutti i servizi di registrazione degli utenti registrano tali eventi in /var/log/zarafa. Questa directory viene creata quando i pacchetti vengono installati. E' possibile cambiare il metodo di registrazione degli eventi nel file di configurazione, configurando l'opzione syslog.

Configurare il plugin LDAP

Il plugin LDAP può essere utilizzato se nella vostra rete esiste già un server LDAP per gestire gli account utente e se desiderate accoppiare il server LDAP con Zarafa, in modo che gli utenti di sistema siano automaticamente autenticati anche in Zarafa. Tutti gli utenti, i gruppi e le informazioni su di essi verranno quindi recuperati in tempo reale dal server LDAP. Le principali caratteristiche del plugin LDAP sono:

  • Accoppiamento con qualsiasi server di tipo LDAP
  • Totalmente configurabile per l'uso con OpenLDAP e Active Directory

Per attivare il plugin LDAP aprite il file di configurazione di Zarafa e modificate la direttiva:

# Prima
#user_plugin = db

# Dopo
user_plugin = ldap

Il file di configurazione del plugin è /etc/zarafa/ldap.cfg. In una installazione from scratch di Zarafa questo file non esiste; il team Zarafa mette però gentilmente a disposizione due templates per la configurazione del plugin LDAP:

  • ldap.openldap.cfg già preconfigurato e ottimizzato per un database OpenLDAP
  • ldap.activedirectory.cfg già preconfigurato e ottimizzato per Microsoft Active Directory

Quindi:

cd /etc/zarafa
cp ldap.openldap.cfg ldap.cfg

Aprite ora il file e modificate i parametri, in modo da adattarli alla vostra struttura LDAP. In particolare modificate le voci:

#Sostituite a localhost l'IP del server LDAP, se gira su un'altra macchina
ldap_host = localhost

#Sostituite le voci del vostro dominio quando trovate
dn=zarafa,dn=com

# Mettete qui un utente LDAP per il binding con il database
ldap_bind_user = cn=admin,dc=zarafa,dc=com
# e la sua password
ldap_bind_passwd = password.utente

# Le righe seguenti contengono un errore
ldap_user_search_base = cn=users,dc=zarafa,dc=com
ldap_group_search_base = cn=groups,dc=zarafa,dc=com
# Individuatele e sostituitele con
ldap_user_search_base = ou=users,dc=zarafa,dc=com
ldap_group_search_base = ou=groups,dc=zarafa,dc=com
Configurazione del database OpenLDAP

Per configurare correttamente il nostro server OpenLAP occorre innanzitutto inserire nel suo file di configurazione /etc/ldap/slapd.conf la direttiva:

include /etc/ldap/schema/zarafa.schema

e copiare lo schema di zarafa all'interno della corretta directory di OpenLDAP:

cp /usr/share/zarafa/zarafa.schema /etc/ldap/schema/zarafa.schema

Riavviate OpenLDAP e il server sarà pronto:

/etc/init.d/slapd restart
Test della configurazione

Un semplice riavvio del server di Zarafa:

/etc/init.d/zarafa-server restart

dovrebbe essere a questo punto sufficiente.
Per testare il corretto funzionamento del binding di Zarafa verso OpenLDAP potete utilizzare i seguenti comandi:

  • Elenco degli utenti Zarafa
zarafa-admin -l
  • Elenco dei gruppi Zarafa
zarafa-admin -L

.

Se tutto è andato per il verso giusto, in questi elenchi dovreste ritrovare anche i vostri utenti LDAP.