Prosody
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