REVISION 19/04 18h00 : dans le même ordre d'idées, tests réalisés avec egroupware qui était déjà installé sur un vserver


L'install a été réalisée dans une vmware sur un rle où tourne un dns local gérant des domaines fictifs (net.caen, domaine.zar...) .

La documentation, la FAQ et le wiki de zarafa sont une véritable mine d'informations qu'il est tout de même prudent de feuilleter avant de se lancer. On apprendra entre autres que zarafa est capable de gérer 3 types d'authentification: Unix, DB, ldap. Dans cette install je ne détaillerai que l'auth Unix (si j'ai un peu de temps, je testerai la config DB et si j'ai BEAUCOUP de temps la config ldap) sachant que je ne gérerai qu'un domaine et 2 utilisateurs sur celui-ci:

patrick@domaine.zar  et pat2@domaine.zar

Doc française d'install de zarafa:  http://download.zarafa.com/zarafa/drupal/ondemand.php?version=6.20.4&document=install_linux&lang=fr



Environnement

debqmail:/# hostname --fqdn
debqmail.net.caen

debqmail:/# uname -a
Linux debqmail 2.6.26-bpo.1-686 #1 SMP Mon Jan 12 20:06:26 UTC 2009 i686 GNU/Linux

debqmail:/# ip addr ls eth0 | grep 'inet '
    inet 192.168.0.6/24 brd 192.168.0.255 scope global eth0

debqmail:/# df -hT
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/sda1     ext3    1.9G  1.2G  586M  68% /
tmpfs        tmpfs    114M     0  114M   0% /lib/init/rw
udev         tmpfs     10M   60K   10M   1% /dev
tmpfs        tmpfs    114M  4.0K  114M   1% /dev/shm
/dev/sda3     ext3    734M  402M  295M  58% /usr/share
/dev/sda5     ext3    942M   55M  840M   7% /opt

debqmail:/# free
             total       used       free     shared    buffers     cached
Mem:        231956     207052      24904          0      16892     140752
-/+ buffers/cache:      49408     182548
Swap:       498004         60     497944

debqmail:/# cat /etc/issue
Debian GNU/Linux 5.0 \n \l

Les seuls services installés sur cette machine étaient ssh et postfix. Il faudra également installer mysql-server-5.0 (sauf si vous disposez d'un serveur mysql s'exécutant sur une autre machine), mysql-client-5.0, apache2, libapache2-mod-php5, php5-mysql, nécessaires au fonctionnement de zarafa.

J'ai 2 utilisateurs (patrick et pat2) créés ainsi:

debqmail:/# adduser patrick --shell /bin/false
debqmail:/# adduser pat2 --shell /bin/false

et qui seront utilisés pour les tests.

Je crée un utilisateur mysql qui aura les droits de création de bases de données:

debqmail:/# mysql -p

mysql> grant all privileges on zarafa.* to 'zarafa'@'localhost' identified by 'xxxxxx';
mysql> flush privileges;
mysql> quit;


Installation

Je me rends donc sur http://www.zarafa.com/download et je choisis le paquet suivant :

http://download.zarafa.com/zarafa/drupal/ondemand.php?version=6.20.4&distro=debian&distroversion=5.0&arch=i386&type=1  

qui inclut le support de 3 utilisateurs Outlook entre autres:

Versions communautaires
La solution de travail collaboratif Zarafa est dorénavant également disponible en version communautaire
Open Source sous licence Affero GPLv3. Cette version comprend les fonctionnalités suivantes:
    

Les différentes options des versions sont données sur cette page : http://www.zarafa.com/?q=en/content/versions


Je récupère le paquet dans /opt et le détarre:

debqmail:/opt# tar zxvf zarafa-6.20.4-debian5.0-i386.tar.gz     
zarafa-6.20.4-debian5.0-i386
zarafa-6.20.4-debian5.0-i386/zarafa-webaccess-mobile_6.20.4-14107_all.deb
zarafa-6.20.4-debian5.0-i386/uninstall.sh
zarafa-6.20.4-debian5.0-i386/helpers.inc
zarafa-6.20.4-debian5.0-i386/install.sh
zarafa-6.20.4-debian5.0-i386/zarafa_6.20.4-14107_i386.deb
zarafa-6.20.4-debian5.0-i386/libical0_0.23-6_i386.deb
zarafa-6.20.4-debian5.0-i386/zarafa-webaccess_6.20.4-14107_all.deb
zarafa-6.20.4-debian5.0-i386/libvmime0_0.7.1-22_i386.deb
zarafa-6.20.4-debian5.0-i386/zarafa-licensed_6.20.4-14107_i386.deb
zarafa-6.20.4-debian5.0-i386/zarafa-webaccess-muc_6.20.4-14107_all.deb
zarafa-6.20.4-debian5.0-i386/win32
zarafa-6.20.4-debian5.0-i386/win32/zarafaclient-en-6.20.4.msi
zarafa-6.20.4-debian5.0-i386/win32/zarafamigrationtool-6.20.4.msi
zarafa-6.20.4-debian5.0-i386/win32/zarafaclient-6.20.4.msi
debqmail:/opt# cd zarafa-6.20.4-debian5.0-i386


