Un premier client XMPP : Gajim

Interface principale de Gajim

Maintenant que notre serveur XMPP est en place et qu’il est protégé un minimum, il serait temps de commencer à l’utiliser ! Et pour cela, il nous faut un client. XMPP je vous le rappelle regroupe un ensemble de standards ouverts, c’est pourquoi de nombreux clients et de nombreuses implémentations existent. Par exemple si vous utilisez Thunderbird pour lire vos emails, sachez que celui-ci embarque un client XMPP nativement, que vous pouvez d’ailleurs utiliser pour le chat Facebook. Et oui, Facebook utilise aussi une version maison de XMPP pour son chat. Tout comme Google pour son Hangout. Google qui contribue fortement à Jabber à travers la librairie Jingle qui permet aujourd’hui d’établir des communication audio / vidéo via XMPP. Il devrait permettre à terme de partager tout contenu multimédia.

Mais je m’écarte.

Après avoir testé un panel de clients pour communiquer avec mon amie en Argentine, mon choix s’est finalement porté sur Gajim. Gajim ne fait que du XMPP, mais il le fait bien, contrairement à beaucoup d’autres clients implémentant XMPP parmi d’autres protocoles pas toujours correctement.

C’est un client écrit en Python, dont l’interface graphique s’appuie sur GTK+, et qui fonctionne donc sur toutes les plateformes, même s’il propose plus de fonctionnalités sous Linux. Parmi les plus intéressantes on trouve :

  • Support de TLS, SSL, GPG, et chiffrage point à point
  • Support de l’enregistrement des transports
  • Conversations audio / vidéo (en cours de finalisation sous Windows)
  • Transfert de fichiers
  • Système de plugins…

Je vous passe l’installation puisqu’elle est très simple : Gajim est sans doute déjà disponible dans les dépôts de votre distribution !

Lors du premier lancement, vous devrez ajouter votre compte à Gajim. Soit vous disposez déjà d’un compte, soit vous souhaitez en créer un à condition que votre configuration serveur l’autorise.

Ajouter un compte XMPP à Gajim

Rappel si vous avez besoin de créer un compte manuellement côté serveur, c’est avec la commande :

sudo metronomectl adduser test@guillaume-leduc.fr
Enter new password: 
Retype new password: 
User successfully added

Ajouter un compte XMPP à Gajim 2

La configuration est elle aussi vraiment très simple et sera rarement plus compliqué sur les autres clients…

Compte Gajim succès

A la dernière étape, il est fort possible que Gajim vous indique que le certificat présenté par le serveur n’est pas digne de confiance. C’est tout à fait normal puisqu’on fonctionne avec un certificat auto-signé… Ceci prouve d’ailleurs que Gajim contacte bien Mêtronôme via SSL. Vérifiez le certificat présenté et ignorez l’avertissement si la signature est bonne. Ou mieux, installez le certificat de votre autorité de certification dans Gajim afin de ne plus avoir d’avertissement (voir plus bas).

Avertissement certificat SSL Gajim

Installer son autorité de certification dans Gajim

Cette astuce n’a été testé que sous Ubuntu et dérivées.

Si vous avez suivi mes conseils en matière de gestion de certificats, c’est-à-dire en passant par votre propre autorité de certification, vous devriez avoir dans le dossier /usr/lib/ssl/misc/demoCA/ de votre serveur faisant office de CA, un fichier intitulé cacert.pem.

Récupérez ce fichier et modifiez-le via votre éditeur de texte favori pour ne garder que la fin : ce qu’il y a entre -----BEGIN CERTIFICATE----- inclus et -----END CERTIFICATE----- inclus. Au-dessus de -----BEGIN CERTIFICATE-----, ajoutez le nom de domaine de votre serveur XMPP, soit pour moi :

