Jabber setup

Updated 7 Mars 2019

XMPP

Introduction

XMPP (Extensible Messaging and Presence Protocol, ex Jabber) est un protocole de messagerie instantanée libre et convivial, qui permet d'avoir des informations sur le statut en temps quasi réel. Les comptes et groupes utilisateurs sont stockés sur le serveur OpenLDAP. Ejabberd est utilisé comme serveur XMPP. Le logiciel nécessaire est inclus avec [Calculate Directory Server] (cds).

Configurer un serveur LDAP

Les outils Calculate permettent de stocker les comptes et les groupes d'utilisateurs sur un serveur OpenLDAP. Configurez d'abord le service LDAP conformément au manuel.

Configuration Jabber

Commençons par installer Jabber :

cl-setup jabber
* ATTENTION : L'exécution de ce programme modifie les fichiers de configuration du service Jabber (Ejabberd). Si vous voulez continuer, entrez 'yes', sinon entrez 'non' : yes

Entrez le mot de passe pour admin@calculate.spb.calculate.ru
Nouveau mot de passe:
Répétez le nouveau mot de passe:
* Utilisateur ajouté au service Jabber
* Ajouté le fichier ldif....                                                    [ ok ]
* Démarrer Ejabberd...                                                          [ ok ]
* Service Jabber configuré ....                                                 [ ok ] 

Une fois cette opération terminée, Jabber sera configuré avec les paramètres par défaut. Le nom d'hôte du service Jabber est le nom d'hôte de l'ordinateur.

Pour définir des hôtes Jabber supplémentaires, utilisez le paramètre --hosts.

Lors de la configuration du service, entrez le mot de passe du compte admin .

Les comptes

Chaque utilisateur sur le réseau a un identifiant unique, un Jabber ID, ou JID . Comme l'email, une adresse JID contient le nom d'utilisateur et le nom de domaine du serveur sur lequel l'utilisateur est enregistré, séparés par le signe @ . Par exemple, un utilisateur enregistré sur example.org aura l'adresse JID suivante : user@example.org.

Pour ajouter un compte Jabber, utilisez la commande `cl-useradd'.

Pour ajouter un utilisateur surnommé Guest , guest@example.org, exécutez:

cl-useradd -p -c "Guest" guest jabber
Nouveau mot de passe:
Répétez le nouveau mot de passe:
* Utilisateur ajouté au service Jabber 

Pour ajouter l'utilisateur guest@example.org avec le pseudo Guest~ et lui attribuer une photo, lancez la commande suivante :

cl-useradd -p -c "Guest" -i pic/guest.png guest jabber

Note

Les formats d'image pris en charge sont déterminés par la fonctionnalité d'ImageMagick. Si ce dernier n'est pas installé, seul le format jpeg sera disponible.

Pour changer le mot de passe d'un compte Jabber, utilisez cl-passwd. Par exemple, pour changer le mot de passe de guest, exécutez :

cl-passwd guest jabber
Nouveau mot de passe :
Répétez le nouveau mot de passe :
* Mot de passe de l'utilisateur Jabber modifié 

Pour verrouiller un compte utilisateur, utilisez cl-usermod -L. Par exemple, pour verrouiller guest, exécutez:

cl-usermod -L guest jabber
* Utilisateur invité du service Jabber verrouillé 

Pour déverrouiller un compte, lancez `cl-usermod -U'. Par exemple, pour déverrouiller guest, exécutez:

cl-usermod -L guest jabber
* Utilisateur invité du service Jabber déverrouillé 

Pour supprimer un compte de Jabber, lancez `cl-userdel'. Par exemple, pour supprimer guest, exécutez:

cl-userdel guest jabber
* Utilisateur invité du service Jabber supprimé 

Groupes

Un groupe est un ensemble de JIDs utilisés pour envoyer des messages à plusieurs utilisateurs en même temps. Lorsqu'un utilisateur se connecte sur Jabber, il reçoit automatiquement une liste de groupes et de leurs membres. Les utilisateurs sans groupe doivent être ajoutés manuellement à la liste de contacts. Chaque utilisateur ne peut appartenir qu'à un groupe.

Pour créer un groupe Jabber, utilisez la commande `cl-groupadd'. Par exemple, pour créer un groupe nommé "Testing Group", exécutez :

cl-groupadd "Testing Group" jabber
* Groupe 'Testing Group' ajouté au service Jabber 

Pour renommer un groupe Jabber existant, utilisez `cl-groupmod'. Par exemple, pour renommer 'Testing Group' en 'My Test', procédez comme suit:

cl-groupmod -n 'My Test' 'Testing Group' jabber
* Groupe renommé en My Test 

Pour gérer un groupe Jabber, utilisez les commandes cl-groupmod et cl-usermod. Pour ajouter un utilisateur guest au groupe 'Guest Group', exécutez `cl-usermod' comme indiqué ci-dessous:

cl-usermod -g "Guest Group" guest jabber
* Groupe d'utilisateurs modifié 

Pour supprimer l'utilisateur guest du groupe 'Guest Group', exécutez:

cl-groupmod -d guest "Guest group" jabber
* Utilisateurs supprimés du groupe Guest Group 

Pour ajouter les utilisateurs guest et guest2~ au groupe 'Guest'~~, tapez :

cl-groupmod -a guest,guest2 "Guest group" jabber
* Utilisateurs ajoutés au groupe Guest Group 

Restrictions

Si vous avez plus d'une interface réseau sur votre serveur alors que vous n'en utilisez qu'une, ajoutez la directive ip correspondante à /etc/jabber/ejabberd.yml

/etc/jabber/ejabberd.yml

...
listen:
  -
    port: 5223
    module: ejabberd_c2s
    max_stanza_size: 65536
    tls: true
    ip: "192.168.0.2"
    certfile: "/etc/jabber/ssl.pem"
    shaper: c2s_shaper
    access: c2s
...