Outils pour utilisateurs

Outils du site


expert:thunderbird_comme_client_ms_exchange_avec_davmail

Thunderbird comme client MS Exchange avec DAVMAIL

Malgré l'existence d'excellentes solutions libres de serveurs de messagerie et “groupware”, Microsoft Exchange est encore répandu, ce qui est une disgrâce en soi, mais en plus il n'est pas évident de le faire dialoguer avec le client de messagerie de son choix. Sur Linux on ne va pas payer et installer Outlook, il y a bien l'interface web “owa” via un navigateur Internet mais ça n'est pas très élégant de devoir lancer son navigateur juste pour les courriels professionnels, et l'on perd les fonctions avancées du client de messagerie. Pour remédier à cette situation nous allons utiliser davmail comme passerelle pour permettre à Thunderbird (Icedove sur Debian), ou n'importe quel autre client de messagerie de votre choix (evolution, mutt, claws-mail, kmail, etc…), d'accéder à un compte sur un serveur MS Exchange.
Davmail permet également de synchroniser un calendrier (caldav), un carnet d'adresse LDAP ou carddav (avec l'extension “SOGo connector” pour Thunderbird). Exchange 2003 (et antérieur), 2007 et 2010 sont supportés.

MS Exchange est un logiciel propriétaire édité par Microsoft, ce tutoriel a pour but de faciliter l'usage de clients de messagerie et de systèmes libres malgré la nécessité d'utiliser un compte de messagerie Exchange. Comme pour tout logiciel non libre l'éditeur peut à tout moment changer son mode de fonctionnement et compromettre le fonctionnement des applications tierces. Même si davmail est un outils très efficace il peut cesser de fonctionner en raison de changements internes à Exchange, la bonne solution consistant à éviter l'utilisation d'Exchange et de logiciels propriétaires en général. Des alternatives libres d'excellente qualité existent.

Principe de fonctionnement

davmail est un programme écrit en langage java, il est donc multi-plateformes et sera utilisable aussi bien sous Windows que sur une distribution Linux ou encore Mac OS. Bien évidement davmail est un logiciel libre sous licence GPL.

davmail agit comme une passerelle entre votre client de messagerie et le serveur Exchange, c'est davmail qui va effectuer le gros du travail en dialoguant avec le programme de Microsoft, et transmettra les données dans un format familier à votre programme de messagerie. Davmail peut être utilisé de deux façons, soit installé sur le même poste que celui où fonctionne votre logiciel de messagerie, il communiquera alors avec celui-ci sur la boucle local (lo), soit installé de manière centrale sur un réseau local par exemple d'où il pourra être interrogé par plusieurs clients de messagerie.


Image reproduite avec l'aimable autorisation de Mickaël Guessant (auteur principal de Davmail).

Installation

Les pré-requis sont la présence d'une environnement d'exécution (“jre”) Java (sun-java-jre ou openjdk-jre par exemple), il faut également que le serveur Exchange soit configuré pour autoriser l'accès web “owa”, si vous pouvez accéder à votre compte de messagerie avec un navigateur Internet c'est le cas.

davmail est téléchargeable à partir de son site, pour les distributions à base de paquets “deb” (Debian,[K,L,X]Ubuntu, Mint …etc) un paquet “.deb” est disponible, cela permet de d'obtenir une installation facile avec création de menu de lancement, et possibilité de désinstaller davmail avec votre gestionnaire de paquets habituel. Une version 64bits est également disponible.

Pour les autres systèmes Linux, téléchargez l'archive au format “.tgz” qui correspond à votre architecture (x86 ou x86_64) et décompressez l'archive où vous voulez. À l'intérieur du répertoire obtenu vous trouverez un script shell “davmail.sh” qu'il suffit d'exécuter pour lancer davmail. Si vous voulez créer un raccourci (un “lanceur”) vers davmail n'oubliez de donner les droits d'exécution au script :

$ chmod +x /chemin/vers/davmail.sh