guillaume-leduc.fr
-----BEGIN CERTIFICATE-----
MIIEDTCCAvWgAwIBAgIJAOF2V+gopyLBMA0GCSqGSIb3DQEBBQUAMIGcMQswCQYD
VQQGEwJGUjERMA8GA1UECAwIQnJldGFnbmUxHTAbBgNVBAoMFExlIGJsb2cgZGUg
R3VpbGxhdW1lMREwDwYDVQQLDAhOZXR3b3JrczEfMB0GA1UEAwwWd3d3Lmd1aWxs
YXVtZS1sZWR1Yy5mcjEnMCUGCSqGSIb3DQEJARYYYWRtaW5AZ3VpbGxhdW1lLWxl
ZHVjLmZyMB4XDTEzMTEyNzA5Mjg1MVoXDTE2MTEyNjA5Mjg1MVowgZwxCzAJBgNV
BAYTAkZSMREwDwYDVQQIDAhCcmV0YWduZTEdMBsGA1UECgwUTGUgYmxvZyBkZSBH
dWlsbGF1bWUxETAPBgNVBAsMCE5ldHdvcmtzMR8wHQYDVQQDDBZ3d3cuZ3VpbGxh
dW1lLWxlZHVjLmZyMScwJQYJKoZIhvcNAQkBFhhhZG1pbkBndWlsbGF1bWUtbGVk
dWMuZnIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDHgno0+1tcdlWs
NZ1twwVqTw4jEi1ggnFhKQDncFOh6qnvuKgxxtTWLlcFcoGP04KJ69q/FdEc+Bau
QEtD91pDgqPbhoTeCaqsdqsdqsdsdsdsdddEz00g/ispf9NCrF4HMuOWynw+JhE4
vp7SicK4PnXfGlFDUJ08PNx0lQgEYUwxUGT2k8+AjgXbER+VCHBo9cOumDwd5M6i
ed40zLgi+aqvD0d0e8XopSRN7ijDHFOEAeIkqtKpA2/xCsEAmKtrMF8LkQqzfNPj
IA7a4h0DAgMBAAGjUDBOMB0GA1UdDgQWBBQcPhCp3Ge32WDxtIIX5+unwaINnDAf
BgNVHSMEGDAWgBQcPhCp3Ge32WDxtIIX5+unwaINnDAMBgNVHRMEBTADAQH/MA0G
CSqGSIb3DQEBBQUAA4IBAQB/1h9n3Td2ctEwIOdmTU1g/yzreGh5ZTKUsWNKoCAp
0mgDF780sPfOubgnVB+rFkvg45N2QmDMl8ChwCcN95lx8jaxaoXKF2hlJVyb61H/
lKIDVNdY/rte9E2AMcgiJ9IeXFOrsfk7XA1znqoRTdm41fJiHwjkrNSW4SUnMuw+
Tzvz/UXl0+r1wzqB1r6z3ljkXDW4EL7jHLx1tnyXKS8W3D+KhrKLz10J57GpT7+A
R4+t0tg8TqgU/2HSCXN0feIqWQGd2Kfpar4LuZwsoEfuA8MsWk4Sq7M5kndhV2CR
/CQrCmdSiDVpbb5BOR0pI3spVpXH/3vJqnvT86/TM3Lh
-----END CERTIFICATE-----

Enregistrez votre fichier sous le nom cacerts.pem, dans le dossier ~/.local/share/gajim/. Et c’est tout ! Au prochain redémarrage de Gajim, celui-ci fera confiance à tous les certificats signés par votre autorité de certification personnelle, incluant donc le certificat de votre serveur XMPP !

Si vous utilisez Gajim sous Windows 7 et ultérieur, placez le fichier Cacerts.pem (oui avec une majuscule…) dans le dossier C:\Users\UTILISATEUR\AppData\Roaming\Gajim.

Fonctionnalités intéressantes de Gajim

Discussions par onglet

Gajim regroupe vos conversations via des onglets afin d’éviter d’avoir une dizaine de fenêtres ouvertes sur votre bureau…

Conversation par onglets

Texte enrichi et émoticônes

