Videoconferenza con un numero illimitato di partecipanti: creare il proprio server in 10 minuti

Come creare un server per videoconferenze professionali con Jitsi Meet, senza appoggiarsi a fornitori di terze parti. Numero illimitato di partecipanti, nessuna limitazione di banda e dati sempre protetti.

In era smart working, per avviare una videoconferenza esistono molteplici servizi, ciascuno con le sue peculiarità e i suoi limiti. Jitsi Meet è un prodotto opensource distribuito sotto licenza libera Apache 2.0 che può essere installato in proprio per allestire velocemente un server per le videoconferenze.

Nell’articolo Videoconferenze e riunioni online con la soluzione opensource Jitsi Meet abbiamo presentato tutte le principali funzionalità della piattaforma soffermandoci anche sulle misure di sicurezza adottate: i flussi audio e video, così come gli altri contenuti scambiati durante un meeting online (messaggi di testo, immagini, file,…) viaggiano in forma crittografata cosicché nessun soggetto terzo possa esaminarli, sottrarli o danneggiarli.

Jitsi Meet è quindi uno strumento eccellente per creare un server per le videoconferenze, perfetto per essere utilizzato in azienda o da un team di professionisti.
Installando Jitsi Meet su un proprio server, si potrà disporre di uno strumento che consente di avviare riunioni con un numero virtualmente illimitato di partecipanti e, soprattutto, avere la certezza che tutti i dati scambiati non transiteranno più attraverso sistemi generalmente gestiti da soggetti con sede fuori dai confini dell’Unione Europea.

Nel periodo emergenziale che stiamo attraversando dovuto all’epidemia da COVID-19, sempre più aziende e istituzioni scolastiche (sono tanti gli studenti, anche minorenni, che per via della didattica a distanza hanno dovuto utilizzare sistemi di videoconferenze) si chiedono quale piattaforma consenta di ottenere le migliori garanzie in termini di sicurezza e privacy.
Installando Jitsi Meet su un proprio server cloud, amministrato personalmente, si eviterà che i dati dei partecipanti possano essere condivisi con soggetti terzi.

Rispetto ad altri sistemi di videoconferenza, la banda disponibile non sarà condivisa con altri utenti e si avrà la certezza che il servizio funzioni sempre con le massime prestazioni e una qualità delle immagini davvero senza paragoni.

Una volta configurato Jitsi Meet, si potranno organizzare videoconferenze professionali e parteciparvi utilizzando il browser web, da PC Windows, sistemi macOS e Linux ma anche servirsi dei dispositivi mobili iOS e Android, grazie ai client dedicati scaricabili a questo indirizzo.

Come creare un server per le videoconferenze in 10 minuti

Qualche tempo fa abbiamo pubblicato una guida all’installazione e alla configurazione di Jitsi Meet su un server Ubuntu Linux: Server videoconferenze: come crearlo in proprio sul cloud.

La buona notizia è che Aruba Cloud ha creato un template preconfigurato che consente di avviare un server per le videoconferenze Jitsi Meet in soli 10 minuti.

Per creare un server Jitsi Meet sul cloud basta accedere al pannello di configurazione Aruba Cloud quindi avviare la configurazione di un server PRO o SMART, a seconda delle proprie esigenze.

Cliccando sul pulsante Scegli template quindi scorrendo le varie proposte mostrate nella colonna di sinistra, si troverà un template dal nome CentOS 8 64 bit – Jitsi. In alternativa, è possibile digitare jitsi nella casella di ricerca in alto a destra.

Dopo aver cliccato su Scegli questo template, si dovranno impostare le caratteristiche della macchina virtuale in termini di CPU, memoria RAM e spazio su disco (queste preferenze potranno essere eventualmente modificate in seguito scalando verso l’alto o verso il basso). Per impostazione predefinita, Aruba Cloud assegnerà automaticamente un IP pubblico alla macchina in corso di creazione.

Come ultimo passo, bisognerà assegnare un nome alla macchina virtuale Jitsi Meet e scegliere una password root sufficientemente lunga e complessa.

Va tenuto presente che tale password verrà utilizzata sia per l’accesso al server CentOS via SSH ma anche per il login su Jitsi Meet con l’account amministratore (al fine di creare una nuova “stanza” o “sala riunione” per avviare la videoconferenza).

Una volta creato il nuovo server su Aruba Cloud, si dovrà annotare il suo IP pubblico (mostrato nella sezione “Gestione“) quindi digitarlo nel campo Host name (or IP address di un client SSH come PuTTY.

Dopo aver cliccato su Open, digitando come nome utente root e come password quella scelta in fase di configurazione della macchina virtuale, si potrà accedere alla gestione del server cloud.

Innanzi tutto, digitando semplicemente l’IP pubblico del server Jitsi Meet nella barra degli indirizzi del browser, si potrà verificare che tutto è già installato e pronto per l’uso.
Il template offerto gratuitamente da Aruba Cloud contiene infatti già tutto il necessario per iniziare a lavorare e avviare le proprie videoconferenze con un numero illimitato di partecipanti.

Digitando l’indirizzo IP del server appena creato nella barra degli indirizzi si vedrà comparire l’errore “La connessione non è privata” (ERR_CERT_AUTHORITY_INVALID).
Ciò è assolutamente normale perché Jitsi Meet è stato installato nella macchina virtuale usando un certificato digitale “auto-generato” quindi sprovvisto della firma di un’autorità di certificazione valida e riconosciuta.

Cliccando su Avanzate quindi sul link Procedi su… in basso, si potrà comunque verificare che Jitsi Meet risulta pienamente funzionante e pronto per avviare una videoconferenza.

Il consiglio è quello di far puntare un proprio dominio, ad esempio un terzo livello, verso l’IP della macchina virtuale Jitsi Meet (bisognerà modificare a livello di DNS il record A di un dominio sotto il proprio controllo).

Una volta che il record DNS si sarà correttamente propagato, si potrà digitare quanto segue nella shell SSH di PuTTY:

nano /opt/jitsi/docker-jitsi-meet/.env

Bisognerà quindi rimuovere il simbolo # che precede i valori ENABLE_LETSENCRYPT, LETSENCRYPT_DOMAIN e LETSENCRYPT_EMAIL.

In corrispondenza del secondo si deve indicare il dominio che si è associato, via DNS, all’IP pubblico del server Jitsi Meet; accanto a LETSENCRYPT_EMAIL, invece, va indicato l’indirizzo postmaster o hostmaster del dominio principale.
Si tratta di informazioni utili per richiedere, generare e utilizzare sul server cloud un certificato digitale Let’s Encrypt per proteggere le connessioni HTTPS ed evitare la comparsi di errori come quello visto in precedenza.

Premendo CTRL+O quindi Invio si salverà la configurazione mentre usando la combinazione di tasti CTRL+X si potrà chiudere l’editor di testo.

Si dovranno quindi digitare i seguenti comandi per rimuovere la configurazione di SSL presente nel template di Aruba e chiedere a Jitsi Meet di generarne una nuova aggiungendo il certificato digitale per il dominio collegato all’IP pubblico:

cd /opt/jitsi/docker-jitsi-meet
rm -f /opt/jitsi/jitsi-meet-cfg/web/nginx/ssl.conf
docker-compose -f docker-compose.yml -f etherpad.yml down
docker-compose -f docker-compose.yml -f etherpad.yml up -d

Digitando nella barra degli indirizzi del browser il dominio scelto per il server Jitsi Meet, la configurazione avverrà usando il protocollo HTTPS e non verrà più visualizzato alcun errore.

Per evitare che Jitsi Meet risponda anche sull’IP pubblico, se digitato nella barra degli indirizzi del browser, si può digitare:

nano /opt/jitsi/jitsi-meet-cfg/web/nginx/ssl.conf

In fondo al file di configurazione, si può aggiungere:

if ($host != "terzolivello.nomedominio.com") {
return 404;
}

Sostituendo ovviamente il nome a dominio corretto associato lato DNS al server Jitsi Meet.

Dopo aver salvato il file (premere CTRL+O, Invio quindi CTRL+X), affinché la modifica abbia effetto, basterà ricaricare il container Docker che ospita Jitsi Meet:

docker restart docker-jitsi-meet_web_1

Per fare in modo che Jitsi Meet venga automaticamente ricaricato dopo ogni riavvio della macchina virtuale suggeriamo di attenersi ai seguenti passaggi:

1) Digitare nano /etc/systemd/system/docker-compose-app.service
2) Copiare quanto segue e incollarlo nell’editor di testo via SSH premendo il tasto destro del mouse:

[Unit]
Description=Docker Compose Application Service
Requires=docker.service
After=docker.service

[Service]
Type=oneshot
RemainAfterExit=yes
WorkingDirectory=/opt/jitsi/docker-jitsi-meet
ExecStart=/usr/local/bin/docker-compose -f docker-compose.yml -f etherpad.yml up -d
ExecStop=/usr/local/bin/docker-compose -f docker-compose.yml -f etherpad.yml down
TimeoutStartSec=0

[Install]
WantedBy=multi-user.target

3) Impartire i comandi seguenti:

systemctl daemon-reload
systemctl start docker-compose-app
systemctl enable docker-compose-app

In questo modo, ci si assicurerà che il container Docker che ospita Jitsi Meet sia automaticamente caricato a ogni riavvio del server cloud.
Per provare che tutto funzioni, si può digitare reboot e premere Invio: dopo il riavvio, Jitsi Meet tornerà immediatamente in esecuzione.

Collegandosi con il server Jitsi Meet da web e provando a creare una nuova riunione, cliccando su I am the host, si dovrà digitare admin e come password quella associata all’account root del server.

Per evitare di dover utilizzare tale password o se si volessero designare altri amministratori, basterà portarsi nella finestra della shell SSH e digitare:

docker exec docker-jitsi-meet_prosody_1 prosodyctl --config /config/prosody.cfg.lua register USERNAME meet.jitsi 'PASSWORD'

Le stringhe USERNAME e PASSWORD dovranno essere ovviamente sostituite con le credenziali dell’account amministrativo che si sta aggiungendo (non è neppure necessario riavviare il server).

Da app per dispositivi mobili, per collegarsi al proprio server Jitsi Meet, basterà accedere alle impostazioni quindi modificare il contenuto del campo URL del server (impostare l’indirizzo completo HTTPS).

Come ultimo passo suggeriamo di installare tutti gli aggiornamenti disponibili sul server usando il comando yum update -y e approfondire con la lettura dell’articolo Come mettere in sicurezza un server virtuale Linux sul cloud.

Proteggere l’accesso a Etherpad

Il template Jitsi Meet di Aruba Cloud integra anche Etherpad, uno strumento per l’editing collaborativo di documenti. È accessibile digitando l’URL corretto nella barra degli indirizzi quindi /etherpad.

Per fare in modo che a ogni tentativo di accesso a Etherpad vengano richiesti nome utente e password, è possibile digitare quanto segue:

sh -c "echo -n 'nomeutente:' >> /opt/jitsi/jitsi-meet-cfg/web/nginx/.htpasswd"
sh -c "openssl passwd -apr1 >> /opt/jitsi/jitsi-meet-cfg/web/nginx/.htpasswd"
cat /opt/jitsi/jitsi-meet-cfg/web/nginx/.htpasswd
nano /opt/jitsi/jitsi-meet-cfg/web/nginx/meet.conf

Al posto di nomeutente va specificato il nome utente che dovrà essere inserito per accedere a Etherpad. Il comando successivo permette di scegliere una password.
L’istruzione cat serve semplicemente per verificare che le credenziali siano state effettivamente aggiunte al file .htpasswd.

Nel file meet.conf aperto con l’ultimo comando, all’interno del blocco location /etherpad/ { }, bisognerà aggiungere:

auth_basic "Etherpad";
auth_basic_user_file .htpasswd;

Dopo aver premuto CTRL+O, CTRL+X si dovrà riavviare il container Docker di Jitsi Meet:

docker restart docker-jitsi-meet_web_1

In questa pagina maggiori informazioni per la configurazione del container Docker di Jitsi Meet.

Ti consigliamo anche

Link copiato negli appunti