Si vous préférez la souris faite un clic-droit sur le script “davmail.sh”, choisissez “propriétés” et naviguez ensuite vers un onglet “permissions” ou “droits”, là cocher la case “est exécutable” ou “autoriser l'exécution comme un programme”.

Pour créer un lanceur utilisez comme commande de lancement le chemin complet vers le script “davmail.sh”. Si vous voulez en plus une belle icône regardez dans l'archive java “davmail.jar” (même répertoire que “davmail.sh”). Avec un navigateur de fichiers un simple clic dans nautilus, dolphin, thunar ou équivalent devrait vous permettre de naviguer dans l'archive, sinon regardez du côté des programmes “file-roller” (Gnome) ou “ark” (KDE). Vous pourrez ainsi copier l'icône de davmail où bon vous semble (par exemple /usr/share/pixmaps) et l'intégrer à votre lanceur.

Si vous avez un usage constant de vos courriels via Exchange vous pouvez lancer davmail en même temps que votre session, pour cela vous utiliserez un des utilitaires de votre environnement de bureau (Gnome, KDE, xcfe etc…) pour gérer les programmes lancés au démarrage.
Bien sur vous pouvez aussi lancer davmail à la demande, mais votre client de messagerie renverra sans doute des erreurs au lancement si davmail n'est pas en fonctionnement lors d'une tentative d'accès aux comptes Exchange.

Utilisation

L'utilisation de davmail est très simple lorsqu'on a bien compris son fonctionnement. Le client de messagerie (Thunderbird dans notre exemple) ne communiquera jamais directement avec le serveur Exchange, mais avec davmail qui agit comme une passerelle, il faudra se souvenir de cette architecture lors de la configuration du client mail car le “serveur” de courrier sera “localhost” (installation de davmail sur la même machine que le client de messagerie) ou l'adresse de la machine supportant davmail, et non celle du serveur Exchange.

Voyons la fenêtre de préférence de davmail avec les ports utilisés par défaut (personnalisable). Pour ouvrir les préférences faite un clic-droit sur l'icône de davmail dans la barre des tâches.


L'url a renseigner est celle qui vous permet d'accéder à l'interface “owa” de votre messagerie Exchange dans une navigateur Internet. Elle sera sans doute de la forme “https://sismail.itcrowd.org/owa” ou “sismail.itcrowd.org” sera remplacé par l'url de votre organisation. Avec Exchange 2003 la fin de l'url est “exchange” au lieu de “owa”.

Pour arrêter un des services il suffit d'effacer le port par défaut et de laisser l'entrée vide. Comme davmail communique avec le serveur Exchange à travers une connexion sécurisée https il n'est pas besoin d'ouvrir de port particulier dans le pare-feu ou de faire du “NAT” (redirection) avec les routeurs/box. Si davmail est utilisé en position de serveur central il faudra en revanche s'assurer que les ports soient accessibles aux clients.
Les autres onglets donnent accès aux réglages avancés, si vous en avez l'usage vous saurez sans doute comment les renseigner, sinon laisser la configuration par défaut. “Proxy” concerne les proxys (ça alors !), “Chiffrement” offre la possibilité d'utiliser ssl pour la communication avec des clients distant (voir paragraphe “Sécurité plus bas), “Traces” permet de configurer le niveau de journalisation.

Dans le dernier onglet vous pourrez désactiver le “popup” de démarrage, forcer l'effacement immédiat des messages sur le compte Exchange lorsqu'ils sont supprimés par imap, et activer le protocole spécifique à Exchange 2010 (cocher “Activer EWS”, ce mode fonctionne aussi pour Exchange 2007 sans support owa).

Configuration du client de messagerie (Thunderbird)

Nous prenons comme exemple Thunderbird (Icedove sur Debian), n'hésitez pas à compléter avec la procédure pour votre logiciel libre de messagerie favori. On suppose que davmail est utilisé en mode local, c'est à dire qu'il fonctionne sur la même machine que le client de messagerie.

