====== Prosody: Serveur XMPP ====== * Objet : Installer et configurer son propre serveur XMPP. * Niveau requis :{{tag> avisé}} * Commentaires : //Pour ceux qui souhaitent installer leur propre serveur de messagerie instantanée et participer ainsi à la décentralisation de l'internet. // * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) * Suivi : {{tag>à-tester}} * Création par [[user>sogal]] le 20/05/2014 * Testé par <...> le <...> * Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?pid=90815]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) ===== 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 ===== * https://prosody.im/ * https://doc.ubuntu-fr.org/prosody * https://www.isalo.org/wiki.debian-fr/Prosody ------ --- //[[sbphr@volted.net|Sogal]] 20/05/2014 20:55//