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.

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.

Ce logiciel ne provient pas des dépôts officiels Ubuntu, ce qui fait que vous devez faire confiance à la source depuis laquelle vous le récupérez (http://prosody.im/)

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

Si il s'agit d'une mise à jour, n'oubliez pas de redémarrer 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 !

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"
Vous devrez remplacer example.com par votre propre nom de domaine tout au long de cette explication.

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";
}
Vous pouvez utiliser un certificat signé par une autorité de certification si vous le souhaitez, par exemple avec Letsencrypt. Le principe est le même que vu plus haut
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)

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

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.


Contributeurs : Vanaryon, Axelos, Anawel86

  • prosody.txt
  • Dernière modification: Le 11/09/2022, 11:34
  • par moths-art