Ajout du service XMPP aux comptes Mail avec Prosody

Cet article vient en complément à l’article précédent et il permet d’apprendre à configurer un service XMPP associé aux comptes des utilisateurs de mail. Pour cela nous allons utiliser le serveur XMPP Prosody.
Le serveur XMPP Prosody est disponible sous Gnu/Linux Debian Wheezy 7.0 en version >=0.8. Pour l’installer avec les dépendances nécessaires à notre configuration, rien de plus simple avec notre habituelle commande :

apt-get install prosody libluacyrus

Nous allons donc utiliser SASL pour authentifier les comptes, cette authentification sera faite sur la base de données gérer par le PostfixAdmin que nous avons mis en place pour gérer nos comptes mails.

La particularité des cette authentification est qu’elle ne permet pas d’enregistrer via le protocole XMMP des nouveaux utilisateurs, ni même de faire modifier son mot de passe. Cela n’est possible que dans le cadre de la gestion des comptes Mails. le service XMPP est considéré comme un service annexe à nos comptes utilisateurs.

Les informations complémentaires, qui servent à la gestion du compte XMPP, sont maintenues dans la base de Prosody située dans /var/lib/prosody.

Pour des raisons technique, nous somme dans l’obligation d’avoir les mots de passe en clair dans la base de données (ceci est notre cas) en attendant que l’authentification avec SCRAM-SHA-1 soit généralisée et supportée par nos applications.

Pour configurer, cette configuration sera appliquée à tous les hôtes virutels, nous devons modifier ou ajouter les options suivantes :
/etc/prosody/prosody.cfg.lua

admins = { "LECOMPTEQUISERALADMINDEPROSODY" }; // exemple: admins = { "admin@exemple.com" }
use_libevent = true; //meilleures performances.
c2s_require_encryption = true;
anonymous_login = false;
allow_unencrypted_plain_auth = false;  // sauf connection en TLS/SSL.
authentication = "cyrus";
storage = "internal";

Il faut ajouter un répertoire /etc/sasl pour y mettre le fichier qui permettra l’authentification avec les informations situées dans la base postgresql que nous avons crée lors de l’article précédent avec PostfixAdmin.

# mkdir -p /etc/sasl

Dans ce répertoire nous créons le fichier /etc/sasl/prosody.conf dans le quel nous mettons la configuration suivante :

pwcheck_method: auxprop
mech_list: PLAIN
minimum_layer: 0
auxprop_plugin: sql
log_level: 2
sql_engine: pgsql
sql_hostnames: localhost // ou le nom du serveur où se trouve Postgresl-server.
sql_user: NOMUTILISATEURPOSTFIXDOVECOT // le nom qui a seulement lecture seul sur la base.
sql_database: NOMBASEDEDONNEES
sql_passwd: LEMOTDEPASSETRESSECRET
sql_mda: sha1
sql_usessl: no  // de préférence yes si la base est sur un serveur distant.
sql_select: select password from "PREFIX"mailbox where username = '%u@%r'

Pour terminer, nous activons le ou les domaines qui seront avec le service XMPP en plus du service de mail.
/etc/prosody/conf.avail/MONDOMAINE.TLD.cfg.lua

 
VirtualHost "MONDOMAINE.TLD"
enabled = true;
ssl = {
    key = "/etc/prosody/certs/LACLECERTIFICAT.key";
    certificat = "/etc/prosody/certs/LECERTIFCAT.crt";
};

Puis, nous activons le domaine géré :

# cd /etc/prosody/conf.d/
# ln -s ../conf.avail/MONDOMAINE.TLD.cfg.lua .

Maintenant, vos utilisateurs mail pourront utiliser le service XMPP en utilisant le même identifiant et mot de passe que pour le service mail. Le mot de passe est modifiable via votre webmail Roundcube, un miniSSO ;).

Ce contenu a été publié dans Libre, Techno, Tutoriel, avec comme mot(s)-clé(s) , , , , , , . Vous pouvez le mettre en favoris avec ce permalien.