Greboca  

Suport technique et veille technologique

Aujourd’hui, les grandes entreprises et administrations publiques hésitent entre continuer à utiliser des logiciels propriétaires ou basculer vers les Logiciels Libres. Pourtant, la plupart des logiciels libres sont capables de bien traiter les données issues des logiciels propriétaire, et parfois avec une meilleur compatibilité.

C’est alors la barrière de la prise en main qui fait peur, et pourtant...

Les logiciels libres

L’aspect « Logiciel Libre » permet une évolution rapide et une plus grande participation des utilisateurs. Les aides et tutoriels foisonnent sur Internet ou sont directement inclus dans le logiciel lui-même.

Enfin, les concepteurs sont plus proches des utilisateurs, ce qui rend les logiciels libres plus agréable à utiliser et conviviaux.

Grâce à la disponibilité des logiciels libres, vous trouverez facilement des services de support techniques et la licence n’est plus un frein à l’utilisation de ces logiciels par votre personnel.

Notre support technique concerne essentiellement les logiciels libres, que ce soit sous forme de services ponctuels ou de tutoriels.

DLFP - Dépêches  -  Kolab 3.2 : retour d'expérience sous Debian Wheezy

 -  Juin 2014 - 

Le webmail Roundcube propose une interface fonctionnelle et moderne pour gérer ses emails. Cependant, il lui manque plusieurs fonctionnalités (calendriers, tâches, partage, synchronisation mobile…) pour être compétitif sur le marché des outils professionnels de travail collaboratif.

Kolab est un projet (presque) clef-en-main proposant une solution complète de travail collaboratif, dont voici les principales fonctionnalités :

  • gestion unifiée des courriers, contacts, calendriers, tâches, fichiers et ressources partagées ;
  • gestion des utilisateurs via LDAP ;
  • accès par interface web (Roundcube) ou IMAP ;
  • prise en charge des protocoles CalDAV/CardDAV/WebDAV et ActiveSync pour synchronisation mobile et bureau.

Gestionnaire de tâches

Bien que la distribution de référence pour le développement et la mise en production de Kolab soit RHEL/CentOS, des paquets Debian sont disponibles. La version 3.2, sortie le 14 février 2014 a apporté des paquets Debian de bien meilleure qualité, ce qui m'a incité à migrer.

La suite de la dépêche présente l'historique du projet, l'architecture de la solution et un retour d'expérience d'installation sous Debian Wheezy.

Sommaire

Logo Kolab

Versions commerciales

Kolab System, l'entreprise derrière le projet, propose deux produits commerciaux :

  • l'offre grand public MyKolab : du "cloud", mais hébergé en Suisse ;
  • l'offre entreprise Kolab Entreprise : installation et support sur votre matériel.

Architecture de la solution

La principale force du projet est de réutiliser le maximum de composants standards, réduisant ainsi l'effort de développement et de maintenance des fonctionnalités de base, afin de se concentrer sur les fonctionnalités spécifiques.

Pour les DSI en herbe, voici un schéma des différentes briques logicielles dont le projet est constitué.

Transport des courriels : Postfix

Rien que du classique ici : Postfix pour la réception et l'envoi des courriels, et le trio AMaViS + SpamAssassin + ClamAV pour le filtrage antivirus / antispam.

Stockage et authentification : IMAP et LDAP

Le point d'orgue de la solution Kolab est de stocker toutes les données de l'utilisateur dans son compte IMAP. Chaque contact, chaque évènement de calendrier, chaque tâche à réaliser, est stocké comme pièce jointe d'un courriel dans le dossier idoine. Pour cela, les formats ouverts xCal et xCard (dérivés XML des fameux iCal et vCard) sont utilisés.
Ainsi, plutôt que de développer de zéro un serveur de stockage, un système d'authentification et un système de gestion des droits d'accès, l'équipe s'est basée sur le serveur IMAP Cyrus-IMAP.

La gestion des comptes utilisateurs est confiée à un serveur LDAP, par défault 389 Directory Server. Le démon kolabd est en charge de la synchronisation des informations entre les serveurs LDAP et IMAP (création des boîtes aux lettres, partages de dossiers…).

Interface utilisateur : Roundcube

Après avoir utilisé Horde pendant trois ans, Kolab a migré en 2012 vers Roundcube. Plusieurs greffons étendent les fonctionnalités de base du webmail pour l'interfacer avec le serveur.

Derrière le capot, rien que du classique LAMP dans la configuration par défaut.

Synchronisation : sabre/dav et synchrotron

