Installer sur une fresh install Debian 10.6 net install (utilisateur root)
Installation et Configuration de Jitsi
https://www.digitalocean.com/community/tutorials/how-to-install-jitsi-meet-on-ubuntu-18-04
Pré-requis
https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-quickstart
apt-get install gnupg2 apt-transport-https nginx-full wget curl
Pour OpenJDK sur debian 10
https://adoptopenjdk.net/installation.html#linux-pkg
wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | apt-key add -
echo "deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb buster main" | tee /etc/apt/sources.list.d/adoptopenjdk.list
apt-get update
apt-cache search adoptopenjdk
apt-get install adoptopenjdk-8-hotspot
Configurer le nom de la machine Debian (/etc/hosts). Dans mon cas, je l’ai déjà correctement configuré à l’installation de la Debian
127.0.0.1 localhost
x.x.x.x meet.example.org meet
Ajout des dépots Jitsi.
https://github.com/jitsi/jitsi-meet#installation
curl https://download.jitsi.org/jitsi-key.gpg.key | sh -c 'gpg --dearmor > /usr/share/keyrings/jitsi-keyring.gpg'
echo 'deb [signed-by=/usr/share/keyrings/jitsi-keyring.gpg] https://download.jitsi.org stable/' | tee /etc/apt/sources.list.d/jitsi-stable.list > /dev/null
apt-get -y update
Firewall : Autorisé les ports suivants :
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 10000/udp
ufw allow 22/tcp
ufw allow 3478/udp
ufw allow 5349/tcp
Dans mon cas j’utilise un firewall OPNSense en amont. Si je souhaite augmenter la sécurité je peux également restreindre les ports sur la machine Jitsi également.
Installation de Jitsi
apt-get -y install jitsi-meet
1 – Mettre le FQDN (Ex: visio.domain.com)
2 – Dans mon cas, je n’ai qu’une seule adresse IP Public pour toute mon architecture. Je vais donc passer par un reverse proxy Nginx entre le firewall et la machine Jitsi.
J’utilise donc le certificat auto-signé. Le certificat Let’s Encrypt sera géré par le reverse proxy.
Pour un réseau NATTER comme le mien des modification seront à réaliser.
nano /etc/jitsi/videobridge/sip-communicator.properties
Ajouter y les lignes suivantes :
org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=10.10.10.26
org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=X.X.X.X(IP_PUBLIC)
Dans mon cas le port 10000 est utilisé.
Pour le modifier c’est également dans ce fichier :
Reverse Proxy Nginx
https://community.jitsi.org/t/jitsi-behind-the-nginx-reverse-proxy/25463/6
server {
if ($host = visio.domaine.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
listen [::]:80;
server_name visio.domaine.com;
}
server {
server_name visio.domaine.com;
listen 443 ssl; # managed by Certbot
location / {
ssi on;
proxy_pass https://10.10.2.26:4444;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
}
# BOSH
location /http-bind {
proxy_pass http://10.10.2.26:5280/http-bind;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
}
# xmpp websockets
location /xmpp-websocket {
proxy_pass http://10.10.2.26:5280/xmpp-websocket;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
tcp_nodelay on;
}
ssl_certificate /etc/letsencrypt/live/visio.domaine.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/visio.domaine.com/privkey.pem; # managed by Certbot
}
Firewall
#jitsi server
iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 4443 -j DNAT --to 10.10.10.26:4443
iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 4444 -j DNAT --to 10.10.10.26:4444
iptables -t nat -A PREROUTING -i vmbr0 -p udp --dport 10000 -j DNAT --to 10.10.10.26:10000
Si cela ne marche pas :
– Accès à l’interface Web mais problème pour ouvrir des pont visio :
Bien vérifier la configuration de son firewall
Pour info voici le résultat de mon netstat :
netstat -lptune
Connexions Internet actives (seulement serveurs)
Proto Recv-Q Send-Q Adresse locale Adresse distante Etat Utilisatr Inode PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 0 13531 365/sshd
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 0 17954 362/nginx: master p
tcp 0 0 0.0.0.0:5280 0.0.0.0:* LISTEN 107 20070 3308/lua5.2
tcp 0 0 127.0.0.1:5347 0.0.0.0:* LISTEN 107 20062 3308/lua5.2
tcp 0 0 0.0.0.0:5222 0.0.0.0:* LISTEN 107 20067 3308/lua5.2
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 0 13278 362/nginx: master p
tcp 0 0 0.0.0.0:5269 0.0.0.0:* LISTEN 107 20063 3308/lua5.2
tcp6 0 0 :::22 :::* LISTEN 0 13292 365/sshd
tcp6 0 0 :::8888 :::* LISTEN 997 18235 1636/java
tcp6 0 0 :::443 :::* LISTEN 0 17955 362/nginx: master p
tcp6 0 0 :::5280 :::* LISTEN 107 20071 3308/lua5.2
tcp6 0 0 :::9090 :::* LISTEN 998 17854 1242/java
tcp6 0 0 ::1:5347 :::* LISTEN 107 20061 3308/lua5.2
tcp6 0 0 :::5222 :::* LISTEN 107 20068 3308/lua5.2
tcp6 0 0 127.0.0.1:8080 :::* LISTEN 998 17202 1242/java
tcp6 0 0 :::80 :::* LISTEN 0 13279 362/nginx: master p
tcp6 0 0 :::5269 :::* LISTEN 107 20064 3308/lua5.2
udp 0 0 10.10.2.26:3478 0.0.0.0:* 108 20837 3347/turnserver
udp 0 0 10.10.2.26:3478 0.0.0.0:* 108 20836 3347/turnserver
udp 0 0 127.0.0.1:3478 0.0.0.0:* 108 20833 3347/turnserver
udp 0 0 127.0.0.1:3478 0.0.0.0:* 108 20832 3347/turnserver
udp 0 0 10.10.2.26:3479 0.0.0.0:* 108 20839 3347/turnserver
udp 0 0 10.10.2.26:3479 0.0.0.0:* 108 20838 3347/turnserver
udp 0 0 127.0.0.1:3479 0.0.0.0:* 108 20835 3347/turnserver
udp 0 0 127.0.0.1:3479 0.0.0.0:* 108 20834 3347/turnserver
udp6 0 0 ::1:3478 :::* 108 20840 3347/turnserver
udp6 0 0 ::1:3478 :::* 108 20841 3347/turnserver
udp6 0 0 ::1:3479 :::* 108 20842 3347/turnserver
udp6 0 0 ::1:3479 :::* 108 20843 3347/turnserver
udp6 0 0 :::31408 :::* 997 18190 1636/java
Pour le debug :
/var/log/jitsi/jvb.log
/var/log/jitsi/jicofo.log
/var/log/prosody/prosody.log
Pour récupérer les statistiques avec Prometheus et les afficher sur Grafana, voir :
https://memos.nadus.fr/?p=1057&preview=true
Commentaires récents