Migration sur prosody
Introduction
Suite à un article de rom1v, j'ai décidé de migrer mon serveur jabber. J'avais déjà entendu parler de prosody, mais ejabberd me convenait. Cependant ejabberd est lourd, pas forcément très agréable à administrer et configurer, et plus complexe.
Présentation
Prosody est serveur jabber de messagerie instantanée développer en Lua. Ses avantages sont notammentet léger et peut consommateur, et facile d'utilisation.
Migration
J'ai décidé de migrer lorsque j'ai eu un soucis avec ejabberd que j'ai eu du mal à résdoure, beaucoup de mal, le problème était que le serveur ne voulait tout simplement plus se lancer, et ce n'était pas la première fois, du je pense à une mauvaise configuration. Il reste que c'est un très bon logiciel, qui offre un grand nombre de fonctionnalité, mais qui demande beaucoup de temps pour être utiliser correctement, et aussi pas mal de maintenance, certainement un peu trop pour un petit serveur. J'ai vu l'article de rom1v et j'ai été séduit par la simplicité d'utilisation et de mise en oeuvre. C'est je dirai limite vraiment trop simple et donc pas très amusant. J'ai du mettre peut-être 15 minutes pour la mise en place du serveur. Le temps de lire un peu de documentation.
Installation
Bien que je sois depuis quelques temps un utilisateur de arch, j'ai décidé de continuer à utiliser Debian sur mes serveurs pour sa stabilité, mais l'installation ne sera pas plus difficile quelque soit la distribution utilisé.
apt-get install prosody
Voilà prosody est installé, nous allons maintenant passer à sa configuration.
Configuration
Nous allons commencer par définir le Host qui sera utilisé utilisé pour les addresses. Il est possible de configurer plusieurs host. Les options de configuration seront différentes pour chacun des hosts. Nous allons donc ouvrir le fichier de configuration /etc/prosody/prosody.cfg et éditer la ligne concernant le host:
Host: "domaine.com"
Remplacer domaine.com par votre domaine. Ensuite, il faudra modifier la valeur enabled pour rendre le domaine actif, autrement ça risque de ne pas fonctionner.
enabled = true
Il est aussi possible d'indiquer un timeout pour les clients non authentifié afin d’éviter une éventuelle surcharge de connexions:
c2s\\_timeout = 120
Il sera aussi possible d'activer la création ou non de nouveaux comptes via un client jabber, n'importe qui pourra créer un compte si l'option est à true:
allow\\_registration = false;
Un certainement nombres d'autres options sont possible, je laisserai les gens approfondir selon leurs propres besoins.
Certificat
Il y a un certficat qui créé par défaut, cependant les champs sont avec des valeurs non pertinentes, il faudra donc en créer un nouveau.
Placer vous directement dans le répertoire /etc/prosody/certs puis exécuter la commande openssl, des questions seront posées:
openssl req -new -x509 -nodes -out domaine.cert -keyout domaine.key
Il faudra ensuite de nouveau éditer le fichier de configuration pour remplacer les lignes contenant les chemin pour le certificat:
ssl = {
key = "/etc/prosody/certs/domaine.key";
certificate = "/etc/prosody/certs/domaine.cert";
}
Ouvrir les ports
Si ce n'est pas déjà, il faudra ouvrir les ports TCP qui vont bien, c'est-à-dire 5222 et 5269.
iptables -A INPUT -p tcp --dport 5222 -j ACCEPT
iptables -A INPUT -p tcp --dport 5269 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 5269 -j ACCEPT
Un exemple pour iptables. Le port 5222 sert à la connexion des clients au serveur, et le port 5269 à la communication entre les serveurs.
Ajouter des contacts
Maintenant que la configuration du serveur est terminé, il est possible de créer des comptes sur le serveur.
prosodyctl adduser user@domaine.com
Le mot de passe pour l'utilisateur sera demandé au passage. Si l'option allow_registration est active, il est possible d'utiliser n'importe quel client pour créer un compte.
Il est aussi possible de supprimer un utilisateur:
prosodyctl deluser user@domaine.com
Ajouter de component
Nous pouvons souhaiter ajouter des services supplémentaires que le serveur pourra fournir. Ainsi il est par exemple possible d'ajouter le composant muc qui permet de rendre disponible les chatroom c'est-à-dire les canaux multi-utilisateur, cela-dit irc le fait très bien.
Component "conference.domaine.com" "muc"
Démarrer le serveur
Maintenant, la dernière étape et de bien-sûr démarrer le serveur.
prosodyctl start
ou
sudo /etc/init.d/prosody start
Configuration d'un client
La configuration d'un client ce fait comme pour tous serveurs jabber, dans pidgin par exemple, choisir le protocole xmpp.
Bakcup
Les données sont stockées dans des fichiers plat, ce qui facilite leur sauvegarde et redeploiment. Ils se trouvent dans le répertoire /var/lib/prosody, si vous utilisez un logiciel de backup penser à ajouter ce répertoire, autrement n'oublier de régulièrement sauvegarder ce fichier d'une manière quelconque.
Etats de mon serveur
Je n'ai pas jugé utile d'activer la possibilité de créer des comptes, mais si ça peut intéresser des gens, faites le moi savoir. Je tâcherai dans cas de garantir une certaine disponibilité, et ferai des annonces en cas de mise à jour, migration ou problème sur le serveur qui entraînerait une indisponibilité pour un certain temps.
Conclusion
Je suis très content de prosody et me voit soulager en terme de maintenance, c'est un très bonne exemple de logiciel écrit dans le langage Lua, qui est très agréable à configurer. Je le recommande pour quiconque souhaiterai hébérger son serveur jabber.