Outils pour utilisateurs

Outils du site


serveurs:ejabberd

ejabberd

ejabberd est un serveur de messagerie instantanée puissant et souple, probablement le choix le plus populaire.

Configuration préalable

Avant de vous lancer dans l'installation d'un serveur de messagerie instantanée, vous devez régler quelques étapes préalables, décrites dans l'article général traitant de la messagerie instantanée.

Installer ejabberd

Installez simplement le paquet correspondant pour votre distribution, qui devrait porter le même nom. Par exemple, sous Debian, c'est le paquet ejabberd.

Correction des droits du binaire d'identification

Lorsqu'on délègue l'identification au système d'exploitation, ejabberd utilise un petit exécutable, epam, pour interroger le service d'identification PAM. Pour pouvoir identifier les gens, ce binaire doit pouvoir lire le fichier de mots de passes caché, /etc/shadow. Pour cela, nous allons le donner au groupe shadow et le rendre setuid :

# chown root:shadow /usr/lib/ejabberd/priv/bin/epam
# chmod 2755 /usr/lib/ejabberd/priv/bin/epam

Sous Debian, pour rendre cette modification persistante malgré les éventuelles mises à jour :

# dpkg-statoverride --add root shadow 2755 /usr/lib/ejabberd/priv/bin/epam

Configurer ejabberd

La configuration d'ejabberd se trouve dans le fichier /etc/ejabberd/ejabberd.cfg. Celui-ci est écrit en erlang, mais il est très bien commenté. Vous pouvez également vous référer au guide officiel qui contient une documentation exhaustive de la configuration d'ejabberd.

Réglages de base

Parmi les réglages les plus importants :

  • le ou les noms de domaines à servir :
%% Hostname
{hosts, ["example.com", "example.org"]}.
  • l'adresse Jabber de l'administrateur, qui aura des privilèges supérieurs sur le service :
%% Admin user
{acl, admin, {user, "tintin", "example.com"}}.

Mode d'identification

Par défaut, le serveur ejabberd utilise sa propre base d'identification, ce qui est adapté à un fournisseur générique de messagerie instantanée. En revanche, pour un auto-hébergement multi-services, on peut préférer utiliser l'identification du système d'exploitation. Pour cela :

%%
%% auth_method: Method used to authenticate the users.
%% The default method is the internal.
%% If you want to use a different method,
%% comment this line and enable the correct ones.
%%
%%{auth_method, internal}.

%%
%% Authentication using PAM
%%
{auth_method, pam}.

Chiffrement

Si vous comptez vous connecter à votre service de messagerie instantanée depuis l'extérieur, il est bon de mettre en place un chiffrement des connexions, pour éviter que votre mot de passe ne soit transmis en clair sur des réseaux qui vous ne maîtrisez pas. Pour cela, vous devez disposer d'un certificat SSL et de la clef qui va avec.

ejabberd doit pouvoir charger la clef, le certificat et le certificat de l'autorité depuis un seul fichier. Concaténez donc ces documents, et rendez le résultat lisible par ejabberd :

# cat /etc/ssl/private/example.com.key /etc/ssl/certs/example.com.pem /etc/ssl/certs/autorité.pem > /etc/ejabberd/ejabberd.pem
# chmod 440 /etc/ejabberd/ejabberd.pem
# chgrp ejabberd /etc/ejabberd/ejabberd.pem

Ensuite, configurez ejabberd pour utiliser ce certificat :

%%
%% domain_certfile: Specify a different certificate for each served hostname.
%%
{domain_certfile, "example.com", "/etc/ejabberd/ejabberd.pem"}.

Enfin, pour imposer le chiffrement pour toutes les connexions clientes et pour le proposer pour les connexions serveurs :

%%
%% listen: Which ports will ejabberd listen, which service handles it
%% and what options to start it with.
%%
{listen,
 [
  {5222, ejabberd_c2s, [
                        inet6,
                        {access, c2s},
                        {shaper, c2s_shaper},
                        {max_stanza_size, 65536},
                        starttls, starttls_required
                       ]},
  …
 ]}.

Essayer

Vous pouvez maintenant relancer ejabberd, avec la commande /etc/init.d/ejabberd restart, puis essayer de vous connecter à votre serveur avec votre client préféré. En cas de problème, la meilleure façon pour diagnostiquer les erreurs consiste à lancer ejabberd depuis la console, avec la simple commande ejabberd. Les erreurs les plus fréquents sont des oublis de points, d'accolades, de virgules ou de crochets dans le fichier de configuration.

serveurs/ejabberd.txt · Dernière modification: Fri Feb 10 13:28:13 2012 par samaël