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 :

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 :

IRC's flaws

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

Configuration avancée

Ça se passe sur le site officiel 😉