Jabber est un outil de messagerie instantanée utilisant le protocole XMPP. Pour le moment j'ai utilisé deux serveurs différents :
Celui que j'utilise actuellement est Prosody parce qu'il est bien plus simple de faire une sauvegarde/restauration des contacts qu'avec ejabberd.
Dans le fichier de configuration principal (/etc/prosody/prosody.cfg.lua), il faut modifier la ligne admins pour renseigner le compte admin.
admins = {"admin@monsite.tld"}
Ensuite on renseigne les clé ssl.
Dans le dossier /etc/prosody/conf.avail il faut faire une copie du fichier de conf par défaut puis l'éditer :
cd /etc/prosody/conf.avail cp example.com.cfg.lua monsite.tld.cfg.lua vi monsite.tld.cfg.lua
Il faut remplacer dans ce fichier chaque instance de exemple.com par monsite.tld Il faut aussi commenter ou supprimer la ligne (en lua, on commente une ligne en mettant deux tirets “-” devant):
enabled = false -- Remove this line to enable this host
Une fois le fichier modifier, il faut le lier dans /etc/prosody/conf.d/
cd /etc/prosody/conf.d/ ln -s ../conf.avail/monsite.tld.cfg.lua
Pour ajouter des utilisateurs, il faut utiliser la commande
prosodyctl adduser user@mondomaine.tld
Le mot de passe de l'utilisateur vous serra alors demandé.
Commencer par générer un couple certificat/clé puis déplacez les dans le dossier /etc/prosody/certs Ajouter dans le fichier de conf du virtualhost :
ssl = { key = "/etc/prosody/certs/monsite.fr.key"; certificate = "/etc/prosody/certs/monsite.fr.crt"; }
Pour finir redémarrez le serveur.
La liste des contacts et des configurations de salon se trouve dans les dossiers :
/var/lib/prosody/monsite.tld/ /var/lib/prosody/conference.monsite.tld/
Il suffit de copier et de replacer ce dossier avec ses sous dossiers à cette endroit.
apt-get install ejabberd
Le fichier de configuration se trouve /etc/ejabberd/ejabberd.cfg. Editez le avec votre éditeur préféré avec root. Et modifiez les lignes suivantes :
%% Admin user {acl, admin, {user, "admin", "mondomaine.fr"}}.
Admin sera à remplacer par le nom d'administrateur que vous souhaitez. mondomaine.fr sera à remplacer par votre domaine (ou votre ip si vous n'avez pas de domaine. Mais attention d'avoir une ip fixe ;))
%% Hostname {hosts, ["mondomaine.fr"]}.
Et s'il y a plusieurs domaines, il suffit de les ajouter ici :
%% Hostname {hosts, ["mondomaine.fr", "monautredomaine.fr"]}.
mondomaine.fr sera à remplacer par votre domaine (ou votre ip si vous n'avez pas de domaine. Mais attention d'avoir une ip fixe ;))
Pour finir, redémarrez ejabberd :
/etc/init.d/ejabberd restart
Par défaut, ejabberd n'autorise pas la création d'utilisateur depuis un client. Il faut passer par une console pour les ajouter. J'ai laissé ainsi car je n'ai pas besoin d'ajouter d'utilisateurs autre que moi.
Il faut déjà ajouter l'administrateur que l'on a renseigné plus haut. On va donc taper dans une console en root :
ejabberdctl register admin mondomaine.fr motdepasseadmin
Ensuite on ajoute des utilisateurs de la même manière :
ejabberdctl register user mondomaine.fr motdepasseuser
Pour administrer le serveur, on peut utiliser son serveur web. Pour cela, il faut taper dans votre navigateur :
http://mondomaine.fr:5280/admin
Pour que ca fonctionne il faut bien entendu avoir ouvert le port 5280 sur le firewall. Si comme moi vous administrez le serveur depuis votre réseau local, vous pouvez remplacer mondomaine.fr par l'adresse ip local du serveur. Ca évite d'avoir à ouvrir des ports.
Vous allez alors avoir besoin de vous connecter via http pour accéder à l'interface d'administration. Dans notre exemple, le login sera admin@mondomaine.fr et le mot de passe motdepasseadmin
Pour sauvegarder la base de contact des utilisateurs, il faut taper la commande suivante :
ejabberdctl dump fichier_de_save
Le fichier serra envoyé dans le dossier /var/lib/ejabberd/
Pour restaurer :
ejabberdctl restore fichier_de_save
Pour communiquer avec le monde extérieur, il va falloir ouvrir des ports sur votre firewall.
Pour que votre client soit en mesure de communiquer avec votre serveur, il faudra ouvrir le port 5222. De même, pour que votre serveur puisse communiquer avec d'autre serveur, il faudra ouvrir le port 5269.
Par défaut, à l'installation de ejabberd, le sous domaine utilisé est conference.mondomaine.fr
Pour pouvoir utiliser les salons créer sur le serveur, il faut ajouter une ligne dans le DNS pour le sous domaine conference.mondomaine.fr. Sans quoi, une erreur “404 serveur distant non trouvé” vous serra envoyé lorsque vous tenterez de vous connecter sur le salon avec un autre compte.
Pour administrer les salons, prendre le client psi
Ouvrir le fichier de configuration de ejabberd ( /etc/ejabberd/ejabberd.cfg ) puis remplacer :
% {mod_muc_log, []},
Par
{mod_muc_log,[ {allow_room_log, true}, {access_log, muc_admin}, {outdir, "/mnt/documents/log_jabber"}, {dirtype, subdirs}, {dirname, room_name}, {timezone, local}, {top_link, {"http://www.monsite.tld", "logs de mon serveur jabber"}}, {cssfile, false}]},
On enregistre et on quitte.
On créé ensuite le dossier /mnt/documents/log_jabber et et on donne les droits en écriture sur ce dossier à ejabberd. Le plus simple est de définir le propriétaire et le groupe de ce dossier à l'utilisateur ejabberd :
chown ejabberd:ejabberd /mnt/documents/log_jabber
Puis on attribut les droit en lecture/écriture :
chmod 755 /mnt/documents/log_jabber
Il faut ensuite re démarrer le serveur
/etc/init.d/ejabberd stop/start
A partir de maintenant, ejabberd est capable d'enregister l'historique des conversations du salon.
Pour qu'il enregistre effectivement les conversations, il faut aller se connecter au salon avec un compte administrateur (par exemple le compte admin ici) et activer l'enregistrement de l'historique dans les paramètres de configuration du salon à l'aide d'un client (psi par exemple) Ce qui permet de déterminer quel salon est logé et quel salon ne l'est pas.