logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Prosody: Serveur XMPP

Introduction

Pour ceux qui souhaitent installer leur propre serveur de messagerie instantanée et participer ainsi à la décentralisation de l'internet, il existe sous Debian un serveur XMPP simple d'emploi: Prosody. Nous allons voir ensemble comment l'installer et le configurer.

Pré-requis

Avant de commencer, il faut bien évidemment être propriétaire d'un nom de domaine. Au cours de ce tuto; le nom de domaine employé sera exemple.net et, par conséquent, le sous-domaine utilisé pour le service de messagerie instantanée que nous allons mettre en place sera im.exemple.org. Il sera donc impératif que vous modifiez vos entrées DNS, y compris celles de votre registrar, en conséquence par l'ajout, par exemple de l'entrée suivante:

im.exemple.org A 192.65.43.21

dans laquelle 192.65.43.21 est à remplacer par votre IP publique. Pensez également à faire les redirections de ports qui vont bien sur votre routeur.

Installation

Nous sommes sous Debian et c'est donc simple comme bonjour:

apt-get install prosody

Utilisation

Générer un certificat auto-signé:

Si vous avez déjà un certificat SSL, vous pouvez l'utiliser en en précisant le chemin dans le fichier de configuration de l'hôte.

Sinon, on va s'en créer un:

cd /etc/prosody/certs
openssl genrsa -out im.exemple.net.key 2048
openssl req -new -x509 -key im.exemple.net.key -out im.exemple.net.cert -days 365

Nous avons donc créé une clé 2048 bits et généré un certificat correspondant valable pour 365 jours. Il vous suffit de répondre aux questions relatives à l'identité du détenteur du certificat.

Configuration générale du serveur:

Elle se fait dans le fichier /etc/prosody/prosody.cfg.lua. Il n'y a pas grand chose à modifier si ce n'est l'entrée “admins” par une adresse de contact. Le reste est correctement configuré par défaut avec notamment les “includes” qui vont bien et sur lesquels nous allons travailler.

Configuration de im.exemple.net:

Nous allons utiliser un fichier d'exemple comme base et modifier les entrées nécessaires:

cp conf.avail/example.com.cfg.lua conf.avail/im.exemple.net.cfg.lua
emacs conf.avail/im.exemple.cfg.lua
-- Section for im.exemple.net
-- création de notre virtualhost
VirtualHost "im.exemple.net"
 
        -- Assign this host a certificate for TLS, otherwise it would use the one
        -- set in the global section (if any).
        -- Note that old-style SSL on port 5223 only supports one certificate, and will always
        -- use the global one.
-- déclaration des clés et certificats que nous avons créés:
        ssl = {
                key = "/etc/prosody/certs/im.exemple.net.key";
                certificate = "/etc/prosody/certs/im.exemple.net.cert";
                }
 
------ Components ------
-- You can specify components to add hosts that provide special services,
-- like multi-user conferences, and transports.
-- For more information on components, see http://prosody.im/doc/components
 
-- Set up a MUC (multi-user chat) room server on conference.example.com:
Component "conference.example.com" "muc"
 
-- Set up a SOCKS5 bytestream proxy for server-proxied file transfers:
--Component "proxy.example.com" "proxy65"
 
---Set up an external component (default component port is 5347)
--Component "gateway.example.com"
--      component_secret = "password"

Normalement, il est recommandé de créer un lien depuis le fichier créé dans le dossier /etc/prosody/conf.d/, cependant, de cette façon j'ai une erreur au redémarrage du serveur, j'ai donc fait un copier-coller.

cp conf.avail/im.exemple.net.cfg.lua conf.d/im.exemple.net.cfg.lua
service prosody restart

Gestion des utilisateurs:

La gestion des utilisateurs se fait via la commande prosodyctl:

# Ajout d'un utilisateur:
prosodyctl adduser utilisateur@im.exemple.net
#Le mot de passe est ensuite demandé.
 
# Ajout rapide sur une seule ligne:
prosodyctl register utilisateur im.exemple.net mot_de_passe
 
# Suppression d'un utilisateur:
prosodyctl deluser utilisateur@im.exemple.org
 
# Modification du mot de passe:
prosodyctl passwd utilisateur@im.exemple.net

Entrées dans le pare-feu:

Pour finir, on n'oublie pas les entrées iptables qui vont bien:

# XMPP Prosody In                                                                              
iptables -t filter -A INPUT -p tcp --dport 5222 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 5269 -j ACCEPT
 
# XMPP Prosody Out                                                                             
iptables -t filter -A OUTPUT -p tcp --dport 5222 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 5269 -j ACCEPT

Conclusion:

Il est très simple de mettre en place son propre serveur XMPP, même sur son propre poste de travail. Cela évite d'avoir bêtement recours à des services qui ne peuvent garantir la sécurité ni la confidentialité de nos conversations, c'est un pas de plus vers l'autonomie numérique et la préservation de sa vie privée!

Liens utiles

1)
N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !
doc/reseau/net/prosody.txt · Dernière modification: 26/02/2017 19:41 par bendia

Pied de page des forums

Propulsé par FluxBB