Remote Desktop Support on Linux
RustDesk
by Peter Martin /
db8.nl
slides:
https://petermartin.nl
---
Computer says No?
---- ### Je kent het vast - "Hij doet het niet" -
Familie of vriend met IT probleem
-
"Hij deed het altijd goed"
-
Probleem met server op afstand
-
"Hoe moet ik op mijn laptop..."
-
Jouw klant
aan de andere kant
van Nederland
heeft korte instructie op eigen PC nodig
---- ### Remote Support - Essentieel voor -
IT-ondersteuning
en -
gebruikersondersteuning
- Veelgebruikte tools: TeamViewer, AnyDesk - Eenvoudig in gebruik, maar met duidelijke nadelen ---- #### Problemen met TeamViewer en AnyDesk
-
Closed source
: je kunt niet controleren wat er met je data gebeurt. -
Betaalde licenties
: - gratis alleen voor persoonlijk gebruik - zakelijk gebruik is duur.
-
Privacyzorgen
: alle sessies lopen via hun servers.
-
Vendor lock-in
: - geen self-hosted optie - volledig afhankelijk van hun infrastructuur.
-
Beperkingen
: - verplichte updates - geblokkeerde toegang of - detectie van commercieel gebruik.
---
Remote Support
---- ### Waarom open source beter is -
Transparantie
: de broncode is openbaar. -
Beveiliging
: controleerbaar en zelf te hosten. -
Vrijheid
: geen vendor lock-in. -
Kosten
: vaak gratis voor zowel persoonlijk als commercieel gebruik. -
Actieve community
: voortdurende verbeteringen en gedeelde kennis. ---- ### Open-Source Alternatieven -
RustDesk
- Modern, geschreven in
Rust
. - Cross-platform en efficiënt. - Peer-to-peer of via relay-verbindingen. -
MeshCentral
- Remote management op basis van Node.js. - Ideaal voor omgevingen met meerdere apparaten of enterprise-gebruik. - Browsergebaseerde beheerinterface.
---
RustDesk
---- ### Hoe RustDesk werkt -
Client–servermodel
met optionele relay. - Ontworpen voor veilige en privé remote sessies. - Heeft wel
X.org
nodig!!! ---- ### Wat RustDesk kan Behalve een computer op afstand bedienen...
- chat - file transfer - multi-monitor - mobile clients - clipboard sharing
---- ### RustDesk Architectuur
-
HBBS (Rendezvous Server)
- Host-Based Broker Server - Verzorgt clientregistratie en coördinatie van
NAT-traversal
(clients maken directe P2P verbinding). - Functioneert als verbindingsbroker. -
HBBR (Relay Server)
- Host-Based Broker Relay - Directe peer-to-peerverbindingen niet mogelijk?
Relay fallback
relayeert versleuteld verkeer. - Ideaal voor systemen achter firewalls of NAT.
---- ### RustDesk verbindingsverloop
- De
client
maakt verbinding met
HBBS
(Broker) om zich te registreren. -
Peers vinden elkaar
via de broker
.
-
Als een
directe P2P-verbinding
niet lukt,
wordt het dataverkeer
via HBBR
(Relay) geleid.
-
Alle communicatie gebruikt
end-to-end encryptie
.
---- ### RustDesk beveiligingsmodel 1/2
-
Authenticatie
- Key Fingerprint Verification
-
EdDSA
- Edwards-curve Digital Signature Algorithm:
algoritme voor digitale handtekening.
-
Twisted Edwards
: wiskundige methode met elliptische curve (Curve25519) voor optimale snelheid en veiligheid.
-
Fingerprint
: verkorte hash van de publieke sleutel.
---- ### RustDesk beveiligingsmodel 2/2
-
Versleuteling
- End-to-End Encryption van de sessie Na vaststellen van identiteit wordt dataverbinding opgezet.
-
TLS
(Transport Layer Security): overkoepelende protocol ("tunnel") die sessie beheert.
-
Keys
(Sleutels): TLS gebruikt asymmetrische cryptografie (zoals EdDSA) om veilig een sessiesleutel af te spreken.
-
Sessie
: data die je verstuurt, wordt versleuteld met die tijdelijke sessiesleutel = "end-to-end" beveiligd kanaal tussen jouw applicatie en de server.
---
RustDesk
Client
---- ### Een RustDesk-client instellen 1/2 ####
Flatpack
```bash sudo apt update sudo apt install flatpak -y sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo flatpak install flathub com.rustdesk.RustDesk -y ``` ---- ### Een RustDesk-client instellen 2/2 ####
.deb versie
```bash wget https://github.com/rustdesk/rustdesk/releases/ download/1.4.4/rustdesk-1.4.4-x86_64.deb sudo dpkg -i rustdesk-1.4.4-x86_64.deb ```
Missing dependencies? ```bash sudo apt install --f sudo dpkg -i rustdesk-1.4.4-x86_64.deb ```
---
RustDesk
Server
---- ####
Publieke
relay server van RustDesk - Eenvoudig op te zetten -
Behalve voor mij... - ik kon
laptop A
verbinden met
laptop B
- maar
laptop B
niet met
laptop A
---- ####
Self hosted
relay server - Draai
Docker
-containers: -
hbbs
– start de rendezvous- (broker) server
-
hbbr
– start de relay server
-
Configureer
poorten
(standaard TCP/UDP 21115–21119).
-
Configureer in RustDesk-
clients
: - adres van je eigen server (
ID/Relay
).
---- ### Docker compose.yml file 1/2 ```yaml services: hbbr: container_name: hbbr image: rustdesk/rustdesk-server:latest command: hbbr volumes: - ./data:/root network_mode: "host" restart: unless-stopped healthcheck: test: ["CMD-SHELL", "ss -ltn | grep -q ':21117'"] interval: 30s timeout: 5s retries: 5 ``` ---- ### Docker compose.yml file 2/2 ```yaml hbbs: container_name: hbbs image: rustdesk/rustdesk-server:latest # Verwijs hbbs naar hbbr op dezelfde host/domein command: hbbs -r rustdesk.example.com:21117 volumes: - ./data:/root network_mode: "host" depends_on: - hbbr restart: unless-stopped healthcheck: test: ["CMD-SHELL", "ss -ltn | egrep -q ':21114|:21115|:21116|:21118'"] interval: 30s timeout: 5s retries: 5 ``` ---- ### Verificatie -
Test
de
verbinding
tussen twee
clients
. -
Controleer of -
NAT-traversal
en -
relay fallback
correct werken.
-
Optioneel:
schakel verificatie van
encryptiesleutels
in.
---- ### Server-encryptiesleutel opvragen -
id_ed25519.pub
-
ed25519 = EdDSA + Curve25519 (twisted Edwards-variant)
```bash # sed -n '1p' ./data/id_ed25519.pub ```
---- ### Check
server logs
Of alles goed werkt ```bash # docker logs hbbs | grep update_pk ``` ---
Questions?
Anyone, anyone?
---- ## Photo Credits
Alle foto's in deze presentatie zijn gegenereerd met ChatGPT 5
Eventuele gelijkenissen met
Little Britain
The IT Crowd
Ferris Bueller's Day Off
zijn allesbehalve toevallig, ze zijn juist bewust zo gemaakt met AI.