Imap et smtp

Tout commence par la création d'un nouveau compte, nous utiliserons le protocole “imap” qui est plus souple que le traditionnel “pop”, même si les deux sont possibles, il suffit alors de pointer vers le port correspondant de davmail.

Ouvrez le gestionnaire de comptes (menu Édition > paramètres des comptes) et ajoutez un nouveau compte de messagerie :

Renseignez les champs comme il se doit, notre exemple est purement fictif :

Dans la fenêtre de paramètres des serveurs imap et smtp attention aux détails, le nom d'utilisateur doit être précédé du nom de domaine, séparé par un antislash “\”. Le serveur est dans les deux cas “localhost” car on suppose ici que davmail est utilisé en mode local. Les ports sont ceux présents dans le panneau de configuration de davmail, ici vous voyez les ports que davmail utilise par défaut. Pour finir la configuration cliquez sur le bouton “configuration manuelle”.

La configuration en imap doit ressembler à la capture ci-dessous. Ne sautez pas tout de suite au plafond en voyant que l'authentification s'effectue en clair, n'oubliez pas que nous sommes ici dans le cas où davmail et le client de messagerie sont sur la même machine et communiquent sur la boucle locale (lo). Si un pirate peut lire vos données à ce niveau c'est que vous avez d'autres soucis plus urgents que davmail ! Sur une configuration multiseat (plusieurs utilisateurs simultanés sur un même système) ou en cas de paranoïa on pourra toujours utiliser ssl (voir plus bas paragraphe “Sécurité”).

Configurez de même le serveur d'envoi smtp

Normalement vous devriez commencer à voir votre boite se remplir des messages de votre compte Exchange.

Calendrier

Pour utiliser la fonction de calendrier partagé avec Thunderbird il vous faudra utiliser l'extension de calendrier "lightning" (iceowl-extension sur Debian). Une fois celle-ci en place rendez-vous dans le menu “Fichier > nouveau > agenda” et choisissez dans la première fenêtre “réseau” comme type de calendrier. La seule étape critique est celle décrite dans la capture d'écran, comme format de calendrier choisissez “Caldav”, et comme “emplacement” entrez une url de la forme : ”http://localhost:1080/users/supertux@itcrowd.org/calendar“ où “supertux@itcrowd.org” sera à remplacer par votre adresse de courriel Exchange, et le numéro de port “1080” devra correspondre à la configuration de davmail.

N'oubliez pas lorsque vos identifiant vous seront demandés de faire précéder votre nom d'utilisateur par le domaine, itcrowd\supertux.

