L’auteur a choisi le Open Internet/Free Speech Fund pour recevoir un don dans le cadre du programme Write for Donations.
Jitsi Meet est une application de vidéoconférence open-source basée sur WebRTC. Un serveur Jitsi Meet met à disposition des salles de visioconférence à plusieurs auxquelles vous pouvez accéder en utilisant rien de plus que votre navigateur, et offre des fonctionnalités comparables à celles d’une conférence téléphonique Zoom ou Skype. L’avantage d’une conférence Jitsi est que toutes vos données passent uniquement par votre serveur, et le cryptage TLS de bout en bout garantit que personne ne peut espionner pendant l’appel. Avec Jitsi, vous pouvez être sûr que vos informations privées le restent.
Dans ce tutoriel, vous allez installer et configurer un serveur Jitsi Meet sur Ubuntu 18.04. La configuration par défaut permet à quiconque de créer une nouvelle salle de conférence. Ce n’est pas idéal pour un serveur qui est publiquement disponible sur Internet. Vous devrez donc également configurer Jitsi Meet de manière à ce que seuls les utilisateurs enregistrés puissent créer de nouvelles salles de conférence. Une fois que vous avez créé la salle de conférence, tous les utilisateurs peuvent s’y joindre, à condition d’avoir l’adresse unique et le mot de passe facultatif.
Avant de commencer ce guide, vous aurez besoin des éléments suivants :
jitsi.your-domain
est utilisé.Lorsque vous choisissez un serveur pour exécuter votre instance Jitsi Meet, vous devez tenir compte des ressources système nécessaires pour accueillir les salles de conférence. Les informations de référence suivantes ont été recueillies à partir d’une machine virtuelle à noyau unique utilisant des paramètres vidéo de haute qualité :
CPU | Bande passante du serveur | |
---|---|---|
Deux participants | 3 % | 30Kbps en haut, 100Kbps en bas |
Trois participants | 15 % | 7Mbps en haut, 6,5Mbps en bas |
Le saut dans l’utilisation des ressources entre deux et trois participants est dû au fait que Jitsi acheminera les données d’appel directement entre les clients lorsqu’ils sont deux. Lorsque plus de deux clients sont présents, les données des appels sont acheminées par le serveur Jitsi Meet.
Au cours de cette étape, vous changerez le nom d’hôte du système pour qu’il corresponde au nom de domaine que vous avez l’intention d’utiliser pour votre instance de Jitsi Meet et vous résoudrez ce nom d’hôte en le remplaçant par l’IP localhost, 127.0.0.1
. Jitsi Meet utilise ces deux paramètres lorsqu’il installe et génère ses fichiers de configuration.
Tout d’abord, définissez le nom d’hôte du système sur le nom de domaine que vous utiliserez pour votre instance Jitsi. La commande suivante permet de définir le nom d’hôte actuel et de modifier le fichier /etc/hostname
qui conserve le nom d’hôte du système entre deux redémarrages :
- sudo hostnamectl set-hostname jitsi.your-domain
La commande que vous avez exécutée se décompose comme suit :
hostnamectl
est un utilitaire de la suite d’outils systemd pour gérer le nom d’hôte du système.set-hostname
définit le nom d’hôte du système.Vérifiez que cela a réussi en effectuant les opérations suivantes :
- hostname
Le nom d’hôte que vous avez défini avec la commande hostnamectl
vous sera alors renvoyé :
Outputjitsi.your-domain
Ensuite, vous établirez une correspondance locale entre le nom d’hôte du serveur et l’adresse IP de rebouclage, 127.0.0.1
. Faites-le en ouvrant le fichier /etc/hosts
avec un éditeur de texte :
- sudo nano /etc/hosts
Ensuite, ajoutez la ligne suivante :
127.0.0.1 jitsi.your-domain
Faire correspondre le nom de domaine de votre serveur Jitsi Meet à 127.0.0.1
permet à votre serveur Jitsi Meet d’utiliser plusieurs processus en réseau qui acceptent des connexions locales entre eux sur l’adresse IP 127.0.0.1
. Ces connexions sont authentifiées et cryptées avec un certificat TLS qui est enregistré à votre nom de domaine. Le mappage local du nom de domaine à 127.0.0.1
permet d’utiliser le certificat TLS pour ces connexions au réseau local.
Enregistrez et fermez votre fichier
Votre serveur a maintenant le nom d’hôte dont Jitsi a besoin pour l’installation. Dans l’étape suivante, vous ouvrirez les ports du pare-feu dont Jitsi et l’installateur du certificat TLS ont besoin.
Lorsque vous avez suivi le guide Configuration initiale du serveur avec Ubuntu 18.04, vous avez activé le pare-feu UFW et ouvert le port SSH. Le serveur Jitsi a besoin que certains ports soient ouverts afin de pouvoir communiquer avec les clients d’appel. De même, le processus d’installation de TLS doit avoir un port ouvert afin de pouvoir authentifier la demande de certificat.
Les ports que vous allez ouvrir sont les suivants :
80/tcp
utilisé dans la demande de certificat TLS.443/tcp
utilisé pour la page web de création de la salle de conférence.4443/tcp,10000/udp
utilisé pour transmettre et recevoir le trafic d’appels cryptés.Exécutez les commandes ufw
suivantes pour ouvrir ces ports :
- sudo ufw allow 80/tcp
- sudo ufw allow 443/tcp
- sudo ufw allow 4443/tcp
- sudo ufw allow 10000/udp
Vérifiez qu’ils ont tous été ajoutés avec la commande ufw status
:
- sudo ufw status
Vous verrez le résultat suivant si ces ports sont ouverts :
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
4443/tcp ALLOW Anywhere
10000/udp ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443/tcp (v6) ALLOW Anywhere (v6)
4443/tcp (v6) ALLOW Anywhere (v6)
10000/udp (v6) ALLOW Anywhere (v6)
Le serveur est maintenant prêt pour l’installation de Jitsi, que vous compléterez dans la prochaine étape.
Dans cette étape, vous allez ajouter le dépôt stable Jitsi à votre serveur et ensuite installer le paquet Jitsi Meet à partir de ce dépôt. Vous serez ainsi assuré de toujours utiliser le dernier paquet stable de Jitsi Meet.
Tout d’abord, téléchargez la clé Jitsi GPG avec l’utilitaire de téléchargement wget
:
- wget https://download.jitsi.org/jitsi-key.gpg.key
Le gestionnaire de paquets apt
utilisera cette clé GPG pour valider les paquets que vous téléchargerez depuis le dépôt Jitsi.
Ensuite, ajoutez la clé GPG que vous avez téléchargée au porte-clés d’apt
à l’aide de l’utilitaire apt-key
:
- sudo apt-key add jitsi-key.gpg.key
Vous pouvez maintenant supprimer le fichier de la clé GPG car il n’est plus nécessaire :
- rm jitsi-key.gpg.key
Maintenant, vous allez ajouter le dépôt Jitsi à votre serveur en créant un nouveau fichier source qui contient le dépôt Jitsi. Ouvrez et créez le nouveau fichier avec votre éditeur :
- sudo nano /etc/apt/sources.list.d/jitsi-stable.list
Ajoutez cette ligne au fichier pour le dépôt Jitsi :
deb https://download.jitsi.org stable/
Sauvegardez et quittez votre éditeur.
Enfin, effectuez une mise à jour du système pour recueillir la liste des paquets à partir du dépôt Jitsi et installez ensuite le paquet jitsi-meet
:
- sudo apt update
- sudo apt install jitsi-meet
Lors de l’installation de jitsi-meet
, vous serez invité à saisir le nom de domaine (par exemple, jitsi.your-domain
) que vous voulez utiliser pour votre instance Jitsi Meet.
Note : Vous déplacez le curseur à partir du champ du nom d’hôte pour mettre en évidence le <OK> avec la touche TAB
. Appuyez sur ENTER
lorsque <OK> est mis en évidence pour soumettre le nom d’hôte.
Une nouvelle boîte de dialogue vous demande si vous souhaitez que Jitsi crée et utilise un TLS auto-signé ou utilise un certificat existant que vous possédez déjà :
Si vous n’avez pas de certificat TLS pour votre domaine Jitsi, sélectionnez la première option, Générer un nouveau certificat auto-signé.
Votre instance Jitsi Meet a maintenant été installée en utilisant un certificat TLS auto-signé. Cela entraînera des avertissements au niveau du navigateur, de sorte que vous obtiendrez un certificat TLS signé à l’étape suivante.
Jitsi Meet utilise des certificats TLS pour crypter le trafic des appels afin que personne ne puisse écouter votre appel lorsqu’il circule sur l’internet. Les certificats TLS sont les mêmes certificats qui sont utilisés par les sites web pour activer les URL HTTPS.
Jitsi Meet fournit un programme permettant de télécharger automatiquement un certificat TLS pour votre nom de domaine qui utilise l’utilitaire Certbot. Vous devrez installer ce programme avant d’exécuter le script d’installation du certificat.
Tout d’abord, ajoutez le dépôt Certbot à votre système pour vous assurer que vous avez la dernière version de Certbot. Exécutez la commande suivante pour ajouter le nouveau référentiel et mettre à jour votre système :
- sudo add-apt-repository ppa:certbot/certbot
Ensuite, installez le paquet certbot
:
- sudo apt install certbot
Votre serveur est maintenant prêt à exécuter le programme d’installation du certificat TLS fourni par Jitsi Meet :
- sudo /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh
Lorsque vous exécutez le script, vous verrez apparaître l’invite suivante pour une adresse électronique :
Output-------------------------------------------------------------------------
This script will:
- Need a working DNS record pointing to this machine(for domain jitsi.example.com)
- Download certbot-auto from https://dl.eff.org to /usr/local/sbin
- Install additional dependencies in order to request Let’s Encrypt certificate
- If running with jetty serving web content, will stop Jitsi Videobridge
- Configure and reload nginx or apache2, whichever is used
- Configure the coturn server to use Let's Encrypt certificate and add required deploy hooks
- Add command in weekly cron job to renew certificates regularly
You need to agree to the ACME server's Subscriber Agreement (https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf)
by providing an email address for important account notifications
Enter your email and press [ENTER]:
Cette adresse électronique sera communiquée à l’émetteur du certificat https://letsencrypt.org
et sera utilisée pour vous informer sur la sécurité et d’autres questions liées au certificat TLS. Vous devez entrer une adresse électronique ici pour procéder à l’installation. L’installation s’achèvera alors sans autre indication.
Lorsqu’elle se terminera, votre instance Jitsi Meet sera configurée pour utiliser un certificat TLS signé pour votre nom de domaine. Les renouvellements de certificats se feront aussi automatiquement car l’installateur a placé un script de renouvellement à /etc/cron.weekly/letsencrypt-renew
qui se lancera chaque semaine.
L’installateur de TLS a utilisé le port 80
pour vérifier que vous aviez le contrôle de votre nom de domaine. Maintenant que vous avez obtenu le certificat, votre serveur n’a plus besoin d’avoir le port 80
ouvert car le port 80
est utilisé pour le trafic HTTP régulier et non crypté. Jitsi Meet ne sert son site web que via HTTPS sur le port 443
.
Fermez ce port dans votre pare-feu avec la commande ufw
suivante :
- sudo ufw delete allow 80/tcp
Votre serveur Jitsi Meet est maintenant opérationnel et disponible pour des tests. Ouvrez un navigateur et dirigez-le vers votre nom de domaine. Vous pourrez créer une nouvelle salle de conférence et inviter d’autres personnes à vous rejoindre.
La configuration par défaut pour Jitsi Meet est que toute personne visitant la page d’accueil de votre serveur Jitsi Meet peut créer une nouvelle salle de conférence. Cela utilisera les ressources système de votre serveur pour faire fonctionner la salle de conférence et n’est pas souhaitable pour les utilisateurs non autorisés. Dans l’étape suivante, vous configurerez votre instance Jitsi Meet pour permettre uniquement aux utilisateurs enregistrés de créer des salles de conférence.
Dans cette étape, vous configurerez votre serveur Jitsi Meet pour ne permettre qu’aux utilisateurs enregistrés de créer des salles de conférence. Les fichiers que vous allez éditer ont été générés par l’installateur et sont configurés avec votre nom de domaine.
La variable your_domain
sera utilisée à la place d’un nom de domaine dans les exemples suivants.
D’abord, ouvrez sudo nano /etc/prosody/conf.avail/your_domain.cfg.lua
avec un éditeur de texte :
- sudo nano /etc/prosody/conf.avail/your_domain.cfg.lua
Modifiez cette ligne :
...
authentication = "anonymous"
...
pour obtenir ce qui suit :
...
authentication = "internal_plain"
...
Cette configuration indique à Jitsi Meet de forcer l’authentification du nom d’utilisateur et du mot de passe avant d’autoriser la création d’une salle de conférence par un nouveau visiteur.
Ensuite, dans le même fichier, ajoutez la section suivante à la fin du fichier :
...
VirtualHost "guest.your_domain"
authentication = "anonymous"
c2s_require_encryption = false
Cette configuration permet à des utilisateurs anonymes de rejoindre des salles de conférence qui ont été créées par un utilisateur authentifié. Toutefois, le client doit disposer d’une adresse unique et d’un mot de passe facultatif pour accéder à la salle.
Ici, vous avez ajouté un invité
au début de votre nom de domaine. Par exemple, pour jitsi.your-domain
, vous devez mettre guest.jitsi.your-domain
. Le nom d’hôte de l’invité
n’est utilisé qu’en interne par Jitsi Meet. Vous n’aurez jamais à le saisir dans un navigateur ou à créer un enregistrement DNS pour lui.
Ouvrez un autre fichier de configuration à l’adresse /etc/jitsi/meet/your_domain-config.js
avec un éditeur de texte :
- sudo nano /etc/jitsi/meet/your_domain-config.js
Modifiez cette ligne :
...
// anonymousdomain: 'guest.example.com',
...
pour obtenir ce qui suit :
...
anonymousdomain: 'guest.your_domain',
...
Encore une fois, en utilisant le nom d’hôte guest.your_domain
que vous avez utilisé précédemment, cette configuration indique à Jitsi Meet quel nom d’hôte interne utiliser pour les invités non authentifiés.
Ensuite, ouvrez /etc/jitsi/jicofo/sip-communicator.properties
:
- sudo nano /etc/jitsi/jicofo/sip-communicator.properties
Et ajoutez la ligne suivante pour compléter les changements de configuration :
org.jitsi.jicofo.auth.URL=XMPP:your_domain
Cette configuration dirige l’un des processus Jitsi Meet vers le serveur local qui effectue l’authentification de l’utilisateur qui est maintenant requise.
Votre instance Jitsi Meet est maintenant configurée de manière à ce que seuls les utilisateurs enregistrés puissent créer des salles de conférence. Après la création d’une salle de conférence, n’importe qui peut la rejoindre sans avoir besoin d’être un utilisateur enregistré. Ils n’auront besoin que de l’adresse unique de la salle de conférence et d’un mot de passe facultatif défini par le créateur de la salle.
Maintenant que Jitsi Meet est configuré pour exiger des utilisateurs authentifiés pour la création de salles, vous devez enregistrer ces utilisateurs et leurs mots de passe. Vous utiliserez l’utilitaire prosodyctl
pour le faire.
Exécutez la commande suivante pour ajouter un utilisateur à votre serveur :
- sudo prosodyctl register user your_domain password
L’utilisateur que vous ajoutez ici n’est pas un utilisateur du système. Ils ne pourront que créer une salle de conférence et ne pourront pas se connecter à votre serveur via SSH.
Enfin, redémarrez les processus Jitsi Meet pour charger la nouvelle configuration :
- sudo systemctl restart prosody.service
- sudo systemctl restart jicofo.service
- sudo systemctl restart jitsi-videobridge2.service
Désormais, lors de la création d’une salle de conférence, l’instance Jitsi Meet demandera un nom d’utilisateur et un mot de passe par le biais d’une boîte de dialogue.
Votre serveur Jitsi Meet est maintenant installé et configuré de manière sécurisée.
Dans cet article, vous avez déployé un serveur Jitsi Meet que vous pouvez utiliser pour héberger des salles de visioconférence sécurisées et privées. Vous pouvez développer votre instance Jitsi Meet en suivant les instructions du Wiki Jitsi Meet.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!