En entreprise, la confidentialité des échanges est primordial. Or comment être sûr de celle-ci lorsque l’on passe par MSN, Facebook, Skype ou autre pour échanger en temps réel avec ses collègues? Pourtant s’affranchir de ces services ne représente pas un investissement colossale. Il suffit d’un RaspberryPI à 30€ et de 10 minutes.

Ce tutoriel n’est qu’un premier pas dans l’installation et l’administration d’un serveur de messagerie. D’autres suivront pour avoir une installation complète mais j’ai préféré décrire ici le chemin le plus court pour commencer à discuter avec des amis ou des collègues en dehors de tout réseau privateur.

Installation de ejabberd

En partant d’une installation de Raspbian standard, connectez-vous avec l’utilisateur pi et tapez les commandes suivantes :

$ sudo aptitude install ejabberd

(Si vous ne l’avez pas fait depuis longtemps, n’oubliez pas de taper sudo aptitude update d’abord)

Cette commande va installer le serveur ejabberd.

Il s’agit d’un serveur de messagerie instantanée implémentant le protocole xmpp. La particularité de ce protocol, outre le fait que ce soit un standard ouvert (ce que ne sont pas MSN ou Skype), est de permettre à des comptes enregistrés sur différents serveurs de communiquer entre eux. Tout comme pour les e-mails, bob@toto.fr peut dialoguer avec alice@tata.com sans avoir à s’inscrire sur tata.com (cette fonctionnalité fera l’objet d’un autre tutoriel)

Il existe différents serveurs XMPP mais ejabberd étant présent dans les dépôts raspbian, il est très rapide à installer. Libre à vous d’en utiliser un différent.

La première étape est de créer un nouvel utilisateur que l’on nommera administrateur du service.

Création d’un premier utilisateur

Pour créer un utilisateur, on utilise la commande suivante:

$ sudo ejabberdctl register <user> <host> <password>

En premier lieu vous pouvez donc taper:

$ sudo ejabberdctl register toto localhost monpass

Ensuite éditez le fichier /etc/ejabberd/ejabberd.cfg (je pars du principe que vous savez éditer un fichier)

et cherchez

%% Admin user
{acl, admin, {user, "", "localhost"}}.

Et modifiez-la en conséquence:

%% Admin user
{acl, admin, {user, "toto", "localhost"}}.

Redémarrez le serveur via la commande suivante :

$ sudo service ejabberd restart

Vous pouvez dès à présent vous connecter à l’interface d’administration à partir d’une autre machine à l’aide de n’importe quel navigateur web via l’URL: http://adresse_de_votre_raspberry:5280/admin mais pour l’instant, nous ne l’utiliserons pas vraiment.

Vous pouvez aussi installer un logiciel client comme pidgin sur n’importe quelle machine et y ajouter un compte.

Les informations de compte à préciser sont les suivantes :

Protocole: XMPP
Utilisateur: toto
Domaine: localhost
Mot de passe: monpass
Serveur: &lt;adresse_de_votre_raspberry&gt;</pre>

Normalement Pidgin vous demande d’accepter un certificat. En effet lors de l’installation de ejabberd un fichier /etc/ejabberd/ejabberd.pem est créé (vous évitant au passage d’avoir à le faire vous même). Comme il n’a été validé par aucun organisme, Pidgin n’y fait pas confiance et vous demande votre avis. Ce n’est pas le cas de tous les logiciels de messagerie instantanée. D’autres refusent catégoriquement de fonctionner sans autre forme de procès. Donc réjouissez-vous du travail des développeurs de Pidgin et acceptez le certificat.

Ajouter d’autres utilisateurs

Normalement, vous devriez être connecté maintenant, mais vous êtes tout seul. Réutilisez la commande de création de compte pour ajouter de nouveaux utilisateurs sur votre serveur. Comme nous l’avons vu, la commande nécessite de fournir un mot de passe à l’utilisateur lors de sa création. Prenez bien garde à considérer ce mot de passe comme un simple mot de passe temporaire! Une fois connectés, vos amis pourront le changer via Pidgin dans le menu “Comptes”.

Pour ajouter un ami “titi” à votre liste de contact il suffit de cliquer sur Contact»Ajouter un contact et entrer titi@localhost.

Configurez votre parefeu

Si vous et vos contacts êtes tous en local, tout devrait déjà fonctionner correctement. Si vos contacts sont à l’extérieur de votre réseau, il faudra configurer le NAT de votre “bidulebox” ou routeur en tout genre pour faire pointer le port 5222 sur l’adresse ip locale de votre raspberry. Je vous laissez le soin de vous renseigner sur la marche à suivre pour configurer votre NAT.

Conclusion

Il nous reste pas mal de choses à voir pour disposer d’un système de messagerie instantanée digne de ce nom. Pour l’instant nous avons des comptes en *@localhost*, au lieu de *@maboiteamoi.com*, nous n'avons pas vu comment connecter notre système à celui de nos partenaires, ou faire de la visioconférence et échanger des fichier. Tous ces points feront l'objet d'autres articles.

Pour l’heure, il vous est déjà possible d’échanger en direct avec vos collègues sans dépendre d’un système externe, privateur et opaque.

Nota bene: cet article est orienté pour le RaspberryPI mais la procédure est évidemment identique à peu de chose près avec n’importe quelle distribution GNU/Linux proposant ejabberd dans ses dépôts.