Avant la refonte 3.0, le projet Kolab développait de nombreux connecteurs "natifs" (Thunderbird, Outlook, Android, iOS…) communiquant directement avec le serveur IMAP. Devant la difficulté à maintenir autant de connecteurs, la décision fut prise d'utiliser des protocoles d'échange compris par chacune des plateformes.

Les protocoles calDAV/cardDAV/webDAV sont pris en charge par le célèbre serveur Sabre/DAV, allant piocher directement dans le serveur IMAP.

Le protocole ActiveSync est quant à lui pris en change par Syncroton.

Installation sous Debian Wheezy

L'installation est plus ardue qu'un logiciel 100% PHP comme owncloud, mais des paquets sont disponibles pour les principales distributions, permettant d'automatiser grandement le processus.

Le guide d'installation a désormais une section spécifique à Debian.

Activation des dépôts

Il suffit d'ajouter les dépôts à apt-get, lancer la commande : apt-get install kolab et aller faire chauffer le thé.

Configuration initiale

Les paquets actuels pour la version 3.2 possèdent un bug bloquant dans le script de configuration. Pour le corriger, lancer les commandes suivantes :

wget --no-check-certificate  https://issues.kolab.org/attachment.cgi?id=698 -O /tmp/setup_roundcube.patch
cd /usr/share/pyshared/pykolab/setup
patch < /tmp/setup_roundcube.patch

Il suffit ensuite de lancer la commande : setup-kolab

Le plus simple est de confirmer tous les mots de passe par défaut, tout en copiant dans un coin le mot de passe du Directory Manager, qui nous servira à créer le premier utilisateur.

Création du premier utilisateur et accès

Tout se passe dans votre navigateur, à l'adresse $HOST/kolab-webadmin. Je vous renvoie encore une fois au manuel d'installation.

Lors de la création de votre utilisateur, ajoutez-le dans le groupe kolab-admin et oubliez simplement que Directory Manager existe !

Une fois l'utilisateur créé, vous pouvez accéder au webmail via $HOST/roundcubemail.

Synchronisation mobile

Pour la synchronisation Android, j'utilise l'excellent DAVdroid, ou plutôt son fork par l'équipe de Mirakel, qui permet de synchroniser les tâches en plus des contacts et calendriers.

Il suffit de paramétrer DAVdroid avec comme adresse : $HOST/iRony/

La synchronisation ActiveSync est prise en charge à la racine du domaine (module syncroton), la configuration est donc automatique. Idem pour les appareils Apple qui trouveront automatiquement les ressources cardDAV/calDAV via le dossier virtuel /.well-known/.

Partage WebDAV et module fichiers

Les fichiers sont accessibles à l'adresse $HOST/iRony/files/ avec tout bon client WebDAV.

Le projet ne fournit pas de client dédié pour la synchronisation, mais vous pouvez utiliser toute application générique, comme Syncany par exemple.

En bonus : le client web permet de prévisualiser les fichiers multimedia, les ODF, les PDF, mais aussi de modifier les fichiers texte avec coloration syntaxique !

Exemple

Le module fichiers étant le plus jeune de la famille, il n'est pas aussi abouti que les autres, mais de solides bases sont déjà là.

Clients pour le bureau

Le client privilégié pour le bureau est bien entendu Kontact du projet KDE. Il permet de profiter de l'intégralité des fonctionnalités de Kolab, dont la synchronisation des notes et des journaux (que le client web ne gère pas encore).

Pour les inconditionnels de Thunderbird et Lightning, deux greffons existent :

Pour les utilisateurs sous Windows, Kolab gère ActiveSync et fonctionne donc avec Outlook.

Quelques optimisations et configurations maison

Utiliser le prénom comme nom d'utilisateur

La configuration par défaut est d'utiliser le nom de famille comme nom d'utilisateur. Ceci est OK dans un contexte professionnel, mais assez étrange dans le cadre d'un serveur perso. Il suffit de modifier le fichier /etc/kolab/kolab.conf. Voici mes modifications :

policy_uid = %(givenname)s.lower()
primary_mail = %(givenname)s@%(domain)s
secondary_mail = {
        0: {
        "{0}@{1}": "format('%(givenname)s.%(surname)s', '%(domain)s')"
        }
        }

Effacez les doublons éventuels de ces variables en fin de fichier, dans la section spécifique au domaine. Pour que les modifications soient prises en compte, redémarrer le service kolab-server

Utiliser une adresse externe

