Outils pour utilisateurs

Outils du site


doc:jabber

Jabber

Jabber est un outil de messagerie instantanée utilisant le protocole XMPP. Pour le moment j'ai utilisé deux serveurs différents :

  • Ejabberd
  • Prosody

Celui que j'utilise actuellement est Prosody parce qu'il est bien plus simple de faire une sauvegarde/restauration des contacts qu'avec ejabberd.

Prosody

Configuration

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.

Ajout de virtualhost :

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

Ajout d'utilisateurs

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é.

Utilisation de ssl

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.

Sauvegarde

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.

Ejabberd

Installation

apt-get install ejabberd

Configuration

Le fichier de configuration

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 

Ajouter des utilisateurs

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.

administrateur

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

User

Ensuite on ajoute des utilisateurs de la même manière :

ejabberdctl register user mondomaine.fr motdepasseuser

Administration du serveur

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

Sauvegarde de la base

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

Les ports

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.

Les salons

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

Logger les salons

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.

Liens externes

Prosody

Ejabberd

doc/jabber.txt · Dernière modification : 2015/03/13 20:00 de 127.0.0.1