RustDesk
RustDesk è un progetto opensource che permette di creare una propria rete di controllo remoto sicura e veloce.
“A remote desktop software, the open source TeamViewer alternative, works out of the box, no configuration required. You have full control of your data, with no concerns about security. You can use our public rendezvous/relay server, or self-hosting, or write your own server.”
Tutti noi ci siamo trovati almeno una volta nella condizione di non poter rangiungere in maniera sicura le nostre workstation sparse per il globo. Sono certo che prima di cedere e comprare una licenza dei più blasonati leader del settore le abbiate provate tutte.
RustDesk risponde proprio a questa esigenza. Il client è multipiattaforma ( Windows, Linux, Mac, iOS, Android ) ed è subito pronto all’uso utilizzando i server messi a disposizione dal produttore.
Ma è proprio qui che entra il gioco il punto di forza del progetto; ogni uno di noi puoi mettere in piedi in pochi click un server per offrire banda e risorse ai propri client.
Il tutto è facilmente gestibile con Docker ( e ovviamente con Swarm ).
La nostra infrastruttura
Con Docker
# docker run --name hbbs -p 21115:21115 -p 21116:21116 -p 21116:21116/udp -p 21118:21118 -v `pwd`:/root -it --net=host --rm rustdesk/rustdesk-server hbbs -r <relay-server-ip[:port]>
# docker run --name hbbr -p 21117:21117 -p 21119:21119 -v `pwd`:/root -it --net=host --rm rustdesk/rustdesk-server hbbr
Le porte necessarie al funzionamento sono:
- TCP (21115, 21117, 21118, 21119)
- TCP e UDP (21116)
Con Docker compose e Swarm
version: '3'
networks:
rustdesk-net:
external: false
services:
hbbs:
ports:
- 21115:21115
- 21116:21116
- 21116:21116/udp
- 21118:21118
image: rustdesk/rustdesk-server:latest-arm64v8
command: hbbs -r example.com:21117
volumes:
- /opt/docker/rustdesk/data:/root
networks:
- rustdesk-net
depends_on:
- hbbr
restart: unless-stopped
hbbr:
ports:
- 21117:21117
- 21119:21119
image: rustdesk/rustdesk-server:latest-arm64v8
command: hbbr
volumes:
- /opt/docker/rustdesk/data:/root
networks:
- rustdesk-net
restart: unless-stopped
Una volta avviato e gestito il port forward sarà subito possibile collegare i nostri client ed iniziare a controllare da remoto tutto ciò che abbia un monitor.
Cliccare su ID/Relay Server
inserire l’ip o l’fqnd del nostro server.
Sicurezza
E’ possibile ( e caldamente consigliato dal sottoscritto ) cifrare le nostre connessioni con una chiave asimmetrica. Modificando il comando di avvio dei due container in
hbbs -k _
e
hbbr -k _
verranno generate all’avvio le chiavi e sarà necessario ottenere la chiave pubblica da inserire nei client. per ottenere la chiave pubblica basterà lanciare
# cat /opt/docker/rustdesk/hbbs/id_ed25519.pub
nel campo key inseriamo la chiave pubblica ottenuta dal container.
Docker compose e Swarm
version: '3'
networks:
rustdesk-net:
external: false
services:
hbbs:
ports:
- 21115:21115
- 21116:21116
- 21116:21116/udp
- 21118:21118
image: rustdesk/rustdesk-server:latest
command: hbbs -r fqdn.del.server:21117 -k _
environment:
- "ENCRYPTED_ONLY=1"
volumes:
- /opt/docker/rustdesk/data:/root
networks:
- rustdesk-net
depends_on:
- hbbr
hbbr:
ports:
- 21117:21117
- 21119:21119
image: rustdesk/rustdesk-server:latest
command: hbbr -k _
environment:
- "ENCRYPTED_ONLY=1"
volumes:
- /opt/docker/rustdesk/data:/root
networks:
- rustdesk-net
Con il parametro ENCRYPTED_ONLY=1 verranno rifiutate tutte le connessioni che non dispongono della chiave pubblica oppure hanno una chiave pubblica diversa.
Extra
Non dimentichiamoci mai di mettere al sicuro le nostre installazioni esposte con Crowdsec .
Le opinioni in quanto tali sono opinabili e nulla ti vieta di approfondire l’argomento.
Risorse: