Prosody

De Le Wiki du Forum-Debian.fr
Aller à la navigation Aller à la recherche

Serveur Jabber (XMPP) avec prosody

J'ai choisi d'utiliser prosody car parmi le (trop maigre) choix de serveur jabber/xmpp, c'est sans doute le plus simple à configurer, et est réputé pour rester léger. Il est en effet écrit en Lua.

Installation

L'installation sera très simple avec apt :

apt-get install prosody liblua5.1-sec

Pour l'utiliser autrement qu'en réseau local, autrement dit "sur internet", vous devrez ouvrir dans votre pare-feu et rediriger dans votre routeur les ports suivants (TCP) : 5222, 5269.

 Configuration

La configuration de prosody se passe dans le fichier /etc/prosody/prosody.cfg.lua

La première partie concerne les modules utilisés par le serveur (compression, découverte de services...). Pour chacun d'entre eux, vous pouvez les activer en les décommentant, autrement dit en supprimant les -- en début de ligne.

Par défaut, l'inscription au serveur est désactivé. Pour l'activer, changez cette ligne en :

allow_registration = true;

Pour votre serveur, indiquez le nom de domaine :

VirtualHost "xmpp.votreDomaine.net"

Tout ce que l'on écrira en dessous cette ligne sera la configuration pour ce domaine uniquement.

En l'occurence, on va activer ce domaine :

enabled = true;

Vous pouvez ajouter un nouveau compte avec cette commande :

prosodyctl adduser utilisateur@xmpp.votreDomaine.net

Ou alors, vous le faite avec votre client jabber/xmpp habituel. Dans ce cas, il faudra autoriser la création d'utilisateurs dans le fichier de configuration de prosody :

allow_registration = true;

Et voilà, c'est terminé! Je vous l'avait dit que c'était simple prosody. :)

Redémarrez prosody : service prosody restart. Puis connectez-vous avec votre client favori :

Utiliser une connexion SSL

On se place dans /etc/prosody/certs, puis on lance la commande :

openssl req -new -x509 -nodes -out votreDomaine.cert -keyout votreDomaine.key

Ensuite, précisez bien les certificats dans le fichier de configuration de prosody :

ssl = {
            key = "/etc/prosody/certs/votreDomaine.key";
            certificate = "/etc/prosody/certs/votreDomaine.cert";
    }

Vous pouvez exiger l'encryption en décommentant ces lignes (la seconde ne marche pas toujours :

c2s_require_encryption = true
s2s_require_encryption = true

Ajouter des modules

Prosody propose de nombreux modules. Pour les activer, ajouter leur nom dans la section modules_enabled = {. Vous trouverez la liste des modules disponibles dans /usr/lib/prosody/modules. Remarquez que les modules ont un nom commençant par "mod_". Vous n'avez pas à préciser cette partie lorsque vous charger un module.

Vous pouvez bien sûr télécharger d'autres modules [ici] et les placer dans le dossier des modules. Attention toutefois, s'ils ne sont pas intégrés à debian c'est qu'ils peuvent poser souci.

DNS

Pour que les choses fonctionnent bien, il serait bon de :

  • Créer un champ de type A : xmpp.domaine.net
  • Créer les champs de type SRV vers xmpp.domaine.net :

    xmpp-client.tcp.domaine.net. 18000 IN SRV 0 5 5222 xmpp.domaine.net. xmpp-server.tcp.domaine.net. 18000 IN SRV 0 5 5269 xmpp.domaine.net.

Salons de discussion

Les salons de discussion peuvent être facilement intégrés à prosody en indiquant dans le fichier de configuration :

 Component "conf.votreDomaine.net" "muc"

Installer une passerelle

Il est possible d'utiliser des passerelles vers d'autres protocoles (MSN, Facebook, Skype...). Je ne vais pas détailler ici leur installation, car ils ne sont pas libre.

Notez que vous pourriez vouloir utiliser spectrum2, qui reste trop lourd à mon goût pour un raspberry pi.

Mise en place d'une passerelle IRC

IRC est libre! Alors ne nous retenons pas, installons une passerelle pour ce protocole!

Installons la passerelle :

apt-get install jabber-irc

Configurons cette passerelle, en éditant le fichier /etc/pyirct.conf.xml. Remplacez ici seulement cette partie, à moins que vous ne sachiez ce que vous faîtes :

<jid>irc.votreDomaine.net</jid>

Ce service est désactivé par défaut. Pour l'activer, éditez le fichier /etc/default/jabber-irc de cette façon :

ENABLED='1'

Maintenant, retournons changer la configuration de prosody. Vous vous souvenez, c'est dans le fichier /etc/prosody/prosody.cfg.lua. À la fin, on ajoute ces lignes :

Component "irc.votreDomaine.net"
        component_secret = "secret"

Et voilà, plus qu'à redémarrer prosody et la passerelle IRC et ça roule :

service prosody restart
service jabber-irc restart

Note : ce projet ne semble plus maintenu. N'hésitez pas à y participer : site du projet

Note 2 : J'ai eu à retirer les options "-c jabber:adm" et "-- $ARGS" pour que le service démarre, dans le ficher /etc/init.d/jabber-irc


exemple avec gajim