====== 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//