Outils pour utilisateurs

Outils du site


doc:ejabberd

Ceci est une ancienne révision du document !


installation de ejabberd

Cette page décrit l'installation du serveur ejabberd sur une DEBIAN stable. Le serveur sera installé sur la machine machine.info et servira les domaines machine.info et machine.net

installation des paquets

Je choisis d'installer la version de debian backports. La version est plus à jour. Le choix dépend de ce que l'on attend dur serveur. Cette installation n'est pas critique, je peux vivre sans jabber ;-).

$ sudo aptitude -t lenny-backports install ejabberd
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Lecture de l'information d'état étendu       
Initialisation de l'état des paquets... Fait
Lecture des descriptions de tâches... Fait  
Les NOUVEAUX paquets suivants vont être installés : 
  ejabberd erlang-base{a} erlang-nox{a} libsctp1{a} lksctp-tools{a} 
0 paquets mis à jour, 5 nouvellement installés, 0 à enlever et 4 non mis à jour.
Il est nécessaire de télécharger 1189ko/28,4Mo d'archives. Après dépaquetage, 47,1Mo seront utilisés.
Voulez-vous continuer ? [Y/n/?] y

debconf pose ensuite quelques questions

     ┌───────────────────┤ Configuration de ejabberd ├────────────────────┐     
     │ Veuillez indiquer le nom d'hôte (en minuscule) du serveur Jabber.  │     
     │                                                                    │     
     │ Nom d'hôte du serveur ejabberd :                                   │     
     │                                                                    │     
     │ machine.info______________________________________________________ │     
     │                                                                    │     
     │                               <Ok>                                 │     
     │                                                                    │     
     └────────────────────────────────────────────────────────────────────┘

Ici le nom d'hôte du serveur, il n'est possible de donner qu'un seul nom d'hôte.

 ...
 │                                                                           │    
 │ Identifiant du compte administrateur d'ejabberd :                         │  
 │                                                                           │  
 │ root_____________________________________________________________________ │  
 │                                                                           │  
 │                                  <Ok>                                     │  
 │                                                                           │  
 └───────────────────────────────────────────────────────────────────────────

Ici je choisis le compte administrateur avec beaucoup d'originalité ;-) Ce compte servira à administrer le serveur via l'interface web ou un client jabber. Pour se connecter, il faudra utiliser root@machine.info comme l'indique debconf.

     ┌───────────────────┤ Configuration de ejabberd ├───────────────────┐      
     │ Veuillez entrer le mot de passe de l'utilisateur administrateur.  │      
     │                                                                   │      
     │ Mot de passe du compte administrateur :                           │      
     │                                                                   │      
     │ _________________________________________________________________ │      
     │                                                                   │      
     │                              <Ok>                                 │      
     │                                                                   │      
     └───────────────────────────────────────────────────────────────────┘      

Il faudra confirmer ce mot de passe. Il est normal que rien ne s'affiche quand on tape le mot de passe.

L'installeur va notamment générer un certificat SSL pour l'utilisation d'une communication chiffrée entre le client et le serveur. Ce certification est stocké dans le fichier /etc/ejabberd/ejabberd.pem. C'est un certificat auto-signé, suffisant pour une utilisation personnelle.

La configuration du serveur est stockée dans le fichier /etc/ejabberd/ejabberd.cfg. Il faut être root ou membre du groupe ejabberd pour rentrer et lire le répertoire /etc/ejabberd.

$ stat /etc/ejabberd
  File: `/etc/ejabberd'
  Size: 4096      	Blocks: 8          IO Block: 4096   répertoire
Device: ca01h/51713d	Inode: 17814       Links: 2
Access: (0750/drwxr-x---)  Uid: (    0/    root)   Gid: (  113/ejabberd)

Si comme moi vous utilisez sudo, il faudra que l'utilisateur qui passe pour root appartienne au group ejabberd sinon sudoedit ne fonctionnera pas. Pour cela :

sudo adduser sylvain ejabberd

Il faudra se connecter de nouveau pour que l'appartenance au groupe soit effective.

configuration

interface admin HTTPS

L'interface d'administration est disponible par défaut en HTTP, il ne faut pas oublier que le mot de passe de l'administrateur passer par là donc il est préférable de chiffrer la connexion. Pour cela, commençons par générer un certificat :

sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/ssl/certs/ejabberd.pem

Le certificat devra être lisible par ejabberd :

$ sudo chgrp ejabberd /etc/ssl/certs/ejabberd.pem
$ sudo chmod g+r /etc/ssl/certs/ejabberd.pem

Ensuite, modifions le fichier de configuration /etc/ejabberd/ejabberd.cfg

  %% {5280, ejabberd_http, [
  %%                     http_poll,
  %%                     web_admin
  %%                    ]}

  {5280, ejabberd_http, [
                        http_poll,
                        web_admin,
                        tls,
                        {certfile, "/etc/ssl/certs/ejabberd.pem"},
                        starttls_required
                        ]}

un administrateur pour tous les domaines

Le compte d'administration créer par debconf permet d'administrer le serveur déclaré lors de l'installation. Pour que l'administrateur puisse gérer tous les serveurs (domaines), il faut modifier la configuration. Remplacer {acl, admin, {user, “root”, “collilieux.net”}}. {acl, admin, {user, “root”}}.

langue

Par défaut, l'interface d'administration de ejabberd parle anglais. Pour modifier cela, il faut modifier la ligne contenant {language, “en”} par {language, “fr”}.

création d'un utilisateur

À ce stade, le serveur est déjà fonctionnel mais seul root@machine.info peut se connecter au serveur. Il faut donc créer un utilisateur.

Pour créer un compte robert@machine.info avec le mot de passe m0t2pace :

sudo ejabberdctl register robert machine.info m0t2pace

Le fichier de configuration fourni par DEBIAN ne permet pas que des utilisateurs s'enregistrent automatiquement avec leur client jabber. Pour un serveur personnel, c'est une bonne chose.

plusieurs domaines

Le serveur peut gérer plusieurs domaines. Il suffit de déclarer les domaines sur la ligne {hosts, [“machine.org”, “machine.net”]}.

modules

Plusieurs modules sont disponibles et activés par défaut.

irc

Pour se connecter à un channel IRC depuis un client jabber, il est possible d'utiliser ejabberd comme passerelle. Pour cela, il faut que le host irc.machine.org pointe vers la même adresse IP que machine.org. Il est également possible de déclarer un CNAME.

conference

XMPP, le protocole derrière jabber permet d'établir des salons de discussion. ejabberd supporte cette fonctionnalité. La configuration par défaut fonctionne :

  {mod_muc,      [
                  %%{host, "conference.@HOST@"},
                  {access, muc},
                  {access_create, muc},
                  {access_persistent, muc},
                  {access_admin, muc_admin},
                  {max_users, 50}
                 ]},

Pour utiliser les conférences, il faudra utiliser le serveur conference.machine.info, il faut donc que cette entrée DNS existe et point vers le serveur. On peut remplacer conference par salon ou tout autre mot.

Tous les utilisateurs pourront créer des conférences. J'ai limité le nombre de participant à 50, la valeur par défaut est 500

liens utiles

doc/ejabberd.1243598356.txt.gz · Dernière modification: Le 07/01/2015 à 23:48 (modification externe)