Prosody est un serveur XMPP libre entièrement écrit en Lua, ce qui le rend très léger, simpliste et facile à configurer.
Il est bien sûr gratuit, et très jeune, ce qui peut être (pour certaines personnes), un désavantage par rapport à ses concurrents.
Si vous voulez profiter de la dernière version du serveur XMPP Prosody, elle est disponible sur le dépôt proposé par le site internet officiel du projet.
Modifiez vos sources de mises à jour pour y ajouter le dépôt suivant :
deb http://packages.prosody.im/debian VERSION main
Remplacez VERSION par la version d'Ubuntu que vous utilisez, si vous ne savez pas copier dans un terminal :
lsb_release -sc
Suite à la modification des sources, un message d'erreur apparaîtra indiquant que la clé publique n'est pas disponible, pour y remédier copiez dans un terminal :
wget https://prosody.im/files/prosody-debian-packages.key -O- | sudo apt-key add -
puis rechargez la liste des paquets.
Pour terminer, Installez le paquet prosody
sudo /etc/init.d/prosody restart
La grande puissance de Prosody est aussi sa grande faiblesse : ce serveur a beau être très simpliste (il ne proposera pas autant de fonctionnalités que ejabberd), il est plus que simple à configurer !
Voyons donc les étapes de sa configuration ! C'est parti !
Si vous êtes derrière un pare-feu et/ou une box/routeur (de type Freebox, Livebox, etc…), il se peut que les ports nécessaires au bon fonctionnement du protocole XMPP (côté serveur) soient fermés. Ce serait bête d'installer un serveur XMPP si celui-ci ne peut être utilisé !
Voici donc les ports principaux à ouvrir :
Dans le cas d'un pare-feu, si vous utilisez l'outil simplifié UFW, copiez ces commandes dans un terminal :
sudo ufw allow 5222/tcp sudo ufw allow 5269/tcp
Vous pouvez bien aussi utiliser directement Iptables (pour utilisateurs avancés)
Si vous avez une box/routeur, le plus souvent l'interface d'administration est accessible directement depuis l'adresse réseau locale http://192.168.1.1 ou encore http://192.168.0.1.
Pour plus d'information, consultez la documentation dédié à votre appareil.
Concernant les Box, vous pouvez consulter ce site internet.
Nous y sommes ! Nous avons le fichier de configuration de Prosody à configurer pour "activer" le serveur en quelques sortes, pour lui dire d'accepter les connexions.
Ouvrez le fichier /etc/prosody/prosody.cfg.lua.
Votre éditeur de texte favori s'ouvre (ou pas, ça dépend des goûts !), et vous présente le magnifique fichier de configuration de Prosody. Nous allons donc commencer par activer le serveur : défilez tout en bas du fichier, et recherchez la ligne :
enabled = false -- Remove this line to enable this host
sur laquelle vous remplacerez false par true (non, sans blague !)
Ceci fait, nous allons ajouter un hôte à notre serveur. Vous avez probablement un nom de domaine associé à votre serveur du genre "example.com", ou encore "monsite.dyndns.org" si vous avez une IP dynamique. Repérez tout simplement la ligne :
Virtualhost "example.com"
Si vous souhaitez utiliser le SSL, placez vous en tant qu'administrateur dans le répertoire /etc/prosody/certs (en utilisant cd) puis entrez la commande suivante pour créer le certificat :
openssl req -new -x509 -nodes -out example.com.crt -keyout example.com.key -days 1000
Nous avons presque fini ! Après avoir bien configuré les chemins des clés de chiffrement dans le fichier prosody.cfg.lua
ssl = { key = "/etc/prosody/certs/example.com.key"; certificate = "/etc/prosody/certs/example.com.cert"; }
ssl = { certificate = "/etc/letsencrypt/live/example.com/fullchain.pem"; -- Note: Seulement lisible par root par défaut (penser à accorder les droits nécessaire.) key = "/etc/letsencrypt/live/example.com/privkey.pem"; }
Pour faire simple, il existe deux manières pour créer un compte utilisateur: soit par commandes, soit en utilisant un client XMPP. La seconde méthode est désactivé par défaut, mais si vous comptez donner la possibilité à quiconque d'utiliser votre serveur XMPP, alors il peut être intéressant de l'activer. Dans le fichier prosody.cfg.lua, à la ligne,
allow_registration = false;
remplacez false par true
Si vous souhaitez que certains comptes aient des droits d'administrations, il faut les lister sur cette ligne (les comptes devront être au préalable créés). Cette fonctionnalité n'est pas utile si le serveur sera utilisé que par quelques utilisateurs. À la ligne,
admins = { }
ajoutez par exemple : admins = { "moi@example.com", "paul@example.com" }
(n'oubliez pas les guillemets autour de l'adresse/JID)
Avant de confirmer la nouvelle configuration, je vous laisse parcourir le reste du fichier (désactiver/activer des modules, etc…), sauvegarder, puis nous allons redémarrer Prosody :
sudo /etc/init.d/prosody restart
Normalement, si tout s'est bien passé, vous n'avez aucun message d'erreur, et vous pouvez à présent accéder à votre serveur depuis votre ordinateur avec un logiciel comme Gajim.
Si votre serveur se trouve sur votre ordinateur où vous allez l'utiliser, il est conseillé de rajouter une ligne au fichier hosts.
Ouvrez le fichier /etc/hosts.
Puis rajoutez une ligne du type :
127.0.0.1 example.com (ce qui résoudra les problèmes de connexion en local avec certains routeurs)
Pour créer un compte utilisateur écrivez :
sudo prosodyctl adduser moi@example.com
Le mot de passe sera demandé deux fois (après éventuellement la demande du mot de passe sudo).
Pour modifier le mot de passe d'un compte utilisateur :
sudo prosodyctl passwd moi@example.com
Pour supprimer un compte :
sudo prosodyctl deluser moi@example.com
Pour connaître l'état des comptes utilisateurs :
sudo prosodyctl status
Les clients XMPP (par exemple gajim, pidgin, chatsecure, conversations etc …) sont capables de créer des comptes utilisateurs, à condition que cela soit accepté dans les configuration du serveur (voir précédemment).
Voici comment procéder avec Pidgin.
Et voilà ! Vous pouvez maintenant chatter en toute liberté sur les réseaux libres XMPP, utilisant le (magnifique) protocole XMPP !
Exemple avec ChatSecure (iOS), Xabber (Android), gajim (Linux, windows, MacOS
Pour supprimer Prosody, il suffit d'entrer la commande suivante :
sudo apt-get remove --purge prosody
Vous pouvez aussi désinstaller les paquets de la librairie Lua s'ils ne sont plus utilisés.