XMPP avec prosody
Pourquoi choisir une messagerie instantanée XMPP?
Vous connaissez peut-être déjà IRC pour la messagerie instantanée dans des salons de discussions. Cependant, XMPP présente des avantages devant IRC non négligeables pour communiquer :
- Salons de discussion avec historique (facultatif): on peut suivre discussion même si on n'est pas constamment connecté.
- On peut aussi discuter avec 1 seule personne.
- Pas de déconnexions intempestives contrairement à IRC.
- On crée un compte, et basta. Ce dernier peut servir à tout, même à changer de pseudo selon le salon de discussion rejoint. C'est tellement plus pratique que d'enregistrer/réserver un nick sur IRC de je ne sais quelles façons différentes puisque la procédure n'est pas la même selon le serveur. D'ailleurs, la méthode d'identification passe par du tls par défaut. Selon les serveurs IRC, on peut avoir des messages à envoyer à "NickServ" ou bien des certificats à transmettre, là aussi ça change d'une fois sur l'autre.
- Les serveurs XMPP peuvent communiquer entre eux. Cela veut dire qu'il n'est pas nécessaire de créer un compte pour libera.chat, geeknode, oftc sans pouvoir en sortir. Ça prend tout son sens lorsqu'on repense à la débacle qu'a connu freenode : nul besoin de faire confiance à un serveur tiers.
- On peut utiliser plusieurs clients en même temps avec le même compte. Autrement dit, je peux participer à une discussion avec mon pc portable et en même temps avec mon téléphone. Ça n'a l'air de rien, mais c'est tellement pratique!
- On peut recevoir des messages même lorsqu'on est hors ligne : on les lit lorsqu'on se reconnecte.
- Il existe diverses solutions de chiffrement pour parler en toute intimité : GPG, OTR, OMEMO. Sans doute pas parfaits, mais mieux que rien du tout avec IRC.
- On peut corriger son message si on a fait une faute.
- Possibilité de l'utiliser "hors-ligne" : connexion pour récupérer les messages, repondre. Pas besoin de connexion tout le temps.
- À défaut de mieux, il existe des passerelles publiques vers des salons IRC. Il suffit de rejoindre un canal ainsi "#nom_du_chan%irc.serveur.irc@domaine.passerelle". Il en existe un paquet, alors voici un exemple : "#helpdesk@biboumi.tilde.team".
De tous ces points, c'est principalement la question de la vie privée et de la possibilité de chiffrer les communications qui, à ma grande surprise, semblent d'un seul coup peu intéressants pour des libristes habituellement scrupuleux sur ces questions. Pourtant, n'importe quel participant d'un salon sur IRC peut connaître votre IP. Certes, ça ne fait pas tout, mais ça reste énorme comme "fuite".
D'autres ont écrit sur le sujet, en préférant par exemple lister les défauts d'IRC :
Mise en place de prosody
Prosody est un serveur XMPP à la fois léger et facile à configurer.
Voici quelques éléments à propos de sa mise en place pour les détails relatifs à OpenBSD.
Tout d'abord, on installe le port :
# pkg_add prosody
Ajout de champs DNS
Vous avez besoin d'ajouter à votre zone de nouveaux champs :
Un champ A:
xmpp.chezmoi.tld
Ce champ doit correspondre à celui définit ensuite dans les champs SRV suivants.
Des champs SRV:
_xmpp-client._tcp.chezmoi.tld. 18000 IN SRV 0 5 5222 xmpp.chezmoi.tld. _xmpp-server._tcp.chezmoi.tld. 18000 IN SRV 0 5 5269 xmpp.chezmoi.tld.
Il faudra en ajouter pour les services proposés par le serveur xmpp s'il y en a, comme les MUC :
_xmpp-server._tcp.conference.chezmoi.tld. 18000 IN SRV 0 5 5269 xmpp.chezmoi.tld.
Configuration
Editez "/etc/prosody/prosody.cfg.lua"
Il n'y a rien à faire si ce n'est préciser l'adresse de l'admin ajouter un virtualhost et préciser l'emplacement du certificat:
VirtualHost "chezmoi.tld" ssl = { certificate = "/etc/prosody/certs/chezmoi.tld.crt"; key = "/etc/prosody/certs/chezmoi.tld.key"; }
Le certificat doit être lisible par l'user _prosody.
Puisque dans cette documentation on suggère d'obtenir les certificats avec acme-client, installez-les ainsi après avoir lancé acme :
install -g _prosody -o _prosody -m 400 /etc/ssl/private/chezmoi.tld.key /etc/prosody/certs/ install -g _prosody -o _prosody -m 400 /etc/ssl/chezmoi.tld.crt /etc/prosody/certs/
Si les certificats sont renouvelés automatiquement, pensez à ajouter les lignes précédentes au script appelé périodiquement 😎.
Ajoutez l'administrateur :
# prosodyctl adduser batman@chezmoi.tld
On vérifie que la config est correcte:
prosodyctl check config
Ouverture des ports
Ouvrez les ports 5222 (xmpp-client) et 5269 (xmpp-server)
Archivage des logs
Éditez "/etc/newsyslog.conf" :
/var/prosody/prosody.log 644 5 300 * Z /var/prosody/prosody.err 644 5 300 * Z
Vérifiez la configuration du serveur
Remplacez "chezmoi.tld" par le domaine de votre serveur :
https://xmpp.net/result.php?domain=chezmoi.tld&type=server