Server videoconferenze: come crearlo in proprio sul cloud

Come creare un server per avviare videoconferenze e riunioni virtuali sul cloud (ma anche on-premise): la soluzione Jitsi Meet.

Jitsi Meet è una soluzione opensource (si tratta anche di un software libero distribuito sotto licenza Apache 2.0) che permette di effettuare videoconferenze e organizzare meeting online.
Nell’articolo Videoconferenze e riunioni online con la soluzione opensource Jitsi Meet abbiamo presentato tutte le principali funzionalità della piattaforma.

Rispetto ai tanti servizi gratuiti e a pagamento per le videoconferenze, il vantaggio di Jitsi Meet è che può essere installato e configurato molto facilmente su un proprio server. È quindi possibile acquistare un servizio cloud in proprio quindi installare Jitsi Meet sul server virtuale.
Si tratta di una possibilità eccellente perché consente di organizzare in proprio riunioni virtuali di livello professionale, con la possibilità di condividere lo schermo senza doversi appoggiare a service provider che non offrono dettagli sulle modalità di gestione dei dati degli utenti e sulle misure di sicurezza adottate.

Installando Jitsi Meet su un server cloud (provare, ad esempio, con quelli Aruba Cloud) si può allestire in pochi minuti una sala riunioni pronta per avviare conversazioni audio e video, da qualunque dispositivo grazie al supporto di tutti i browser a loro volta compatibili con il protocollo WebRTC e dei dispositivi mobili Android e iOS (per questi è disponibile un’apposita app client).

Per installare Jitsi Meet sul cloud è sufficiente creare una macchina virtuale con almeno 1 GB di RAM, una CPU a 2 GHz, 25 GB di spazio per la memorizzazione dei dati e possibilmente un’interfaccia 10 Gigabit Ethernet (GbE).
Nel nostro esempio di configurazione utilizzeremo un server cloud gestito con VMware come hypervisor e creato a partire da un template di Ubuntu Server 18.04 LTS (per il test abbiamo usato il servizio Aruba Cloud, al quale si riferiscono le successive due schermate).

Ovviamente, nulla vieta di creare il server per le videoconferenze Jitsi Meet anche in locale, on premise, soprattutto se si disponesse di una connessione in fibra da 1 Gbps, con la possibilità di attivare eventualmente la link aggregation.
È altrettanto possibile scegliere altre distribuzioni Linux anche se i passaggi illustrati nel nostro articolo dovranno essere in tal caso opportunamente riadattati.
Oltre ai requisiti hardware e software indicati in precedenza, è bene tenere presente che per usare Jitsi Meet il server dovrà consentire l’accesso in ingresso sulle seguenti porte: TCP 80 (HTTP), TCP 443 (HTTPS) e UDP 10000-20000.

Dopo aver effettuato il login sul server cloud sul quale si desidera installare il sistema per le videoconferenze Jitsi Meet e verificato di essere in possesso dei permessi di root (nei passaggi seguente non anteponiamo il comando sudo), impartendo il comando iptables -L -n si possono controllare le regole firewall eventualmente in uso.

Per impostazione predefinita, a meno di personalizzazioni applicate dal fornitore del template, Ubuntu non impone alcuna regola firewall di default.
Se a monte del server fosse presente un firewall fisico o virtuale, potrebbe non essere necessario configurare regole firewall lato server Ubuntu.
Diversamente, se il server Ubuntu fosse direttamente esposto sulla rete, è bene digitare quanto segue (diamo per scontato di usare una macchina Ubuntu Server nella configurazione predefinita):

ufw --force enable
ufw allow in ssh
ufw allow in 80/tcp
ufw allow in 443/tcp
ufw allow in 10000:20000/udp
ufw status

I comandi che seguono permettono di scaricare la chiave pubblica con cui sono firmati i file d’installazione di Jitsi Meet e aggiungerla al “portachiavi” di Ubuntu.

wget https://download.jitsi.org/jitsi-key.gpg.key
gpg jitsi-key.gpg.key
gpg --search-keys dev@jitsi.org

Dopo aver impartito l’ultimo comando, per confermare l’aggiunta al keyring di solito basta premere “1”, in modo tale da selezionare la chiave pubblica di Jitsi che corrisponde all’ultima parte della chiave RSA ottenuta con il secondo comando.

Con i comandi che seguono si potranno invece importare le chiavi dei principali membri del team di sviluppo di Jitsi Meet:

gpg --list-sigs dev@jitsi.org
gpg --recv-keys D6FF2D8D8030357F
gpg --recv-keys 3449EC3AC2EFE8AA

Le chiavi possono essere a questo punto aggiunte sul sistema Ubuntu Server in uso digitando quanto segue:

apt-key add jitsi-key.gpg.key

Il passaggio successivo consiste nell’aggiunta del repository che contiene i file d’installazione di Jitsi Meet:

echo 'deb https://download.jitsi.org stable/' > /etc/apt/sources.list.d/jitsi-stable.list

