RustDesk è un software per il controllo remoto open source, che si presenta senza tanti giri di parole come alternativa totalmente "free" a TeamViewer. Contrariamente al concorrente più conosciuto, RustDesk è gratuito anche per uso professionale, e consente persino di installare "RustDesk Server" sulla propria infrastruttura: questo comporta importanti benefici in termini di privacy, abbattimento dei costi e affidabilità, poiché ci consente di svincolarci totalmente da qualsiasi server intermedio gestito da terzi. In questa guida vedremo quindi come installare RustDesk Server su Ubuntu Server, e come utilizzarlo al posto di TeamViewer per controllare un sistema da remoto o fornire assistenza tecnica
Una volta attivato RustDesk Server su un proprio sistema, esso si occuperà di coordinare la connessione fra il PC che controlla (quello di chi fornisce assistenza, ad esempio) e quello che deve essere controllato. Questa meccanica sarà pressoché invisibile agli utenti, che potranno continuare ad utilizzare lo strumento in modo del tutto simile a quanto siano abituati con TeamViewer e simili. Per una panoramica di RustDesk, programma di controllo remoto, si veda quest'altro approfondimento dedicato:
» Leggi: RustDesk l’alternativa open source a TeamViewer e AnyDesk
Nella presente guida, invece, ci concentreremo sulla preparazione del sistema con RustDesk Server, che poi sfrutteremo al posto delle istanze fornite dallo sviluppatore
Per svolgere la procedura descritta di seguito è necessario disporre di un server Linux e familiarità con la riga di comando e il networking in generale. (sponsor) Se sei alla ricerca di una soluzione per il controllo remoto più semplice e pronta all’uso senza bisogno di configurare un server Linux, che sia ricca di funzionalità e utilizzabile direttamente da PC senza installare null'altro, dovresti valutare Supremo: un software di assistenza e controllo remoto simile a TeamViewer, ma che, al contrario di quest’ultimo, non costringe a registrare un account per funzionare. Per maggiori informazioni su Supremo, fai riferimento al nostro approfondimento dedicato:
Installare RustDesk Server: requisiti
Come detto, la componente "server" di RustDesk deve essere installata su un sistema Linux. Sono supportate la maggior parte delle distribuzioni moderne, ma nella seguente guida utilizzeremo Ubuntu Server. Inoltre, tale sistema deve:
- essere sempre connesso ad Internet
- disporre di un indirizzo IP pubblico, raggiungibile attraverso Internet
- disporre di un indirizzo IP statico, oppure di un DDNS associato
- esporre alcune porte e accettare connessioni TCP/UDP in ingresso da Internet
- consentire l'accesso in SSH come utente root per svolgere la configurazione iniziale
- garantire una banda in upload pari ad almeno 1 Mb/s
- essere dotato di almeno "1 CPU, 1 GB di RAM e 20 GB di disco" (dati presi dalla documentazione)
La soluzione ideale è probabilmente un VPS (Virtual Private Server) o un altro tipo di server "in cloud", cioè un server fornitoci "in affitto" da AWS (Amazon), OVH, DigitalOcean o simili. Il taglio minimo, che generalmente costa 4-5 € al mese, dovrebbe essere sufficiente.
Chi però voglia solo fare qualche prova, o utilizzare lo strumento in un contesto lavorativo molto limitato, può ripiegare su una macchina virtuale esposta su Internet dal proprio PC, oppure su un Raspberry Pi o un vecchio computer. I requisiti enumerati in precedenza rimangono immutati.
Installare RustDesk Server, Passo 1: Accedere in SSH
Iniziamo dunque entrando in SSH sul server Linux sul quale desideriamo installare RustDesk Server. Abbiamo dettagliato la procedura in questo approfondimento dedicato:
» Leggi: SSH con Windows, Linux, Mac: la Guida Definitiva
Installare RustDesk Server, Passo 2: Aggiornamento completo
Ora è importante applicare tutti gli aggiornamenti per il sistema operativo e i pacchetti accessori. Allo scopo, installiamo il comando zzupdate:
sudo apt install curl -y && curl -s https://raw.githubusercontent.com/TurboLabIt/zzupdate/master/setup.sh | sudo bash
In seguito, per aggiornare tutto quanto, basta impartire:
zzupdate
Al termine, il sistema remoto verrà riavviato automaticamente. Dobbiamo dunque ri-entrare in SSH.
Installare RustDesk Server, Passo 3: Diventare root
Le operazioni descritte di seguito richiedono i privilegi di root. Per non impazzire, acquisiamoli immediatamente. Il comando è:
sudo -s
In caso ti fosse richiesta la password, digita quella del tuo utente Linux. Ricorda che, poiché sei entrato in SSH su un sistema remoto, devi digitare la password del tuo utente remoto, non quella dell'utente locale
Installare RustDesk Server, Passo 4: Preparare la cartella
Ora creiamo una nuova cartella temporanea. La utilizzeremo per ospitare i file di installazione di RustDesk Server. Allo scopo, basta impartire questo comando concatenato:
cd $HOME && mkdir rustdesk && cd rustdesk && pwd
Installare RustDesk Server, Passo 5: Installare curl
Per scaricare i file di installazione sul server utilizzeremo curl. Assicurati che sia già installato impartendo:
apt install curl -y
Installare RustDesk Server, Passo 6: Aprire la pagina GitHub
Vogliamo ora scaricare i pacchetti di installazione di RustDesk Server. Purtroppo, l'URL di download varia ad ogni nuova versione, quindi dobbiamo prelevarlo da questa pagina:
» Vedi: RustDesk Server su GitHub
Vengono proposti molti file , ma ci interessano solamente due pacchetti:
rustdesk-server-hbbr
: RustDesk relay serverrustdesk-server-hbbs
: RustDesk ID/Rendezvous server
Per quanto riguarda Ubuntu Server installato su PC o server con la tradizionale architettura x64, i file che ci servono sono quelli il cui nome finisce con amd64.deb
.
Procederemo ora a scaricarli individualmente.
Installare RustDesk Server, Passo 7: Scaricare rustdesk-server-hbbr
Dalla pagina GitHub, fai click con il pulsante destro del mouse sul collegamento dal nome simile a rustdesk-server-hbbr_x.x.x_amd64.deb
(al posto delle x
troverai il progressivo di versione) e scegli Copia collegamento
Torna ora al terminale aperto in SSH sul tuo server e scarica il file dall'indirizzo appena copiato. Il comando sarà simile a:
curl -Lo rustdesk-hbbr.deb https://.../rustdesk-server-hbbr_x.x.x_amd64.deb
L'URL deve essere, ovviamente, quello appena copiato da GitHub
Installare RustDesk Server, Passo 8: Scaricare rustdesk-server-hbbs
Ripetiamo la stessa procedura per il secondo pacchetto.
Dalla pagina GitHub, fai click con il pulsante destro del mouse sul collegamento dal nome simile a rustdesk-server-hbbs_x.x.x_amd64.deb
(al posto delle x
troverai il progressivo di versione) e scegli Copia collegamento
Torna ora al terminale aperto in SSH sul tuo server e scarica il file dall'indirizzo appena copiato. Il comando sarà simile a:
curl -Lo rustdesk-hbbs.deb https://.../rustdesk-server-hbbs_x.x.x_amd64.deb
L'URL deve essere, ovviamente, quello appena copiato da GitHub
Installare RustDesk Server, Passo 9: Verificare i file scaricati
Arrivati a questo punto, dovresti aver scaricato due file. Per verificarlo, impartisci ls
e dovresti vedere:
rustdesk-hbbr.deb
rustdesk-hbbs.deb
Installare RustDesk Server, Passo 10: installare i .deb
Procedi ad installare entrambi i pacchetti con questo unico comando:
apt install ./rustdesk*.deb -y
Da notare che il comando potrebbe concludersi con l'allarmante messaggio N: Download is performed unsandboxed as root as file '/root/rustdesk/rustdesk-hbbr.deb' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)
. In realtà non è un errore, ma un'informazione (notice) irrilevante ai nostri scopi. L'installazione si è comunque conclusa correttamente.
Installare RustDesk Server, Passo 11: Verificare lo stato dei servizi
L'installazione precedente ha attivato due nuovi servizi di sistema. Per vedere il loro stato impartiamo:
service rustdesk-hbbr status
(battere Q
per uscire)
service rustdesk-hbbs status
(battere Q
per uscire)
Se si legge active (running)
è tutto in ordine. Se si legge, fra le altre informazioni, enabled
, significa che detti servizi sono correttamente impostati per avviarsi automaticamente ad ogni accensione o riavvio del sistema. Perfetto!
Installare RustDesk Server, Passo 12: Aprire le porte sul firewall
Per impostazione predefinita, Ubuntu Server non attiva alcun firewall. Se quindi non hai attivato esplicitamente alcun firewall, puoi proseguire oltre.
Se invece hai attivato manualmente un firewall, devi abilitare esplicitamente le connessioni alle porte utilizzate da RustDesk Server. Se hai scelto UFW, ti basta lanciare i seguenti comandi:
ufw allow 21115:21119/tcp && ufw allow 8000/tcp && ufw allow 21116/udp
Se invece utilizzi direttamente iptables, devi aggiungere al tuo script di configurazione questa riga:
iptables -I INPUT -p tcp -m multiport --dport 8000,21115:21119 -j ACCEPT && iptables -I INPUT -p udp -m multiport --dport 21116 -j ACCEPT
Ricorda che, con iptables, il firewall viene resettato ad ogni avvio, quindi non è sufficiente eseguire il comando indicato una sola volta, ma deve essere auto-eseguito ad ogni avvio.
Installare RustDesk Server, Passo 13: "Aprire" le porte sul router (port forwarding)
Se hai installato RustDesk Server su VPS o altro server cloud puoi proseguire oltre.
Se invece hai scelto di installare RustDesk Server su un PC o un server che ospiti a casa o in ufficio, devi configurare il "port forwarding" sul router, ovvero svolgere l'operazione volgarmente detta "aprire le porte sul router". Allo scopo, segui questa guida:
» Leggi: Come aprire le porte sul router/modem: la guida definitiva al port forwarding (inoltro delle porte)
Le specifiche porte da aprire per RustDesk Server sono le seguenti:
21115, 21116, 21117, 21118, 21119, 8000 TCP
21116 UDP
Dopo aver svolto la configurazione, verifica esplicitamente che sia andata a buon fine tramite Shields Up!:
» Leggi: Come testare se una porta del router/firewall è aperta? Guida al Port scan con Shields Up!
Il servizio deve riportare, per tutte le porte, la dicitura OPEN!
.
Installare RustDesk Server, Passo 14: Scoprire l'indirizzo IP pubblico del server
Fra poco configureremo RustDesk Client per interagire con il server che abbiamo appena configurato. Allo scopo, è necessario conoscere l'indirizzo IP pubblico del server. Per evitare qualsiasi ambiguità o incomprensione, scopriamolo ora esplicitamente impartendo:
curl ipinfo.io/ip ; echo
Per il momento, limitati a copiare tale indirizzo IP e tenerlo a portata di mano.
Installare RustDesk Server, Passo 15: Visualizzare la chiave crittografica
Affinché la comunicazione possa essere privata e sicura, sarà essenziale impostare RustDesk Client affinché utilizzi la chiave crittografica generata da RustDesk Server. Lo faremo fra poco.
Per il momento, devi solo visualizzare tale chiave impartendo:
cat /var/lib/rustdesk-server/id_ed25519.pub ; echo
Dovresti visualizzare una lunga stringa alfanumerica che costituisce la componente "pubblica" della tua chiave
Anche in questo caso, devi solo copiare questa stringa e tenerla a portata di mano.
Installare RustDesk Server, Passo 16: Configurare RustDesk client
Ora che RustDesk Server è pronto, devi configurare RustDesk Client, ovvero il programma effettivamente utilizzato per il controllo remoto, affinché vi si connetta.
Scarica quindi RustDesk Client sia sul computer (sono supportati Windows, Mac, Linux) oppure sullo smartphone (Android, iOS) al quale vuoi connetterti da remoto, sia su quello dal quale opererai fisicamente:
» Download: RustDesk
Ora, su ognuno dei due sistemi:
- installa e avvia RustDesk Client
- clicca sul pulsante
⋮
nella colonna di sinistra - clicca la voce di menu
Server ID/Relay
- campo
ID Server
: inserisci l'indirizzo IP del sistema sul quale hai installato RustDesk Server (quello che abbiamo scoperto al precedente paragrafoScoprire l'indirizzo IP pubblico del server
) - campo
Key
: inserisci la chiave crittografica generata da RustDesk Server (quella che abbiamo visualizzato poco fa, al paragrafoVisualizzare la chiave crittografica
) - lascia vuoti gli altri campi
Il risultato dovrà essere simile al seguente:
Ripeto: questa configurazione va svolta su RustDesk Client, sia sul sistema "che controlla", sia su quello "da controllare".
Controllo Remoto con RustDesk
Da qui in avanti, il flusso di lavoro con RustDesk sarà quello già trattato nell'articolo RustDesk l’alternativa open source a TeamViewer e AnyDesk, con l'importante, critica differenza che i client si stanno appoggiando al nostro server per coordinare la comunicazione, e non a quelli offerti dallo sviluppatore. Questo, come dicevamo, permette di ottenere maggiore:
- affidabilità: fino a quando il nostro RustDesk Server rimarrà funzionante, sarà sempre possibile svolgere la connessione, anche in caso i server offerti dal produttore fossero intasati o smettessero di funzionare del tutto
- riservatezza: nessuna connessione verrà aperta verso i server gestiti da RustDesk
- risparmio: rispetto a soluzioni alternative come TeamViewer (prezzo attuale: 13,90 € al mese per ogni utente, per la versione base), RustDesk è completamente gratuito
Appendice: configurazione in situazioni di "assistenza remota"
Come evidente, la necessità di inserire l'indirizzo IP e la chiave crittografica nel client è un ostacolo notevole nelle situazioni di assistenza tecnica remota nelle quali RustDesk Client non sia stato pre-installato, ma debba essere scaricato ed avviato per la prima volta dall'utente al quale dobbiamo fornire assistenza.
Per far fronte a questa necessità, la pagina dedicata della documentazione cita principalmente due strade alternative:
- generare una build personalizzata del programma tramite GitHub Actions
- impostare sul sistema due variabili d'ambiente dedicate
In entrambi i casi, è necessario valorizzare opportunamente le seguenti variabili:
RENDEZVOUS_SERVER
: è l'indirizzo IP del server sul quale abbiamo preparato RustDesk Server, e al quale il client deve fare riferimentoRS_PUB_KEY
: è la chiave crittografica da utilizzare
Non ho approfondito oltre, ma, seguendo la documentazione con un po' di intraprendenza, dovrebbe essere possibile raggiungere il risultato cercato.
Conclusioni
In questa guida abbiamo visto come installare RustDesk Server su Ubuntu Server. La procedura è sicuramente un po' impegnativa, e l'onere di mantenere attivo e funzionante il server così configurato è totalmente a nostro carico, ma il risultato finale è sicuramente notevole.
Ricordiamo nuovamente, a chi cercasse un'alternativa più semplice, pronta all'uso e senza server da configurare, Supremo, al quale abbiamo dedicato un approfondimento dedicato: