SERVEUR DE CHAT XMPP (Prosody)

Contexte :

Pourquoi ?

La mise en place d’un tel serveur permet à une équipe de pouvoir échanger des informations de façon sécurisé a l’intérieur de l’entreprise. Rien ne sort sur internet tout passe seulement par le serveur Prosody. De plus le protocole XMPP est compatible avec toutes les plateformes (Windows, Mac, Linux, iOS, etc…) alors, pourquoi s’en priver ?

Objectifs :

  • Préparer la machine
  • Installer prosody
  • Générer un certificat auto-signé
  • Configurer prosody
  • Ajouter des utilisateurs
  • Configuration de Pidgin (Client XMPP sous Windows)

I – préparation de la machine :

Changer le nom de la machine :

nano /etc/hostname

Redémarrer pour mettre à jour le nom de la machine :

init 6

Après redémarrage le nouveau nom de la machine apparaît : “root@im_server:~#”

II – Installation de Prosody :

Avant toute installation il est fortement recommandé de mettre à jour la machine

apt-get -y update && apt-get -y upgrade

Installer le paquet Prosody :

apt-get install prosody

IV – Génération d’un certificat auto-signé :

Pour pouvoir s’échanger des messages de façon sécurisée il va falloir créer un certificat.

Création de la clé de cryptage : (exemple sur le domaine lan.local)

openssl genrsa -out /etc/prosody/certs/im.lan.local.key 2048

#Requête open ssl pour sortir un fichier « im.lan.local.key » contenant une clé de cryptage générée en 2048 bits.

Création du certificat :

openssl req -new -x509 -key /etc/prosody/certs/im.lan.local.key -out /etc/prosody/certs/im.lan.local.cert -days 1095

#Génération du certificat « im.lan.local.cert » à partir de la clé de cryptage.

Exemple de création de certificat :

root@im_server:~# openssl req -new -x509 -key /etc/prosody/certs/im.lan.local.key -out /etc/prosody/certs/im.lan.local.cert -days 1095

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [AU]:FR

State or Province Name (full name) [Some-State]:Deux-Sevres

Locality Name (eg, city) []:NIORT

Organization Name (eg, company) [Internet Widgits Pty Ltd]:Lan Industry

Organizational Unit Name (eg, section) []:SECINFO

Common Name (e.g. server FQDN or YOUR name) []:lan.local

Email Address []:lan@local.fr

V – Configuration de Prosody :

Se rendre dans le fichier de configuration de Prosody :

nano /etc/prosody/prosody.cfg.lua

Ajouter un futur administrateur en modifiant la ligne “admins“:

admins = {"alex@im.lan.local"}

Mettre à jour l’emplacement de la clé et du certificat en modifiant la ligne “ssl“:

ssl = {

key = "/etc/prosody/certs/im.lan.local.key";

certificate = "/etc/prosody/certs/im.lan.local.cert";

}

Changer la méthode d’identification en modifiant la ligne “authentication” :

authentication = "internal_hashed"

Ajouter à la fin du ficher le nom du serveur :

host "im.lan.local"

Sauvegarder et quitter :

CTRL+X, o, touche Entrée

Recharger & redémarrer le service Prosody :

root@im_server:~# /etc/init.d/prosody reload

[ ok ] Reloading prosody configuration (via systemctl): prosody.service.

root@im_server:~# /etc/init.d/prosody restart

[ ok ] Restarting prosody (via systemctl): prosody.service.

VI – Ajout d’utilisateurs :

prosodyctl adduser alex@im.lan.local

prosodyctl adduser remi@im.lan.local

VII – Installation et configuration de Pidgin (client XMPP) :

Le client est téléchargeable ici : https://www.pidgin.im/

A la première ouverture, cliquer sur « ajouter » :

Dans l’onglet « essentiel », Renseigner le protocole, l’utilisateur, le domaine, le mot de passe et l’alias local :

Dans L’onglet « avancé », renseigner le serveur de connexion :

Après avoir valider les paramètres, accepter le certificat auto-signé :

Ajouter le contact Rémi pour voir si tout fonctionne :

Sur le PC de Rémi apparait une demande d’ami, il faut l’accepter :

Rémi est amené suite à l’autorisation à ajouter le contact Alex :

Test de conversation… :

Soumettre un commentaireSoyez poli.

Votre commentaire