Vous avez probablement plusieurs adresses et souhaitez pouvoir les utiliser. Pour cela :

  • enregistrez vos adresses externes dans votre compte utilisateur (via web admin panel)
  • modifiez dans le fichier /etc/kolab/kolab.conf la directive suivante : address_search_attrs = mail, alias, mailalternateaddress
  • dans /etc/roundcubemail/config.inc.php ajoutez 'email:external' => 'mailalternateaddress', à la variable $config['kolab_auth_addressbook']
  • créez une nouvelle identité dans la configuration de Roundcube

Installation d'APC

APC est un module PHP permettant de conserver en mémoire le bytecode préparé pour exécution. Il permet donc de réduire significativement la latence lors des requêtes. Sous Debian Wheezy, son installation se résume à la commande apt-get install php-apc. L'administrateur chevronné pourra configurer aux petits oignons par la suite.

Configuration de MySQL

Le projet Kolab a fait le choix d'utiliser MySQL pour Roundcube. MySQL est souvent décrié pour ses mauvaises performances, mais une configuration adaptée permet d'améliorer grandement la donne.
La configuration par défaut dans Debian vise à utiliser le minimum de mémoire, au détriment des performances. Cependant, plusieurs exemples de configuration sont disponibles dans /usr/share/doc/mysql-server-5.5/examples/.
Pour mon VPS possédant 1 Go de mémoire vive, j'ai choisi la configuration my-large. L'installation se résume à :

zcat /usr/share/doc/mysql-server-5.5/examples/my-large.cnf.gz > /etc/mysql/my.cnf`

Désactivation de ClamAV

Si, comme moi, vous savez qu'il ne faut pas ouvrir une pièce jointe binaire, l'antivirus ClamAV installé par défaut ne vous sert à rien et consomme plusieurs centaines de Mo.
Les paquets de Kolab ayant une dépendance forte vers ClamAV, la solution la plus simple est donc de créer un faux paquet clamav-daemon avant l'installation de Kolab.
Amavis et spamassassin fonctionneront toujours sans autre configuration nécessaire.

Note : On peut aller plus loin en désactivant AMaViS et SpamAssassin pour utiliser DSPAM, ce qui permet de faire tourner Kolab dans un VPS doté de 512 Mo de RAM. Ceci demande de modifier la configuration de Postfix à la main.

Le mot de la fin

Le projet Kolab a repris du poil de la bête ces dernières années et la version 3.2 est réellement mature et utilisable dans un contexte personnel avec un minimum de configuration. Le parti pris de réutiliser des briques logicielles éprouvées donne une solution robuste et maîtrisée.

Et les développeurs ne sont pas près de s'endormir sur leurs lauriers. Parmi les fonctionnalités à venir, nous pouvons compter :

  • l'intégration de jabber/xmpp dans Roundcube ;
  • indexation des courriels pour accélérer la recherche et l'intégration dans Roundcube d'une recherche simultanée dans tous les dossiers ;
  • édition collaborative de documents via le module fichiers.

En bon geek, j'aurais bien entendu préféré utiliser comme d'habitude slapd, PostgreSQL, Dovecot… Mais l'apprentissage de ces nouvelles solutions vaut le coup, tant l'ensemble est bien intégré et performant.

Après l'essai de nombreuses solutions, il s'agit selon moi de la solution de travail collaboratif libre la plus aboutie du marché.

Lire les commentaires

par xvello, BAud, palm123, Benoît Sibaud, Pierre Jarillon, Nils Ratusznik

DLFP - Dépêches

LinuxFr.org

Entretien avec GValiente à propos de Butano

 -  16 avril - 

GValiente développe un SDK pour créer des jeux pour la console Game Boy Advance : Butano.Cet entretien revient sur son parcours et les raisons (...)


Nouveautés d'avril 2024 de la communauté Scenari

 -  11 avril - 

Scenari est un ensemble de logiciels open source dédiés à la production collaborative, publication et diffusion de documents multi-support. Vous (...)


Annuaire de projets libres (mais pas de logiciels)

 -  9 avril - 

Les communs sont une source énorme de partage !S’il est plutôt facile dans le monde francophone de trouver des ressources logicielles (Merci (...)


Les enchères en temps réel, un danger pour la vie privée mais aussi pour la sécurité européenne

 -  7 avril - 

Les enchères en temps réel, ou Real-Time Bidding (RTB), sont une technologie publicitaire omniprésente sur les sites web et applications mobiles (...)


XZ et liblzma: Faille de sécurité volontairement introduite depuis au moins deux mois

 -  31 mars - 

Andres Freund, un développeur Postgres, s’est rendu compte dans les derniers jours que xz et liblzma ont été corrompus par l’un des mainteneurs du (...)