Installer un serveur ejabberd sous GNU/Linux

De Wiki JabberFR
Aller à : navigation, rechercher

L'objet de ce tutoriel est de montrer comment mettre en place un serveur Jabber/XMPP ejabberd sous GNU/Linux. Le tutoriel a été commencé avec la version 0.9.8 puis la version 1.0.0 est sortie entre temps. Les différences entre ces deux versions seront signalées tant que possible mais il pourra être nécessaire d'adapter certains paramètres.

En partie graphiquement

Installation graphique du serveur ejabberd

Nous installerons ici le serveur ejabberd à partir du binaire d'installation de Process One. Cet installeur fonctionne sous toutes les distributions GNU/Linux et inclut la partie de l'environnement erlang nécessaire au bon fonctionnement d'ejabberd. Il est utilisable aussi bien en mode graphique qu'en mode texte. Des paquets sont aussi disponibles pour plusieurs distributions pour les personnes qui préfèrent.

NB : les copies d'écran de la phase d'installation ont été réalisées avec la version 0.9.8. La version 1.0.0 propose maintenant en plus de choisir le langage de la phase d'installation. Le français est disponible.

Téléchargez le binaire d'installation de la dernière version et donnez lui les droits d'exécution :

01droits execution.png

Pour obtenir le même résultat en ligne de commande, il faut taper : chmod u+x ejabberd-0.9.8_1-linux-installer.bin

Exécutez ensuite le binaire et vous devriez voir apparaître l'écran de bienvenue :

02welcome screen.png

Le logiciel est placé sous licence GNU GPL. Acceptez la licence :

03accept license.png

Choisissez un chemin d'installation. Comme le logiciel n'est pas installé par le système standard de paquets de votre distribution, les chemins les plus appropriés sont certainement /opt ou /usr/local/jabber :

04chemin installation.png

Rentrez votre nom de domaine. Ici notre serveur s'appellera "example.com". Les utilisateurs auront donc des adresses du type thomas@example.com, marie@example.com, etc. Si vous avez plusieurs noms de domaine, entrez celui utilisé par l'administrateur principal du serveur, vous rentrerez les noms de domaine supplémentaires par la suite :

05nom de domaine.png

Rentrez le nom de l'administrateur. L'administrateur a certains privilèges supplémentaires comme le fait de pouvoir voir les utilisateurs connectés, de pouvoir envoyer des messages à tous les utilisateurs ou encore de pouvoir administrer le serveur par l'interface d'administration web. Ici, nous appelons l'administrateur "admin", son nom complet (celui qu'il faudra utiliser pour l'interface d'administration web) sera donc "admin@example.com" :

06nom admin.png

Rentrez le mot de passe de l'administrateur :

07mdp admin.png

Confirmez l'installation d'ejabberd :

08confirm installer.png

Voilà, l'installation est terminée :

09Installation finie.png

Configuration basique en ligne de commandes

Édition du fichier ejabberd.cfg

Maintenant qu'ejabberd est installé, dans le répertoire principal (le répertoire d'installation que vous avez défini, par exemple /opt/ejabberd-1.0.0), vous devriez avoir un fichier "ejabberd.cfg" (pour la version 1.0.0, le fichier ejabberd.cfg est dans un sous-répertoire "conf"). Sauvegardez le fichier original au cas où par :

cp ejabberd.cfg ejabberd.cfg.original

Nous pouvons maintenant modifier le fichier sans craintes. Au début du fichier doivent se trouver les trois lignes :

override_global.
override_local.
override_acls.

Avec ces lignes, lorsque vous éditerez votre fichier de configuration, l'ancienne configuration sera enlevée avant de prendre en compte la nouvelle (sinon elle est ajoutée par dessus ce qui peut être source de confusion).

Pour que le serveur soit en français par défaut, il faut mettre la variable "language" à "fr" comme ceci :

{language, "fr"}.

Démarrer/arrêter le serveur

