Prosody
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.
Installation
Depuis les dépôts officiels
Depuis le dépôt de Prosody IM
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
Configuration
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 !
Ouvrir les ports
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 :
- 5222 (TCP) → communications client/serveur
- 5269 (TCP) → communications serveur/serveur
Le pare-feu
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)
Box/routeur
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.
Le fichier de configuration
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"
Chiffrement SSL
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"; }
Gestion des comptes utilisateurs
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)
Divers
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.
Réseau local
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)
Gestion des comptes utilisateurs
En ligne de commande
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
Via un client XMPP
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
Désinstallation
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.