Il protocollo WebRTC si appoggia a HTTPS per scambiare i dati in modo sicuro tra server e client collegati (e viceversa).
Come per qualunque server web, si può acquistare un certificato digitale firmato da un’autorità di certificazione approvata a livello internazionale, generarne uno gratuitamente con Let’s Encrypt (HTTPS, come ottenere un certificato digitale gratuito) oppure produrne uno firmato in proprio (in questo caso la connessione al server per le videoconferenze sarà però indicata come Non sicura da parte del browser).

Download e installazione di Jitsi Meet

Per procedere con il download e l’installazione del software per le videoconferenze Jitsi Meet, basterà digitare quanto segue:

apt update
apt -y install jitsi-meet

Quando viene richiesto, nella schermata The hostname of the current installation si deve inserire l’indirizzo mnemonico che si assocerà – a livello di record DNS – al server Jitsi Meet.

Per creare un certificato firmato in proprio (ovviamente non sarà riconosciuto come valido dai browser web) per poi sostituirlo ad esempio con un certificato digitale emesso da Let’s Encrypt, si può scegliere la prima opzione Generate a new self-signed certificate.

A questo punto si può rispondere No per evitare che i componenti di Jitsi Meet vengono automaticamente aggiornati e riavviati in caso di necessità. Scegliendo Yes, infatti, potrebbero verificarsi improvvise interruzioni del servizio, cosa da scongiurare allorquando si fosse collegati in videoconferenza.
Da ultimo si dovrà acconsentire al riavvio dei servizi che fanno usano di OpenSSL.

Una volta tornati al prompt della finestra del terminale SSH, si potrà digitare quanto segue per avviare lo script che consente di configurare l’utilizzo di un certificato digitale Let’s Encrypt:

 /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh

La procedura integrata in Jitsi Meet consente di gestire l’intera procedura di generazione e installazione del certificato Let’s Encrypt.

In primis bisognerà indicare un indirizzo email valido sul quale saranno inviate tutte le comunicazioni relative al certificato in fase di creazione (Enter your email and press ENTER). Prima di avviare la procedura, è comunque bene verificare che un eventuale nuovo nome a dominio si sia correttamente propagato: allo scopo si può usare il comando nslookup NOME_DNS 8.8.8.8 per interpellare i server DNS di Google (vedere Server DNS: come funziona e a cosa serve Nslookup).

A questo punto è davvero tutto pronto: da client basta digitare nella barra degli indirizzi del browser https:// seguito dall’indirizzo mnemonico del server Jitsi Meet impostato in precedenza a livello di DNS.

Si sarà così creato il proprio server Jitsi Meet e sin da subito si potrà iniziare a usarlo per le proprie videoconferenze. I dettagli sul funzionamento dell’interfaccia di Jitsi Meet sono illustrati nel nostro approfondimento Videoconferenze e riunioni online con la soluzione opensource Jitsi Meet.

Limitare l’accesso al server per la videoconferenza Jitsi Meet

Nella guida abbiamo visto come installare e configurare rapidamente Jitsi Meet utilizzando come server Eclipse Jetty che viene utilizzato per default (se fossero presenti i server Apache HTTPd o nginx, la routine di installazione ne riconoscerà la presenza e userà quelli).

Il consiglio è a questo punto quello di esportare possibilmente la configurazione della macchina virtuale creata sul cloud. Molti provider consentono di salvarne una copia in locale come file di macchina virtuale in formato VMDK o VHDX (il sistema cloud dovrà però essere preventivamente spento a distanza, ad esempio digitando poweroff).

Per attivare un meccanismo di autenticazione sul server Jitsi Meet in modo da evitare che utenti sconosciuti possano sfruttare il servizio e “succhiare” banda, è possibile comportarsi come segue:

1) Avviare di nuovo la macchina virtuale sul cloud.

2) Stabilire nuovamente una connessione SSH con il server Ubuntu sul quale si è installato Jitsi Meet.

3) Installare il pacchetto Jigasi per attivare l’autenticazione al server Jitsi Meet:

apt-get install jigasi -y

In questa fase si può saltare la configurazione di un account SIP scegliendo semplicemente OK nelle due schermate che vengono proposte una dopo l’altra.

4) Digitare ls /etc/prosody/conf.avail per individuare il nome del file di configurazione con estensione .lua associato alla configurazione di Jitsi Meet appena impostata.

5) Scrivere quindi: nano /etc/prosody/conf.avail/NOME-SERVER.cfg.lua

6) In corrispondenza del primo Virtualhost, corrispondente al record DNS aggiunto, individuare la riga authentication = "anonymous" e modificarla in authentication = "internal_plain".

7) Premere la combinazione di tasti CTRL+O quindi Invio per salvare la modifica e infine CTRL+X per uscire dall’editor di testo.

8) Utilizzare infine il comando seguente per impostare uno o più nomi utente aventi titolo per accedere al server Jitsi Meet:

prosodyctl register NOME-UTENTE NOME-SERVER PASSWORD

9) Riavviare infine il server Linux con il comando reboot.

10) A questo punto, a ogni tentativo di accesso o creazione di una nuova “stanza” per le videoconferenze, Jitsi Meet chiederà di inserire nome utente e password validi.

Ti consigliamo anche

Link copiato negli appunti