Si vous discutez avec un contact qui utilise aussi Gajim, vous avez la possibilité d’enrichir votre texte avec une mise en forme de base et des émoticônes.

Émoticônes Gajim

Mise en forme du texte

Gajim vous indique aussi si votre contact participe à la discussion ou pas, et vous indique qu’il est absent si celui-ci n’a réalisé aucune action sur son ordinateur depuis 5, puis 15 minutes.

Notifications

Notifications2

Autant de petites fonctionnalités qui améliorent grandement l’expérience utilisateur.

Chiffrement et identification des contacts

Mais là où Gajim est intéressant, comme bon nombre de client XMPP, c’est qu’il propose du chiffrement End 2 End (point à point). C’est à dire que Gajim chiffre votre communication avant de l’envoyer sur le réseau, et il n’y a que votre contact qui sera en mesure de le déchiffrer. C’est particulièrement utile si vous n’utilisez pas votre propre serveur XMPP par exemple.

En plus d’utiliser du chiffrement E2E, Gajim vous permet d’identifier vos contact via l’échange d’une clé. Pour vérifier un contact, vous et la personne avec qui vous discutez devez cliquer sur le petit bouclier.

Identification d'un contact

Gajim vous demande alors de vérifier que la chaîne de caractère qui vous est présentée est strictement la même, ceci afin de vous assurer que vos échanges ne sont pas interceptés, ou que vous parlez bien à la personne désirée. Il est conseillé d’utiliser le téléphone ou un autre moyen de communication sûr pour vérifier cette chaîne.

Identification d'un contact2

Identification d'un contact3

Si tout va bien Gajim fait alors entièrement confiance à votre contact.

Contact identifié

Sachez que pour le chiffrement E2E, Gajim supporte très bien OpenGPG, ainsi que OTR (via l’utilisation du plugin Off-The-Record Encryption).

Gestionnaire de modules

En parlant de plugins, Gajim intègre un gestionnaire de plugins lui aussi très intuitif via « Outils > plugins », les images parlent d’elles-mêmes…

Gestionnaire de plugins Gajim

Gestionnaire de plugins Gajim2

Envoi de fichiers

Le protocole XMPP permet aussi à leurs utilisateurs de s’échanger des fichiers. Bon entre la France et l’Argentine je n’ai pas eu de résultats très probants en termes de débits, mais ça fonctionne. D’après ce qu’on peut lire sur Internet, l’intérêt de cette solution est qu’elle traverserait facilement les NAT et fonctionnerait en peer-to-peer (ce que je n’ai pas vérifié), afin d’alléger la charge serveur.

Conversations audio / vidéo

La rédaction des specs concernant la libraire Jingle n’est pas finalisée à l’heure où j’écris ces lignes, même si elle est à un stade suffisamment avancée pour que certains clients commencent à l’implémenter. C’est le cas de Gajim, qui ne propose cette fonctionnalité que sous Linux pour le moment. Cependant la version 0.16, qui devrait sortir d’ici peu de temps, doit pallier à cette lacune sous Windows.

Mon amie étant sous Windows c’est donc quelque chose que je n’ai pas pu essayer pour le moment, mais j’ai vraiment hâte. Gajim serait alors une solution parfaite pour remplacer Skype, beaucoup plus sûre.

En bref

Vous n’avez ici qu’un rapide aperçu des possibilités offertes par Gajim ! Une semaine environ que je l’utilise de manière intensive avec un contact en Argentine, mon serveur XMPP étant hébergé chez OVH, à Roubaix. Aucun problème rencontré pour le moment (si ce n’est le faible débit pour l’échange de fichiers). Ce petit outil vraiment léger est réactif, stable et fiable. Je vous le recommande fortement !

Gajim supporte aussi les salons de discussions. Il est donc tout à fait utilisable comme service de messagerie instantanée en entreprise par exemple.

Cet article vous a plu ? Partagez-le sur les réseaux sociaux !

Twitter Facebook Google Plus email