9 mai 2021
Téléchargeons la distribution Raspbian/RaspberryPi OS Lite. Vous pouvez la télécharger ici.
Extraire le fichier et le flasher vers la carte SD (toutes les données de la carte seront perdues). Pour cela :
Branchez la carte SD sur votre PC
La commande sudo dmesg
vous donne son nom :
[ 9667.333966] mmc0: new high speed SDHC card at address 1234
[ 9667.334257] mmcblk0: mmc0:1234 SA08G 7.29 GiB
Pour flasher l’image, utilisez la commande dd :
dd if=/chemin/vers/mon/image/raspbian.img of=/dev/mmcblk0 status=progress
mmcblk0 est le nom que vous avez trouvé avec la commande dmesg
. Attention, une fausse manipulation avec dd peut vous faire perdre toutes vos données !
Créez un fichier "ssh" même vide dans la partition "boot".
cd /media/$USER/boot
touch ssh
Démarrez votre Raspberry Pi et suivez notre guide pour se mettre à l’aise.
Au moment de la rédaction de cet article, la version de ejabberd fournie avec Raspbian (18.04) date de plus de trois ans. Si cette version reste tout à fait correcte, la documentation la concernant n’est pas aisée à trouver. De plus, elle ne permet pas de gérer les appels audio/vidéo. Ce serait dommage de s’en priver.
Connectez-vous au raspberrypi :
ssh raspberrypi
Passez en mode administrateur
sudo -s
Actualisez les dépôts logiciels (comptez quelques minutes sur le Raspberry Pi 1).
apt update
Mettez à jour votre système (comptez encore quelques minutes)
apt upgrade
Nous allons alors passer de la version Buster de Raspbian à la version Bullseye afin d’avoir une version plus récente de ejabberd. c’est une étape relativement longue, comptez plusieurs heures.
Éditez votre fichier /etc/apt/sources.list
nano /etc/apt/sources.list
Et changez buster en bullseye dans le fichier :
deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi
Et mettez à jour le système (comptez plusieurs heures sur un Raspberry Pi 1) :
apt update; apt dist-upgrade
Il vous faudra probablement valider certains change log et validez certaines étapes.
Installez le serveur (comptez encore quelques minutes)
apt install ejabberd
Et nettoyez un peu le système
apt autoremove
La configuration du serveur se fait en éditant le fichier /etc/ejabberd/ejabberd.yml.
A chaque modification, il faut recharger la configuration avec la commande :
ejabberdctl reload-config
Faites une copie du fichier d’origine
cd /etc/ejabberd/
cp ejabberd.yml ejabberd.origin.yml
Activez le serveur pour le réseau local. Pour cela, trouvez l’adresse IP du Raspberry Pi avec la commande ip add
.
1: lo:
Ici, il s’agit de 192.168.1.43. C’est cette adresse que nous utiliserons par la suite en tant qu’adresse IP locale. A vous d’adapter en fonction de votre propre adresse IP.
Éditez le fichier de configuration
nano ejabberd.yml
Voici les passages qui nous intéressent, remplacez localhost par votre IP locale dans la liste des "hosts"
hosts:
- 192.168.1.43
Enregistrez (CTRL+O) et quittez (CTRL+X). Rechargez la configuration :
ejabberdctl reload-config
Vérifiez que la configuration a bien été prise en compte avec la commande
root@raspberrypi:/home/poivron# ejabberdctl registered_vhosts
192.168.1.43
En cas de souci ?
Par défaut, Ejabberd stocke ses log ici : /etc/ejabberd/ejabberd.yml. Pour afficher les dernières lignes du fichier, utilisez la commande tail. Rajoutez l’option "-f" pour afficher dans la console les lignes ajoutées au fichier en temps réel.
tail -f /etc/ejabberd/ejabberd.yml
Utilisez CTRL+C pour quitter ce mode.
Utilisez la commande ejabberdctl pour créer votre premier utilisateur. Ici, nous le nommerons "poivron", son mot de passe sera "TomateSecrete" et l’hôte 192.168.1.43.
root@raspberrypi:/home/poivron# ejabberdctl register poivron 192.168.1.43 TomateSecrete
Vérifiez que l’utilisateur a bien été créé.
root@raspberrypi:/home/poivron# ejabberdctl registered_users 192.168.1.43
poivron
Installez un client XMPP sur votre ordinateur ou téléphone. Si vous ne savez pas lequel choisir, prenez :
– Gajim (Linux et Windows)
– Conversations (Android)
– Blabber (fork de Conversations - Android)
– Dino (Linux) : Pas DINO, pas avant d’avoir correctement installé vos certificats !
Notes :
– Dino ne supporte pas les certificats non valides : ne pas l’utiliser pour vos premiers tests
– Blabber dispose d’une option pour activer la gestion de plusieurs comptes. Trouvez-la et activez-la.
Vous auriez besoin d’activer plusieurs comptes pour vos essais.
Connectez-vous au même réseau que le serveur (en Wifi sur votre box si vous utilisez un téléphone portable).
Créez un nouveau compte. Dans JID, entrez poivron@192.168.1.43, et votre mot de passe : TomateSecrete.
Vous aurez des avertissements liés aux certificats de sécurité, certains clients peuvent même bloqués silencieusement (comme Dino). Gajim, Conversations ou Blabber font l’affaire.
Regardez les logs et vous devriez voir :
[info] <0.366.0>@ejabberd_listener:accept/7:273 (<0.530.0>) Accepted connection [::ffff:192.168.1.79]:46426 -> [::ffff:192.168.1.43]:5222
[info] <0.530.0>@ejabberd_c2s:process_auth_result/3:268 (tls|<0.530.0>) Accepted c2s SCRAM-SHA-1 authentication for poivron@192.168.1.43 by mnesia backend from ::ffff:192.168.1.79
[info] <0.530.0>@ejabberd_c2s:bind/2:442 (tls|<0.530.0>) Opened c2s session for poivron@192.168.1.43/Conversations.4utN
Si vous arrivez à vous connecter, félicitations ! Votre serveur est fonctionnel sur votre réseau local. Mais attention, vous êtes loin d’avoir fini !