Sommaire
I. Connaître sa version d’ubuntu
Il suffit juste d’ouvrir un terminal (pour ceux qui utilise un ubuntu graphique) pour les autres je suppose que vous utilisez putty, donc tapez simplement la commande suivante:
- Commande: lsb_release -sc
Par exemple je suis sous trusty soit ubuntu 14.04 LTS.
root@xxxxx:/# lsb_release -sc trusty
|
II. Installation de Prosody
Si votre version fait partie de la liste suivante:
- Debian: stable, unstable, testing, sid, squeeze, wheezy, jessie
- Ubuntu: lucid, precise, trusty, utopic
Alors vous pouvez taper la ligne suivante:
root@xxxxx:/# echo deb http://packages.prosody.im/debian $(lsb_release -sc) main | sudo tee -a /etc/apt/sources.list |
Afin d’éviter des avertissements sur les paquets non authentifiés, on va installer le fichier de clé suivant:
root@xxxxx:/# wget https://prosody.im/files/prosody-debian-packages.key -O- | sudo apt-key add – |
Enfin nous allons faire une recherche des paquets et installer le paquet Prosody:
root@xxxxx:/# sudo apt-get update root@xxxxx:/# sudo apt-get install prosody |
Attention: Si vous avez une version 64bits il faudra installer la librairie Liblua 64bits (qui sert au chiffrement ssl).
32 Bits
root@xxxxx:/# wget http://prosody.im/downloads/debian/liblua5.1-sec0_0.3.2-2prosody1_i386.deb root@xxxxx:/# sudo dpkg -i liblua5.1-sec0_0.3.2-2prosody1_i386.deb |
64 Bits
root@xxxxx:/# wget http://prosody.im/downloads/debian/liblua5.1-sec0_0.3.2-2prosody1_amd64.deb root@xxxxx:/# sudo dpkg -i liblua5.1-sec0_0.3.2-2prosody1_amd64.deb |
Passons à la génération du certificat SSL:
root@xxxxx:/# cd /etc/prosody/certs/ root@xxxxx:/# sudo openssl req -new -x509 -days 365 -nodes -out ”nomdudomaine.fr.cert” -keyout ”nomdudomaine.fr.key” Generating a 2048 bit RSA private key |
Il faut remplacer “ nomdudomaine.fr ” par le nom de votre domaine.
Lors de cette génération j’ai eu l’erreur suvante:
general error The version of LuaExpat on your system does not support stanza size limits, which may leave servers on untrusted networks (e.g. the internet) vulnerable to denial-of-service attacks. You should upgrade to LuaExpat 1.3.0 or higher as soon as possible. See http://prosody.im/doc/depends#luaexpat for more information. |
Pour télécharger et installer LuaExpat 1.3.0, procédez ainsi:
Téléchargement:
root@xxxxx:/# wget lua-expat_1.3.0-1_i386.deb root@xxxxx:/# dpkg -i lua-expat_1.3.0-1_i386.deb |
à adapter si vous avez télécharger la version 64 Bits
Nous pouvons passer à la configuration de Prosody.
III. Configuration de Prosody
La configuration de Prosody ce passe dans le fichier suivant: /etc/prosody/prosody.cfg.lua. Il faut donc l’éditer.
root@xxxxx:/# nano /etc/prosody/prosody.cfg.lua |
Voici les lignes à ajouter:
VirtualHost ”nomdudomaine.fr” |
Pour que la configuration soit prise en compte il nous faut redémarrer Prosody:
root@xxxxx:/# sudo service prosody restart |
Ne pas oublier d’ouvrir les port de votre pare-feu :
root@xxxxx:/# sudo iptables -A INPUT -p tcp root@xxxxx:/# sudo iptables -A INPUT -p tcp root@xxxxx:/# sudo iptables -A OUTPUT -p tcp |
On vérifie les régles iptable:
root@xxxxx:/# sudo iptables -L | grep xmpp |
Nous pouvons attaquer la création d’un compte utilisateur:
root@xxxxx:/# sudo prosodyctl adduser nomutilisateur@nomdudomaine.fr |
Le mot de passe sera à saisir deux fois
IV. Clients XMPP
Alors il y a une tripoté de clients XMPP, ici j’utiliserai Pidgin (Linux / Windows) et Xabber (Android).
V. Aller plus loin: les modules
Je vous ai choisi une petite sélection de modules “utiles” selon moi parmi la liste disponible ici
- mod_announce
- mod_presence
- mod_muc
- mod_motd
- mod_welcome
- mod_compression
Pour rajouter ces modules il faut éditer le fichier: /etc/prosody/prosody.cfg.lua
- mod_announce
Permet d’envoyer un message à tous les utilisateurs, par exemple pour prévenir d’une maintenance. Seul les administrateurs peuvent le faire.
modules_enabled = { |
- mod_presence
Permet aux utilisateurs d’envoyer les notifications de status, pour savoir s’ils sont en ligne, ocuupé, etc.
modules_disabled = { |
- mod_muc
MUC qui signifie : Multi-user chat, permet de créer des salons de discussions ou chatroom.
Component ”conference.example.com” ”muc” |
- mod_motd
Permet d’envoyer un message à l’utilisateur, à chaque fois qu’il se connecte.
ps: Je ne sais pas si je vais le laisser car un peu trop intrusif (une fenêtre de chat qui s’ouvre à chaque fois moi ça m’énerve :P)
modules_enabled = { motd_text = [[Welcome to the server! Please enjoy your stay.]] |
- mod_welcome
Envoi un message pour les nouveaux utilisateurs.
modules_enabled = { welcome_message = ”$host accepts you $user” $host: l’hôte du nouvel utilisateur $user: Le nom de l’utilisateur |
- mod_compression
Permet comme son nom l’indique une compression des flux. L’option: compression_level permet de choisir le niveau de compression. Il va de 1 à 9, sachant que 9 est le meilleur niveau de compression, il utilise aussi plus de ressource mais moins de bande passante.
modules_enabled = { compression_level = 5 |
VI. Sécurisation
Vérifiez que dans le fichier de configuration: /etc/prosody/prosody.cfg.lua, les deux lignes suivante soit présente (dans la conf global ou bien spécifié dans le virtualhost) et mise à true :
c2s_require_encryption = true |