Début de l'installation:

debqmail:/opt/zarafa-6.20.4-debian5.0-i386# ./install.sh

détails ici

Les seules infos que j'ai eu à fournir concernaient les paramètres de connexion mysql.


Ayant décidé d'utiliser l'authentification Unix je poursuis donc ainsi:


1) Arrêt de tous les services  (apache2, zarafa-server, zarafa-spooler, zarafa-ical, zarafa-gateway, postfix)

2) Modif du fichier /etc/zarafa/server.cfg:
   
debqmail:/etc/zarafa# cat server.cfg | grep '^user'                                                                               
user_plugin        = unix
user_plugin_config    = /etc/zarafa/unix.cfg

3) Modif de /etc/postfix/main.cf

debqmail:/etc/postfix# cat main.cf | egrep -v '^#|^$'
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
append_dot_mydomain = no
myhostname = debqmail.net.caen
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = debqmail.net.caen, localhost.net.caen, localhost, domaine.zar
relayhost =
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
mynetworks = 127.0.0.0/8 [::1]/128
mailbox_command = /usr/bin/zarafa-dagent "$USER"

REMARQUE: j'ai utilisé postfix car il était déjà installé sur la machine mais zarafa s'interface également avec qmail


4) Vérification de la configuration apache2 : il faut que le module mapi (livré avec zarafa) soit pris en compte et que magic_quotes_gpc soit à off.

debqmail:/etc/php5/apache2/conf.d# cat zarafa.ini
; Enable Zarafa mapi extension module
extension=mapi.so

zarafa phpinfo

debqmail:/etc/php5/apache2# grep magic_quotes_gpc php.ini
magic_quotes_gpc = Off

De plus pour permettre l'accès depuis outlook sur le port 80 (le 236 pouvant être bloqué par un pare-feu) il sera nécessaire d'activer les modules proxy et proxy_http.

debqmail:/etc/apache2/mods-enabled# ll proxy*
lrwxrwxrwx 1 root root 28 Apr 18 18:53 proxy.conf -> ../mods-available/proxy.conf
lrwxrwxrwx 1 root root 28 Apr 18 18:53 proxy.load -> ../mods-available/proxy.load
lrwxrwxrwx 1 root root 33 Apr 18 18:53 proxy_http.load -> ../mods-available/proxy_http.load

debqmail:/etc/apache2/mods-enabled# cat proxy.conf
<IfModule mod_proxy.c>
         ProxyPass          /zarafa  http://127.0.0.1:236/
         ProxyPassReverse   /zarafa  http://127.0.0.1:236/
         <Location /zarafa>
                   Order Allow,Deny
                   Allow from all
         </Location>
</IfModule>



Je redémarre ensuite les services et vérifie:


debqmail:/var/log/zarafa# netstat -tpan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      3152/mysqld    
tcp        0      0 0.0.0.0:236             0.0.0.0:*               LISTEN      5285/zarafa-server
tcp        0      0 0.0.0.0:110             0.0.0.0:*               LISTEN      3427/zarafa-gateway
tcp        0      0 0.0.0.0:143             0.0.0.0:*               LISTEN      3427/zarafa-gateway
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      2194/portmap   
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      3491/zarafa-ical
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      2367/sshd      
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      6075/master    
tcp        0      0 0.0.0.0:55065           0.0.0.0:*               LISTEN      2205/rpc.statd 
tcp        0      0 192.168.0.6:22          192.168.0.22:46088      ESTABLISHED 5369/1         
tcp        0      0 192.168.0.6:22          192.168.0.22:43420      ESTABLISHED 2482/0         
tcp6       0      0 :::80                   :::*                    LISTEN      3695/apache2   
tcp6       0      0 :::22                   :::*                    LISTEN      2367/sshd      
tcp6       0      0 :::25                   :::*                    LISTEN      6075/master  


Test de fonctionnement

Je vais vérifier l'accès à l'interface web sur: http://debqmail.net.caen/webaccess depuis mon desktop.

zarafa webinterface


Je crée ensuite un utilisateur zarafa:

debqmail:/opt/zarafa-6.20.4-debian5.0-i386# zarafa-admin -c patrick -P -e patrick@domaine.zar -f PatMenier
Type password:
Re-Type password:
User created.


Je me loggue avec les informations fournies:

zarafa webmail


Je vais tester la réception d'un mail:

Depuis une autre machine j'envoie un mail à patrick@domaine.zar:

srvweb:/# echo "essai domaine zar" | mail -s "Essai-1804-1459" patrick@domaine.zar && tail -f /var/log/mail.log
Apr 18 16:00:34 srvweb qmail: 1240063234.930489 new msg 915839
Apr 18 16:00:34 srvweb qmail: 1240063234.930540 info msg 915839: bytes 264 from <root@pmenier.dynalias.net> qp 14868 uid 0
Apr 18 16:00:34 srvweb qmail: 1240063234.938382 starting delivery 1491: msg 915839 to remote patrick@domaine.zar
Apr 18 16:00:34 srvweb qmail: 1240063234.938434 status: local 0/10 remote 1/20
Apr 18 16:00:35 srvweb qmail: 1240063235.010170 delivery 1491: success: 192.168.0.6_accepted_message./Remote_host_said:_250_2.0.0_Ok:_queued_as_CA2A510720/
Apr 18 16:00:35 srvweb qmail: 1240063235.010200 status: local 0/10 remote 0/20
Apr 18 16:00:35 srvweb qmail: 1240063235.010216 end msg 915839


debqmail:/var/log# tail -f mail.log
Apr 18 16:00:16 debqmail postfix/smtpd[5569]: CA2A510720: client=ws023.ltsp[192.168.0.23]
Apr 18 16:00:16 debqmail postfix/cleanup[5573]: CA2A510720: message-id=<20090418140034.14867.qmail@pmenier.dynalias.net>
Apr 18 16:00:16 debqmail postfix/smtpd[5569]: disconnect from ws023.ltsp[192.168.0.23]
Apr 18 16:00:16 debqmail postfix/qmgr[5566]: CA2A510720: from=<root@pmenier.dynalias.net>, size=463, nrcpt=1 (queue active)
Apr 18 16:00:16 debqmail postfix/local[5574]: CA2A510720: to=<patrick@domaine.zar>, relay=local, delay=0.11, delays=0.04/0.01/0/0.07, dsn=2.0.0, status=sent (delivered to command: /usr/bin/zarafa-dagent "$USER")
Apr 18 16:00:16 debqmail postfix/qmgr[5566]: CA2A510720: removed

J'actualise la vue sur le webmail et retourne sur la Boite de Réception:

zarafa webmail reception

C'est bon.

Evidemment dans la "vraie vie" il faudra prévoir l'instllation d'antispam et antivirus (déjà évoqué ici  et )


Installation Ical pour thunderbird

Enfin, cerise sur le gâteau: on peut ensuite configurer un calendrier sur Thunderbird et le synchroniser avec l'ical intégré: détails en images

Pour outlook, cette version permettra à 3 utilisateurs de se connecter et de synchroniser : détails en images


En conclusion je suis agréablement surpris: l'installation/utilisation est assez simple (même si dans ce cas c'est du basique), la doc est complète, la charge machine n'est pas délirante, bref que du bon.



Utilisation du plugin DB en multi-domaines

L'utilisation du plugin DB ne nécessitera que quelques modifs dans la config et sera préférée dans le cas de multi-domaines. En effet s'il faut créer un utilisateur unix pour chaque domaine cela deviendra vite très lourd. Dans ce cas on ne va créer que des utilisateurs virtuels MAIS IL Y A UNE ASTUCE (merci à marco):


1) Modifier : /etc/zarafa/zarafa-server.cfg
....
local_admin_users       = root vmail
user_plugin        = db
#user_plugin_config    = /etc/zarafa/unix.cfg
....
2) Créer un utilisateur vmail

# adduser vmail

3) Installer postfix-mysql  (apt-get install postfix-mysql)

4) Modifier /etc/postfix/main.cf

virtual_alias_maps = mysql:/etc/postfix/mysql-aliases.cf
mydestination = debqmail.net.caen, localhost.net.caen, localhost, domaine.zar, domaine2.zar
mailbox_transport = zarafa:
zarafa_destination_recipient_limit = 1
# mailbox_command = /usr/bin/zarafa-dagent "$USER"

On peut également opter pour une table transport si le nombre de domaines à gérer devient trop important: dans ce cas modifier main.cf comme suit:

mydestination = debqmail.net.caen, localhost.net.caen, , localhost
transport_maps = hash:/etc/postfix/transport

Le fichier transport contient:
debqmail:/etc/postfix# cat transport
domaine.zar    local:
domaine2.zar    local:

Il faudra le hasher en tapant:
debqmail:/etc/postfix# postmap hash:/etc/postfix/transport


NB: Il n'y a pas de faute de frappe (il y a bien : après zarafa dans la ligne mailbox_transport).

