Accueil > Informatique > Ejabberd sur Ubuntu

Ejabberd sur Ubuntu

25/08/2006

JabberIl ne s’agit pas ici d’une explication destinée à une mise en production, mais plutôt d’un mini HOWTO pour démarrer. C’est une sorte de pense-bête que je retrouverais plus tard car je ne vais pas y consacrer énormément de temps dans l’immédiat. Pense-bête que je partage. Mais faire ce que j’indique ici est à vos risques et périls.

Cette documentation a permis d’installer ejabberd 1.0.0 .

Le site de référence est : http://ejabberd.jabber.ru/

Pour mon propre démarrage, je me suis aidé de ce document : Ejabberd sur jabberfr.org .

Une doc in english assez assez utile est présente sur le site de Process One .

Première partie : installation logicielle

  1. Installer une Ubuntu 6.06 Dapper de type serveur (ou LAMP si besoin). On peut partir sur une installation déjà effectué, en mode graphique, … mais faisons simple et clair.
  2. Mettre à jour le système :
    • sudo apt-get update
    • sudo apt-get dist-upgrade
    • sudo shutdown -r now (une mise à jour du noyau ayant probablement été effectuée)
  3. Installer un serveur SSH : sudo apt-get install ssh (ce n’est pas obligatoire, mais c’est bien pratique avec PuTTY) .
  4. Décommenter les lignes dans le fichier /etc/apt/sources.list spécifiques à universe :
    • deb http://fr.archive.ubuntu.com/ubuntu/ dapper universe
    • deb-src http://fr.archive.ubuntu.com/ubuntu/ dapper universe
    • deb http://security.ubuntu.com/ubuntu dapper-security universe
    • deb-src http://security.ubuntu.com/ubuntu dapper-security universe
  5. Prendre en compte les nouveaux paquets disponibles puis installer ejabberd et ce dont il aura besoin (dont erlang) automatiquement :
    • sudo apt-get update
    • sudo apt-get install ejabberd

Seconde partie : configuration minimaliste

Attention, les points présents dans les éléments de paramétrages de ejabberd ne sont pas là pour faire joli, il ne faut pas les oublier !

  1. Editer le fichier de configuration /etc/ejabberd/ejabberd.cfg (sudo…). Le fichier étant commenté, il sera aisé de savoir où ajouter ou modifier les éléments qui suivent.
  2. Ajouter dans la première partie du fichier le nom d’un utilisateur (qui sera créé plus tard) pouvant administrer ejabberd avec la ligne suivante : {acl, admin, {user, “sam”}}. (ici l’utilisateur est “sam”)
  3. Rechercher la déclaration {hosts, ["localhost"]}. et remplacer localhost par le bon nom de machine (par exemple “ubuntu”, pour du test).
  4. Rechercher la déclaration {language, “en”}. et remplacer par {language, “fr”}. (donc en français par défaut)
  5. Redémarrer ejabberd : sudo /etc/init.d/ejabberd restart
  6. Créer le compte d’administration soit à l’aide d’un client (par exemple Psi), soit (plus rapide) à l’aide de la commande ejabberdctl. Dans mon exemple : ejabberdctl register sam ubuntu mon_mot_de_passe
  7. Se connecter à l’aide d’un navigateur sur le service d’adminisatration : http://nom_ou_ip_de_la_mahcine:5280/admin , l’identifiant devant être complet (ici toujours sam@ubuntu) et le mot de passe étant celui indiqué lors de la création du compte avec ejabberdctl ou le client Jabber.

Voilà une base d’installation effectuée !

Troisième partie : complements utiles

Il peut être souhaitable de ne pas laisser les utilisateurs s’enregistrer eux-même. Pour ce faire il faut mettre en commentaire la ligne contenant {access, register, [{allow, all}]}. et décommenter (ou ajouter) la ligne {access, register, [{deny, all}]}.

Afin de sécuriser les connexions, il est préférable d’imposer l’accès avec cryptage SSL. Il suffit de neutraliser l’accès via le port 5222 en mettant en commentaire les lignes concernées dans le fichier de configuration. Attention à ne pas mettre en commentaire le crochet ouvrant “[" au début de la liste de protocoles (s'il est sur la même ligne).

Pour la création et gestion de carnets d'adresses, voir cette page . C'a n'a pas l'air clair à première vue, mais en essayant les cas de figures présentés puis en bricolant un peu, tout s'éclaire !

L'utilisation de serveurs virtuels (plusieurs domaines sur une installation) est simple. Par exemple pour avoir deux domaines (toujours dans le cadre de mon exemple) :

  • La déclaration de hosts contient alors une simple liste : {hosts, ["ubuntu-jabber","zozo-jabber"]}.
  • Pour éviter d’avoir à créer un second utilisateur d’administration dans le second domaine, je modifie la déclaration des comptes d’administration : {acl, admin, {user, “dieu”,”ubuntu-jabber”}}. Voir cette page pour (un peu) plus d’informations.

L’utilisation d’un connecteur MSN est possible en utilisant le connecteur PyMSNt et en suivant la documentation disponible sur le site, ou son équivalent sur ejabberd.jabber.ru . Concernant Ubuntu, cela s’installe comme sur une Debian. Je ne sais pas dans quelle mesure ce composant est sécurisé. De plus, l’installation étant manuelle, il est important de ne pas l’installer n’importe où, de ne pas le faire fonctionner avec des droits d’administration ou un utilisateur pouvant acquérir ces droits par sudo, … Il est à noter que l’usage de ce connecter pour l’utilisateur final lui impose d’avoir un compte MSN, et que ce n’est pas très intuitif à paramétrer (je n’ai pas dit compliqué).

Le fonctionnement de certaines options est dépendant de la bonne résolution de noms. Par exemple l’utilisation des conférences impose un préfixe conference. devant le nom de domaine. Il en va de même avec le connecteur MSN qui impose msn. en préfixe. Par exemple pour le domaine im.exemple.com il faudra que conference.im.exemple.com et msn.im.exemple.com soient définis, ou à défaut qu’un wildcard soit défini pour im.exemple.com.

Un point très important : les sauvegardes. La commande ejabberdctl permet de sauvegarder à chaud, mais également de restaurer à chaud (sans demande de confirmation, attention…). Pour s’en rendre compte il suffit de sauvegarder la base, de supprimer un utilisateur, puis de restaurer et de le voir de retour ! A essayer sur une base de test ;)

Sam. Informatique ,

  1. kael
    18/12/2006 à 13:49 | #1

    Très bon how-to.

    Il serait intéressant d’ajouter un partie sur l’installation avec SSL pour accéder à https://nom_ou_ip_de_la_mahcine:5280/admin.

  2. kael
    19/12/2006 à 23:46 | #2

    Je rebondis sur le message précédent pour ceux que cela pourrait éventuellement intéresser.

    Pour accéder à l’interface web_admin en SSL, modifiez /etc/ejabberd/ejabberd.cfg avec :

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

  3. 30/12/2006 à 13:09 | #3

    OK,
    Pr ma part, le point 6 a du être exécutée en “SU”

    \T,

  4. S4mdf0o1
    09/10/2010 à 14:02 | #4

    Perso, j’utilise un tunnel ssh pour l’interface web-admin de ejabberd
    -Bien que tout client sachant dcouvrir et diffuser les services suffit-

    {5280, ejabberd_http, [
    {ip, {127, 0, 0, 1}},
    {access, all},
    http_poll,
    web_admin
    ]}

    et :
    $ ssh -N -L 5280:localhost:5280 user@serveur

    navigateur sur : http://localhost:5280/admin

  5. 23/05/2012 à 09:45 | #5

    En raison d’un nombre croissant (et délirant) de spams sur cette page, elle est fermée aux commentaires. Désolé.

Les commentaires sont fermés.