Intégration LDAP (serveur d'annuaires)

Pour l'intégration d'un annuaire ldap ouvrez le gestionnaire de contacts, et là rendez vous dans le menu “fichier > nouveau > annuaire LDAP”.

Remplissez les champs comme indiqué sur la capture, “Nom” est libre, “Nom d'hôte” est “localhost”, “Nom de base” est ou=people, le port est celui configuré dans davmail, et enfin votre login sous la forme “domaine\identifiant”.

Ne cochez pas la case “Utiliser … SSL”, nous sommes ici dans le cas d'une utilisation de davmail sur la même machine que le client de messagerie.

L'onglet “Hors connexion” vous permet de créer une copie locale du carnet d'adresses ldap, et dans l'onglet “Avancé” vous pourrez choisir le nombre maximum de contacts à afficher et quelques autres options.

Pas indispensables mais très pratiques, deux extensions qui rendent la vie plus simple à savoir :

  • Multi-LDAP du projet Trusted Bird qui permet de définir plus d'un annuaire LDAP comme source de recherche et d'auto-complétion.
  • Contacts Sidebar qui affiche les carnets d'adresses dans le panneau latéral, et permettra la recherche rapide dans les annuaires LDAP également. Pour le moment les utilisateurs de Thunderbird 3.x devront utiliser la version de développement disponible sur le site de l'auteur.

Pour bénéficier de l'auto-complétion des adresses avec les annuaires LDAP rendez-vous dans les préférences de Thunderbird, rubrique “Rédaction” et onglet “Adressage”. Là vous pourrez choisir quel(s) annuaire(s) utiliser, pour pouvoir en utilisez plusieurs simultanément vous devez installer l'extension Multi-LDAP (voir ci-dessus).

Intégration Carddav

Pour interfacer Thunderbird avec les fonctionnalités Carddav d'Exchange vous devrez installer l'extension “SOGo Connector” de la société Inverse (éditeur du groupware libre SOGo). Sur la page de téléchargement choisissez “SOGo Connector Thunderbird extension” (clic droit > enregistrer la cible du lien).

Une fois l'extension installée et Thunderbird redémarré vous pourrez créer un nouveau carnet d'adresses distant au format Carddav. Rendez-vous dans le gestionnaire de carnets d'adresses, menu “fichier > nouveau > Carnet d'adresses distant”.

Dans la fenêtre de configuration donnez un nom quelconque au carnet, et comme url utilisez : ”http://localhost:1080/users/supertux@itcrowd.org/contacts“
en remplaçant “supertux@itcrowd.org” par votre adresse de courriel. Lors de la première synchronisation (“clic droit > synchroniser” dans le gestionnaire de carnets d'adresses) vos identifiants vous seront demandés, utilisez comme nom d'utilisateur le couple domaine\identifiant Active Directory, ou pour Exchange 2007 et supérieur votre adresse de courriel. Entrez ensuite votre mot de passe.

davmail en mode centralisé

Si vous utilisez davmail en mode centralisé pour servir plusieurs clients de messagerie la passerelle sera installée sur le serveur Exchange lui-même ou un autre poste accessible aux clients. Dans cette configuration les clients devront être configurés non pas avec comme nom d'hôte davmail “localhost” mais l'adresse de la passerelle davmail distante. Les ports nécessaires devront être ouverts sur la passerelle, et éventuellement redirigés (NAT) si un routeur/“box” se trouve entre la passerelle et les clients. Dans ce mode aucune installation de davmail n'est nécessaire sur les clients, juste une configuration adéquate et l'installation des extensions pour bénéficier de certains services (Carddav, multi-ldap, voir plus haut).
Dans cette configuration la communication entre les postes clients et la passerelle devra être sécurisée, voyez le paragraphe suivant “Sécurité” pour plus de détails.

Sécurité

Le fichier de préférences de davmail est stocké par défaut dans ~/.davmail.properties, attention aux droits sur ce fichier car il contient des informations sensibles comme le mot de passe des certificats SSL. Par défaut il possède des droits à 640 (-rw-r—–). Vous pouvez faire des modifications directement dans ce fichier, elles seront prises en compte au lancement suivant de l'application.

Par défaut davmail communique avec le serveur Exchange via une connexion sécurisée https, mais en revanche il communique en clair avec les clients. Concrètement cela ne pose pas vraiment de problème si davmail est installé sur le même poste que le client, mais c'est inacceptable si davmail est utilisé en position de serveur sur un réseau local, ou pire à travers le réseau Internet.

Heureusement il y a un remède simple, l'établissement d'une connexion SSL entre davmail et les clients par le biais d'un certificat SSL. Si vous possédez déjà un tel certificat il suffit d'en indiquer le chemin dans les préférences de davmail, onglet “Chiffrement”. Si vous ne possédez pas un tel certificat nous allons en créer un auto-signé.

$ keytool -genkeypair -alias davmail -keystore .keystore -storetype pkcs12 -validity 1460 -dname cn=davmail@hostname.truc,ou=davmail,o=sf,o=net

Remplacez “davmail@hostname.truc” par le nom d'hôte de davmail. Au lieu d'une clé utilisant l'algorithme “dsa” (par défaut) vous pouvez spécifier “rsa” avec une taille (“keysize”) de 2048 (-keyalg rsa -keysize 2048). D'après la documentation de davmail les clés dsa peuvent poser des problèmes aux périphériques Mac (itruc).
Un mot de passe vous sera demandé (deux fois pour vérification) et sera associé au certificat, et vous trouverez ensuite votre certificat tout neuf à l'adresse indiquée par l'option -keystore (ici on se contente de donner le nom par défaut, il sera donc créé comme ~/.keystore). Nous avons donné une validité de 4 ans au certificat (-validity 1460, soit 365*4), la durée de validité est exprimée en jours.

Pour importer le certificat dans davmail procédez comme sur la capture d'écran ci-dessous, comme nous sommes dans le cas d'une authentification entre davmail et les clients de messagerie c'est le cadre du haut “Certificat serveur” qui nous concerne :

À moins que vous n'ayez spécifié deux mots de passe distincts vous devez saisir le même dans les deux champs, celui utilisé au moment de la création du certificat SSL avec “keytool”. Le comportement par défaut de keytool est d'utiliser le mot de passe de l'option “keystore” implicite, mais on peut également utiliser “keypass” pour avoir deux mots de passe différents pour la clé et le conteneur du certificat.

:!: N'oubliez pas que davmail va immédiatement basculer tous les services en mode SSL, et que les clients de messagerie devront être configurés pour également utiliser SSL sinon la connexion leur sera refusée par davmail. Pour IMAP, POP ou SMTP il faudra choisir “TLS/SSL” comme “Sécurité de la connexion” dans les Paramètres des comptes Exchange. Pour les carnets d'adresses ldap, Carddav et les calendriers Caldav il faudra mettre un https en début d'url ou cocher “utiliser ssl” (LDAP). Il est possible de désactiver SSL pour chaque service dans les préférences de davmail, mais comme il suffit d'un envoi de mot de passe en clair interceptée pour que le compte Exchange soit compromis dans son ensemble c'est une mauvaise idée.

Soyons clair, un tel certificat auto-signé ne garanti pas grand chose, il offre juste l'intérêt de faire basculer les connexions entre les clients et davmail en https, et donc de sécuriser les communications. Si vous voulez un véritable certificat vous pouvez en obtenir gratuitement auprès de différentes autorités de certification (cherchez “free ssl certificat” ou “certificat ssl gratuit” dans votre moteur de recherche), et bien sur vous pouvez en acheter un. Lisez attentivement les conditions d'utilisation et de validité des certificats gratuits, ainsi que les conditions de respect des informations privées que vous serez obligé de fournir lors de la demande d'un certificat.

Comme notre certificat n'est pas garanti par un “tiers de confiance” il nécessitera l'acceptation par les utilisateurs des clients de messagerie d'une “exception de sécurité”. Mieux vaut en informer clairement vos utilisateurs, et également les éduquer sur le fait que cette procédure est nécessaire une fois pour votre certificat auto-signé, mais ne dois pas banaliser l'acceptation de certificats douteux ! Voici comment se présente la demande d'acceptation du certificat dans Thunderbird :

La capture d'écran concerne un test en local, normalement c'est l'adresse et le port de l'hôte faisant tourner davmail qui apparaissent dans le champ “adresse”.

Une fois le certificat accepté on peut le consulter dans Thunderbird menu “Préférences > Avancé > Certificats > voir les certificats”. Il est également possible de l'exporter depuis Thunderbird pour le sauvegarder ou le réutiliser.

Si vous devez utiliser une authentification forte entre davmail et le serveur Exchange je vous renvoi à la procédure décrite dans la documentation de davmail (paragraphe “DavMail to Exchange”), je ne l'ai pas utilisé personnellement.

J'espère que cette présentation pourra vous aider à supporter d'avoir à travailler avec Exchange, bien entendu la meilleur solution serait de convaincre les personnes responsables d'utiliser un “groupware” libre, mais en attendant davmail vous servira d'interprète.

Liens

expert/thunderbird_comme_client_ms_exchange_avec_davmail.txt · Dernière modification: 2014/05/09 18:56 (modification externe)