Veröffentlicht in opensource.
RustDesk als Alternative für AnyDesk und TeamViewer
Geschrieben von TECH-SUPPORT.KOELN am .
Nach den Problemen mit dem AnyDesk Hack im Dezember fragen sich viele, wie in Zukunft das heikle Thema Fernwartung besser gelöst werden kann.
Warum Fernwartungslösungen wie AnyDesk und TeamViewer ein generelles Problem haben
Grundsätzlich haben alle Fernwartungslösungen, die zentral von einem Anbieter betrieben werden, eine große Schwachstelle:
Der Anbieter betreibt für Tausende Kunden und möglicherweise Millionen Clients die Serverinfrastruktur. Wir als Dienstleister können die Sicherheit nicht überprüfen und müssen den Versprechungen des Anbieters glauben. Letztlich sind wir auch davon abhängig, das der Anbieter überhaupt über Sicherheitsvorfälle zeitnah informiert.
Gerade im Bereich Fernwartung sind solche Dienste ein lohnendes Angriffsziel und die zentralen Server und deren Struktur sind allgemein bekannt.
Daher sehen wir in allen Fernwartungslösungen, die auf einer fremden Serverstruktur aufbauen, ein grundsätzliches Sicherheitsproblem.
Letztlich geht es auch nicht ohne zentrale Relay Server. Wenn sich zwei Clients zwecks Fernwartung verbinden möchten, benötigt man immer die Hilfe eines Relay Servers, der die Clients verbindet.
Welche Alternativen gibt es zu AnyDesk und TeamViewer
Die Open Source Lösung RustDesk bietet die Möglichkeit den notwendigen Relay Server Online oder im Lan selbst zu betreiben. Dadurch können sich nur Clients mit dem Relay Server verbinden, welche zum einen die Server IP oder Server Domain und zusätzlich den Public Key kennen.
Es bietet zudem auch den Vorteil, das fremde sich nicht auf die PC's der Kunden per AnyDesk oder TeamViewer verbinden können. Selbst wenn Mitarbeiter einen Anruf erhalten, bei dem sich irgend jemand als den eigenen Support ausgibt, ist die Verbindung über die öffentlichen RustDesk Relay Server so nicht möglich. Der PC des Mitarbeiters verbindet sich ausschließlich mit dem eigenen RustDesk Relay Server. Ein potenzieller Angreifer hat jedoch ohne den Public Key nicht die Möglichkeit sich auf den eigenen Relay Server zu verbinden und wird daran scheitern.
Aber zu einer solchen Situation sollte es dank jährlichen IT-Sicherheitsschulungen erst gar nicht kommen.
Installationsanleitung RustDesk via Docker (25.12.2024)
RustDesk benötigt folgende Ports die von außen erreichbar sein müssen:
- 21115:21119/tcp
- 21116/udp
Docker und Docker-Compose installieren:
apt-get install docker.io -y
apt-get install docker-compose -y
Für RustDesk erstellen wir das Verzeichnis /opt/rustdesk und wechseln auch gleich in das Verzeichnis:
cd /opt && mkdir rustdesk && cd rustdesk
Anschließend erstelle wir die docker-compose.yml Datei und fügen die Konfiguration ein. Dabei muss <your-domain> mit der eigenen RustDesk Domain ersetzt werden.
nano docker-compose.yml
version: '3.5'
services:
hbbs:
container_name: hbbs
ports:
- 21114:21114
- 21115:21115
- 21116:21116
- 21116:21116/udp
- 21118:21118
image: rustdesk/rustdesk-server:latest
command: hbbs -r <your-domain>:21117
volumes:
- /mnt/docker/rustdesk/hbbs:/root
networks:
- net_rustdesk
depends_on:
- hbbr
restart: unless-stopped
hbbr:
container_name: hbbr
ports:
- 21117:21117
- 21119:21119
image: rustdesk/rustdesk-server:latest
command: hbbr
volumes:
- /mnt/docker/rustdesk/hbbr:/root
networks:
- net_rustdesk
restart: unless-stopped
networks:
net_rustdesk:
Wir speichern die docker-compose.yml und starten anschließend den Docker Container. Dabei wird automatisch der Public Key erstellt, den wir später für die Clients brauchen.
docker-compose up -d
Damit der RustDesk Container nach einem Neustart automatisch gestartet wird, fügen wir noch einen Crontab Eintrag hinzu. Dazu öffnen wir Crontab:
crontab -e
und für RustDesk dein Eintrag hinzufügen:
# m h dom mon dow command
@reboot sleep 30 && cd /opt/rustdesk/ && docker-compose up -d
Der RustDesk Client benötigt den Server und den Public Key, damit er sich mit unserem RustDesk Server verbinden kann. Den Public Key findet man unter:
cat /opt/rustdesk/id_ed25519
Den aktuellen Client kann man sich von der RustDesk Github Seite herunterladen:
https://github.com/rustdesk/rustdesk/releases/
Bei dem Windows Client lässt sich per Dateiname die Server IP/Domain und der Public Key mitgeben, dazu muss die RustDesk Installationsdatei in folgendem Schema benannt werden. <your-domain> und <your-public-key> muss natürlich angepasst werden!
rustdesk-host=<your-domain>,key=<your-public-key>,.exe
Soweit wir das getestet haben, können sich mit dieser Konfiguration auch Clients ohne Key verbinden und den Relay Server nutzen.
Das wollen wir natürlich nicht. Dafür gibt es die Möglichkeit in der Dockerkonfiguration folgende Eintrag um ein -k "" zu ergänen:
command: hbbs -r <your-domain>:21117 -k ""
Alternativ kann man auch den Private Key, der beim ersten Start des Docker Containers generiert wird, direkt in die Docker Konfiguration mit aufnehmen. Siehe dazu auch die Diskussion auf Github: https://github.com/rustdesk/rustdesk/discussions/973
Der Private Key wird in der Datei "id_ed25519" abgelegt und kann mittels cat ausgelesen werden.
cat /opt/rustdesk/id_ed25519
Die entsprechenden Zeilen würden dann wie folgt aussehen:
command: hbbs -r <your-domain>:21117 --key <private-key>
command: hbbr --key <private-key>
Als letztes erstellen wir noch ein Update Script für das Betriebssystem und den Docker Container RustDesk.
Dazu erstellen wir im Verzeichnis /home die Datei update.sh und geben die Berechtigung zum Ausführen:
cd /home && touch update.sh && chmod a+x update.sh && nano update.sh
Und fügen folgendes ein:
# Update-Script
# OS UPDATE
apt-get update
apt-get upgrade
# APPLICATION UPDATE
# Docker RustDesk
cd /opt/rustdesk
docker-compose pull $1
docker-compose up -d --build $1
# REBOOT
read -p "Reboot System? " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]
then
/sbin/reboot
fi
Jetzt können wir durch Ausführen des Scripts die Updates ausführen, am Ende werden wir gefragt ob wir den Server neustarten möchten oder nicht.
./home/update.sh
Update:
Wie man RustDesk aus der Ferne updatet und ggf. auch automatisch, erkläre ich in folgendem Beitrag: https://tech-support.koeln/de/blog/rustdesk-aus-der-ferne-und-automatisch-udpaten
Tagged
Zum Thema passende Artikel
-
Meetings einfach planen mit Cal.com
- Geschrieben von TECH-SUPPORT.KOELN
- Veröffentlicht am
-
Das Ende vom kostenlosen Hypervisor ESXi Free
- Geschrieben von TECH-SUPPORT.KOELN
- Veröffentlicht am
-
RustDesk aus der Ferne und automatisch udpaten
- Geschrieben von TECH-SUPPORT.KOELN
- Veröffentlicht am
-
Proxmox Import Wizard für VMware ESXi VM's
- Geschrieben von TECH-SUPPORT.KOELN
- Veröffentlicht am
-
Open Source KI Suche mit Perplexica
- Geschrieben von TECH-SUPPORT.KOELN
- Veröffentlicht am