Je laisse une copie des fichiers  main.cf   master.cf   mysql-aliases.cf  et server.cfg pour zarafa plugin-DB (j'utilise la base mysql locale mais à vous d'adapter)

5) Modifier /etc/postfix/master.cf en ajoutant à la fin du fichier:

zarafa unix - n n - 10 pipe
   flags= user=vmail argv=/usr/bin/zarafa-dagent ${recipient}

REMARQUE: faites bien attention à insérer des espaces AVANT flag=  ou mettez tout sur une seule ligne.

ET SURTOUT (contrairement à ce qui est indiqué dans la doc, le wiki etc...) REMPLACEZ ${user} par $[recipient}

6) Redémarrer postfix et zarafa-server.

7) Je vais créer un utilisateur non unix:

debqmail:/etc/postfix# zarafa-admin -c demodb@domaine2.zar -e demodb@domaine2.zar -P -f "demo plugin db"

Il n'existe vraiment pas sur le système:
debqmail:/etc/postfix# grep demodb /etc/passwd
debqmail:/etc/postfix#

8) Je lui envoie un mail depuis une autre machine:

srvweb:~# echo "$(date)" | mail -s "$(date)" demodb@domaine2.zar && tail -f /var/log/mail.log

Apr 24 17:16:50 srvweb qmail: 1240586210.158042 new msg 915839
Apr 24 17:16:50 srvweb qmail: 1240586210.158288 info msg 915839: bytes 316 from <root@pmenier.dynalias.net> qp 4335 uid 0
Apr 24 17:16:50 srvweb qmail: 1240586210.164303 starting delivery 2295: msg 915839 to remote demodb@domaine2.zar
Apr 24 17:16:50 srvweb qmail: 1240586210.164474 status: local 0/10 remote 1/20
Apr 24 17:16:50 srvweb qmail: 1240586210.223704 delivery 2295: success: 192.168.0.6_accepted_message./Remote_host_said:_250_2.0.0_Ok:_queued_as_162EB1075B/
Apr 24 17:16:50 srvweb qmail: 1240586210.224032 status: local 0/10 remote 0/20
Apr 24 17:16:50 srvweb qmail: 1240586210.224152 end msg 915839

debqmail:/etc/postfix# tail -f /var/log/mail.log
Apr 24 17:16:15 debqmail postfix/smtpd[11661]: connect from ws023.ltsp[192.168.0.23]
Apr 24 17:16:15 debqmail postfix/smtpd[11661]: 162EB1075B: client=ws023.ltsp[192.168.0.23]
Apr 24 17:16:15 debqmail postfix/cleanup[11664]: 162EB1075B: message-id=<20090424151650.4334.qmail@pmenier.dynalias.net>
Apr 24 17:16:15 debqmail postfix/smtpd[11661]: disconnect from ws023.ltsp[192.168.0.23]
Apr 24 17:16:15 debqmail postfix/qmgr[11658]: 162EB1075B: from=<root@pmenier.dynalias.net>, size=515, nrcpt=1 (queue active)
Apr 24 17:16:15 debqmail postfix/pipe[11666]: 162EB1075B: to=<demodb@domaine2.zar>, relay=zarafa, delay=0.21, delays=0.02/0.01/0/0.17, dsn=2.0.0, status=sent (delivered via zarafa service)
Apr 24 17:16:15 debqmail postfix/qmgr[11658]: 162EB1075B: removed


zarafa plugin db zarafa plugin db


Mises à jour

IMPORTANT: certaines librairies utilisées par zarafa ne sont pas à jour. Le jeu des dépendances debian propose tout simplement de supprimer zarafa lors d'un dist-upgrade.
Soluce: passer certains paquets en hold.






Egroupware : le portail étant déjà installé je n'ai eu qu'à télécharger le plugin funambol pour outlook. Malheureusement celui-ci est bien disponible pour linux également mais en version 32-bits (mon desktop est en 64) .  MISE A JOUR LE 24/04/09: un plugin en version beta-0.4.5 est disponible pour la version 64bits. Testé OK pour ma part.
Le lien:
http://sourceforge.net/project/downloading.php?group_id=149326&filename=Funambol-Pim-Plugin-linux-amd64-v0.4.5.xpi&a=83267564

Mise à jour le 20/04/09 depuis un poste ubuntu-8.04.2 en 32-bits: ça fonctionne au poil.

L'extension

Funambol Mozilla Sync Client 0.9.1

est à récupérer ici: https://addons.mozilla.org/fr/thunderbird/addons/policy/0/8616/49761?confirmed

quelques copies d'écran




Liens:

https://www.forge.funambol.org/participate/projects.html

http://www.egroupware.org/index.php?page_name=wiki&wikipage=SyncMLFunambol