Dans le répertoire où est installé ejabberd (/opt ou /usr/local/jabber par exemple), créez un répertoire "bin". Nous mettrons dans ce répertoire, tous les scripts qui nous permettrons de nous faciliter la vie et notamment les scripts d'arrêt et de démarrage des différents composants. Voici un exemple simple de script de démarrage/arrêt pour ejabberd :

#!/bin/sh
#####Fichier /opt/bin/ejabberd#####

#Repertoire d'installation de ejabberd
INSTALL_DIR=/opt/ejabberd-1.0.0

case "$1" in
   start)
      echo "Demarrage du serveur ejabberd"
      $INSTALL_DIR/bin/ejabberdctl default start
      ;;

   stop)
      echo "Arret du serveur ejabberd"
      $INSTALL_DIR/bin/ejabberdctl default stop
      ;;

   restart)
      echo "Arret du serveur ejabberd"
      $INSTALL_DIR/bin/ejabberdctl default stop
      sleep 3
      echo "Demarrage du serveur ejabberd"
      $INSTALL_DIR/bin/ejabberdctl default start
      ;;

   *)
      echo $0 "start|stop|restart"
      exit 1
      ;;
esac

Donnez les droits d'exécution au fichier ejabberd que l'on vient de créer. Maintenant, depuis notre répertoire bin vous pouvez :

  • lancer ejabberd par :
./ejabberd start
  • arrêter ejabberd par :
./ejabberd stop
  • redémarrer ejabberd par :
./ejabberd restart

Paramétrage

Dans le navigateur :

Avec :

  • user : admin@example.com
  • passwd : celui que vous avez choisi

En ligne de commandes

L'aide qui va suivre a ete utilisee sous debian GNU/Linux. par consequent, l'aide pourrait ne pas fonctionner sous d'autres distributions (ce qui est peu probable :)). Je ne vais presenter qu'une configuration simple, referez-vous a la documentation officielle pour une conf plus complexe, et dans cette aide, il ne sera que montre une configuration pour l'utilisation d'un seul domaine jabber sur ce serveur.

Installation d'ejabberd

Nous allons utiliser l'outil "aptitude", qui, rappelons-le, est un outil pour installer des paquets (logiciels) en ligne de commandes, tout comme apt par exemple.

Vous devez etre en "root" (compte administrateur) pour pouvoir installer, pour ce faire, tapez la commande suivante dans un terminal :

su
# Puis entrez le mot de passe root.

"su" est utilise sous debian, sous Ubuntu, ce sera "sudo -s".

Vous etes maintenant en "root", il suffit de taper ce qui suit pour installer le paquet "ejabberd" (qui se trouve dans les depots officiels debian) :

aptitude install ejabberd

Configuration

Pour une configuration basique, il n'y a que quelques changements a faire dans le fichier principal de configuration d'ejabberd : "/etc/ejabberd/ejabberd.cfg".

  • Utilisation de nano pour editer (ou d'autres editeurs) :
nano /etc/ejabberd/ejabberd.cfg
  • Puis, modifiez
{acl, admin, {user, "", "localhost"}}.

En

{acl, admin, {user, "admin", "votre-domaine.jabber.tld"}}.
  • Ensuite,
{hosts, ["localhost"]}.

En

{hosts, ["votre-domaine.jabber.tld"]}.
  • Puis faites un CTRL+Q pour quitter nano.
  • On cree ensuite l'utilisateur admin pour pouvoir administrer ejabberd :
ejabberdctl register admin votre-domaine.jabber.tld mot-de-passe-admin
  • Ensuite, on relance ejabberd pour que les modifications soient effectives :
/etc/init.d/ejabberd restart

Et maintenant, on administre !

Ejabberd s'administre (hormis sa configuration) via son interface web, rendez-vous a l'adresse suivante :

http://ip-de-la-machine:5280/admin

Et vous entrez admin@votre-domaine.jabber.tld et le mot de passe de "admin".

A vous a jouer !

Conclusion

Cette configuration par defaut ne donne pas la possibilite, hormis a l'administrateur de creer des utilisateurs, il faut donc par defaut que l'admin ajouter manuellement chaque utilisateur via l'interface.