'

Outils pour utilisateurs

Outils du site


doc:ejabberd

installation de ejabberd

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

Cette page vous a été utile ?

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 du serveur. Cette installation n'est pas critique, je peux vivre sans jabber ;-). Il faudra prélablement ajouter debian backports au sources.list.

$ 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

Nom d'hôte du serveur ejabberd : machine.info

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

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.

Mot de passe du compte administrateur :

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 certificat 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 groupe 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 passera par là donc il est préférable de chiffrer la connexion. Pour cela, commençons par générer un certificat avec make-ssl-cert :

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”}} par {acl, admin, {user, “root”}}.

à vérifier

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.

configuration du DNS

Pour chaque domaine hébergé sur le serveur, il faudra créer une entrée dans le dns qui gère la zone. Par exemple, pour bind :

_jabber._tcp.machine.net.       IN SRV   0 0 5269   machine.info.
_xmpp-server._tcp.machine.net.  IN SRV   0 0 5269   machine.info.
_xmpp-client._tcp.machine.net.  IN SRV   0 0 5222   machine.info.

machine.info. doit correspondre au nom d'hôte qui héberge le serveur. Les entrées sont de type SRV, 5269 est le port utilisé entre les serveurs et le 5222 celui utilisé par les clients vers le serveur. Les 0 0 sont respectivement la priorité et le poids de chaque entrée, c'est inutile avec un seul serveur.

Pour utiliser la voix et la vidéo avec du NAT sur la ligne, il est nécessaire d'ajouter une entrée pour un serveur STUN. Par exemple :

_stun._udp.machine.info has SRV record 0 0 3478 stun.machine.info.

Il est possible d'utiliser n'importe quel serveur STUN public.

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 (enregistrement type A. Il est également possible de déclarer un CNAME.

Ce qui donne dans le DNS avec un CNAME :

irc.machine.info.	86400	IN	CNAME	machine.info.

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 pointe vers le serveur. On peut remplacer conference par salon ou tout autre mot. Il est possible de configurer une entrée de type A ou un CNAME.

Ce qui donne dans le DNS :

conference.machine.info. 86400 IN	CNAME	machine.info.

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.txt · Dernière modification: Le 07/01/2015 à 23:52 (modification externe)