Jitsi (https://jitsi.org/) est un service multiplateforme permettant de mettre en place des visioconférences chiffrées. Les visioconférences sont visibles avec l'application Jitsi Meet, accessible avec un navigateur web, mais qui est existe également en version mobile pour Android et iOS.
La documentation suivante présente l'installation simple d'un serveur Jitsi couplé à l'application web Jitsi Meet sur un système Ubuntu Server 20.04. Pour des installations plus complexes, comme l'installation sur un serveur se trouvant derrière une translation d'adresses (NAT), vous pouvez vous compléter cette documentation avec celles dont les sources se trouvent en bas de page.
Pré-requis
Serveur et domaine
Vous devez disposer d'un serveur Linux accessible via un nom de domaine dédié au service Jitsi (jitsi.domaine.tld par exemple, qui va être utilisé durant toute cette documentation). Il est conseillé d'utiliser un serveur dédié plutôt qu'un serveur VPS dont la qualité du trafic réseau n'est pas garantie.
Votre serveur doit avoir au moins 1 coeur et 1 Go de mémoire vive. Mais le double est conseillé (voir plus en fonction si le nombre de personnes devant accéder aux visioconférences est important).
Certificat
Si votre hébergeur vous propose un certificat wildcard, récupérez la clé privée et le certificat intermédiaire (bundle : concaténation du certificat du domaine et du certificat intermédiaire de l'émetteur) et stockez les dans un répertoire de votre serveur (/etc/nginx/ssl/
si vous utilisez un serveur Nginx par exemple). Si vous n'avez pas de certificat de ce type, Jitis vous proposera de créer un certificat autosigné.
Pare-feu de l'hébergeur
Généralement, un pare-feu est activé au niveau de l'hébergeur de votre serveur. Sur ce pare-feu ouvrez les ports suivants :
- Port 80 avec TCP (pour la vérification du certificat et/ou le renouvellement avec Let's Encrypt)
- Port 443 avec TCP (pour l'accès à Jitsi)
- Port 10000 avec UDP (pour les communications audio et vidéo)
- Port 22 avec TCP (si votre serveur est accessible via SSH)
- Port 3478 avec UDP (optionnel, pour demander un serveur stun)
- Port 5349 avec TCP (alternative pour les communications audio et vidéo avec TCP si UDP est bloqué)
Préparation
- Mettez à jour les dépots et paquets sur votre serveur.
- Si votre serveur ne possède pas de serveur web, installez en un (Nginx par exemple).
- Installez le paquet
apt-transport-https
pour accéder aux dépots via HTTPS. - Ajoutez les dépots
universe
avec la commandeapt-add-repository universe.
- Récupérez et installez la clé des dépots de Jitsi :
curl https://download.jitsi.org/jitsi-key.gpg.key | sudo sh -c 'gpg --dearmor > /usr/share/keyrings/jitsi-keyring.gpg'
- Ajoutez les dépots de Jitsi :
echo 'deb [signed-by=/usr/share/keyrings/jitsi-keyring.gpg] https://download.jitsi.org stable/' | sudo tee /etc/apt/sources.list.d/jitsi-stable.list > /dev/null
- Mettez à jour vos dépots.
Installation
Pare-feu du système
Si vous utilisez (ou souhaitez utiliser, ce qui n'est pas une obligation surtout si votre serveur est protégé par le pare-feu de l'hébergeur) le pare-feu Netfilter inclus dans Ubuntu Server, vous devez autoriser le trafic en fonction des ports cités ci dessus (22, 80, 443 et 5349 avec TCP, 3478 et 10000 avec UDP) en utilisant la commande ufw
par exemple :
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 10000/udp
ufw allow 22/tcp
ufw allow 3478/tcp
ufw allow 5349/udp
ufw enable
(pour activer le pare-feu)ufw status verbose
(pour vérifier le status du pare-feu et les règles).
Installation de Jitsi Meet
Vous pouvez maintenant installer Jitsi Meet en installant le paquet jitsi-meet
.
Lors de l'installation du paquet, deux informations vous sont demandées :
- Le domaine par lequel votre serveur est accessible (jitsi.domaine.tld par exemple)
- Si vous souhaitez générer un certificat autosigné ou si vous possédez votre propre certificat. Si vous choisissez cette deuxième option, vous devez indiquer ensuite le chemin d'accès à votre clé et à votre certificat intermédiaire.
Lors de l'installation, le serveur web est configuré automatiquement. Votre serveur Jitsi est donc maintenant accessible et utilisable via votre domaine.
Restreindre la création de conférence
Par défaut, n'importe quelle personne accédant à votre serveur peut créer une conférence. Il est possible néanmoins de restreindre cette possibilité à une liste d'utilisateurs enregistrés, en modifiant trois fichiers de configuration. Dans les noms de fichiers et les valeurs à configurer suivants, remplacez jitsi.domaine.tld par le domaine permettant d'accéder à votre serveur Jitsi.
Modification du fichier /etc/prosody/conf.avail/jitsi.domaine.tld.cfg.lua
Modifiez la ligne authentication = "anonymous"
en authentication = "internal_plain"
pour forcer l'authentification au moment de la création de la conférence.
Ajoutez à la fin du fichier les lignes suivantes, afin d'autoriser les invités anonymes aux conférences via un nom d'hote interne (ici, guest.jitsi.domaine.tld
) :
VirtualHost "guest.jitsi.domaine.tld"
authentication = "anonymous"
c2s_require_encryption = false
Modification du fichier /etc/jitsi/meet/jitsi.domaine.tld-config.js
Une modification dans ce fichier permet d'indiquer à Jitsi Meet le nom de domaine interne pour les invités non authentifiés.
- Décommentez la ligne
anonymousdomain: 'guest.example.com',
(en enlevant les//
devant). - Modifiez cette ligne en remplaçant
example.com
par votre demaine :anonymousdomain: 'guest.jitsi.domaine.tld',
Modification du fichier /etc/jitsi/jicofo/sip-communicator.properties
Ce dernier fichier à modifier permet de diriger l'un des processus Jitsi Meet vers le serveur local qui effectue l'authentification de l'utilisateur.
Ajoutez à la fin du fichier la ligne org.jitsi.jicofo.auth.URL=XMPP:jitsi.domaine.tld
Création des utilisateurs authentifiés pouvant créer des conférences
La création des utilisateurs authentifiés pouvant créer des conférences se fait avec la commande prosodyctl
. Ces utilisateurs n'auront aucun droit sur le système, ils ne pourront que créer une conférence via Jitsi Meet.
Syntaxe de la commande pour créer un utilisateur : prosodyctl register nomutilisateur jitsi.domaine.tld motdepasse
Redémarrage des services
Afin de prendre en compte les modifications concernant l'authentification des utilisateurs, il faut redémarer trois services :
systemctl restart prosody.service
systemctl restart jicofo.service
systemctl restart jitsi-videobridge2.service
Une authentification est maintenant requise pour créer une salle de conférence.