Bitte warten...

Fernwartung (Remote Desktop)

(unter Linux Mint 21.3)

Es gibt eine Vielzahl an Anwendungsszenarien und Konfigurationsmöglichkeiten, die hier nicht alle beschrieben werden können. Daher beschränkt sich diese Einführung auf das Beispiel einer Fernwartung eines Linux-Systems durch ein anderes Linux-System im gleichen lokalen Netzwerk (LAN) sowie verschlüsselt über das Internet. Für andere Szenarien, beispielsweise unter einem anderen Betriebssystem, müssen die Änderungen in der Vorgehensweise aus der Dokumentation der verwendeten Software entnommen werden.

Installationen, die nicht über die offiziellen Paketquellen erfolgen, stellen unter Umständen ein Sicherheitsrisiko für den verwendeten Rechner dar. ► Weitere Informationen

Mit der Hilfe von Fernwartungssoftware ist es möglich, einen anderen Rechner aus der Ferne im lokalen Netzwerk oder über das Internet zu steuern oder zumindest dessen Bildschirmausgabe zu verfolgen (Screen-Sharing). Auf diese Weise kann man beispielsweise dort verfügbare Software nutzen oder administrative Aufgaben wie das Beheben von Fehlern durchführen, ohne direkt vor diesem Rechner sitzen zu müssen.

Dazu muss auf dem Linux-Rechner, der ferngesteuert werden soll, ein VNC-Server (oder bei Windows-Systemen ein RDP-Server) installiert werden, während auf dem fernsteuernden Rechner entsprechend ein VNC- bzw. RDP-Client installiert wird, über den die Fernsteuerung erfolgt.

Während proprietäre Lösungen wie TeamViewer oder AnyDesk Server und Client in einer Anwendung bündeln und somit vergleichsweise einfach einzurichten sind, gestaltet sich die Einrichtung von Open-Source-Lösungen in der Linux-Welt etwas aufwändiger, was hier beschrieben wird. (Eine Open-Source-Lösung, die mit TeamViewer vergleichbar ist, ist RustDesk.)

Grundsätzlich gilt, dass Server- und Client-Software nicht aus gleichem Hause sein müssen. Sie müssen aber das gleiche Protokoll unterstützen.

Fernwartungs-Server installieren

Auf dem Linux-System, das man fernsteuern möchte, installiert man nun zunächst wie gesagt einen VNC-Server wie TigerVNC. Andere Fernwartungs-Server sind beispielsweise Gnome Remote Desktop (Nachfolger von Gnome Vino) oder x11vnc.

Installation aus den offiziellen Paketquellen:

sudo apt-get install tigervnc-scraping-server

Installation per apturl Icon: Help

Mit folgendem Kommando legt man nun das Passwort fest, mit dem sich der Client später beim Server authentifizieren muss, um Zugriff auf den Remote Desktop zu erhalten. Der Platzhalter PFAD muss durch den frei wählbaren Pfad zu der Datei ersetzt werden, in dem das Passwort gespeichert werden soll:

vncpasswd PFAD

Mit folgendem Befehl wird nun der Server gestartet (Platzhalter PFAD auch hier durch den Pfad zur Passwortdatei ersetzen):

x0vncserver -localhost no -PasswordFile PFAD

Mit folgendem Kommando kann die Freigabe jederzeit wieder beendet werden. Es ist zu beachten, dass die Freigabe ohne aktives server-seitiges Beenden bestehen bleibt, auch wenn der Client den Zugriff von seiner Seite beendet hat!

x0vncserver -kill

Außerdem benötigen wir später die IP-Adresse dieses Rechners im lokalen Netzwerk, die wir (außer im entsprechenden Abschnitt der Administrationsoberfläche des verwendeten Routers) unter Linux mit dem Kommando ifconfig ermitteln können. Die Adresse findet man in der Ausgabe im Abschnitt des Netzwerk-Gerätes (Kennungen für kabelgebundene Geräte beginnen meist mit en…, Kennungen für WLAN mit wl…) in der zweiten Zeile nach dem Kennwort inet und lautet beispielsweise 192.168.1.7.

Fernwartungs-Client installieren

Ein VNC-Client (auch VNC-Viewer) ist beispielsweise Gnome Verbinungen. Dieser wird nun auf dem Rechner installiert, von dem aus man die Fernwartung durchführen möchte. Andere Clients sind unter anderem Remmina, Vinagre (veraltet), MultiVNC oder TigerVNC. Die meisten VNC-Clients unterstützen auch RDP für Windows.

Installation als Flatpak: (Version 46.0)

flatpak install flathub org.gnome.Connections

Download flatpakref Icon: Help Flathub

Anschließend steht das Programm unter ► Internet ► Verbindungen zur Verfügung.

Fernwartung starten

Nun startet man den Fernwartungs-Client, in diesem Fall Gnome Verbindungen. Links oben klickt man auf den +-Button, wodurch sich der Verbindungs-Assistent öffnet.

Hier gibt man die IP-Adresse des Servers ein und wählt das vom Server verwendete Protokoll (VNC bei Linux oder RDP bei Windows) und klickt dann auf Verbinden. Anschließend gibt man das für die Freigabe benötigte Passwort ein.

Nun sollte der Remote Desktop angezeigt werden und die Bedienung sowohl mit Maus als auch mit Tastatur erlauben.

Fernwartung über das Internet

Die Fernwartung über das Internet funktioniert auch unverschlüsselt, allerdings können die übertragenen Daten dabei auf dem Transportweg von Dritten abgefangen werden. Daher sollte die Übertragung aus Sicherheitsgründen über einen verschlüsselten Kanal erfolgen.

Möchte man einen Rechner in einem anderen als dem eigenen lokalen Netzwerk (LAN) fernwarten, so geschieht das über das Internet. In der Regel sind die einzelnen Geräte eines Haushalts oder eines Betriebes über einen Router mit dem Internet verbunden, der die Anfragen von den Geräten entgegennimmt, an das Internet weiterreicht, und die Antworten von dort an die Geräte verteilt (routet). Der Router ist praktisch eine Verteilerstation, der über seine IP-Adresse mit anderen Geräten im Internet Daten austauscht, aber auch die Verwaltung des lokalen Netzwerkes übernimmt. Die IP-Adresse des Routers kann hier angezeigt werden. Die an den Router angeschlossenen Geräte (kabelgebunden oder per WLAN) haben ihre eigenen internen und vom Router vergebenen lokalen IP-Adressen (beginnen in der Regel mit 192.168.), können aber nicht direkt mit dem Internet Daten austauschen.

Soll nun ein Rechner im Internet ferngewartet werden, kann man nur eine Verbindung zu dem entsprechenden Router aufbauen. Dieser muss den Datenaustausch mit dem Zielrechner (dem Host) dann vermitteln. Der Datenaustausch geschieht bei der Fernwartung mit VCN über den Port 5900. Damit der Router über diesen Port die Fernwartung mit dem Zielgerät ermöglichen kann, muss für diesen Port explizit eine Weiterleitung (port forwarding) eingerichtet werden. Dies geschieht über die Verwaltungsoberfläche des Routers im Netzwerk des Hosts. Hier richtet man für die lokale IP-Adresse des Hosts eine Weiterleitung des Ports 5900 für das Protokoll TCP ein.

Nun kann man mit dem Fernwartungs-Client über die IP-Adresse des Host-Routers eine Verbindung zu dem Host-Rechner herstellen.

Verbindung verschlüsseln

Bei diesem Verfahren sind die Einstellungen einer ggf. verwendeten Firewall zu prüfen und entsprechend anzupassen, um die Fernwartung zu ermöglichen.

Um eine verschlüsselte Fernwartung durchzuführen, kann diese über einen SSH-Tunnel geleitet werden. Dazu muss auf dem zu wartenden Rechner (Host) der SSH-Server installiert sein:

sudo apt-get install openssh-server

Installation per apturl Icon: Help

Außerdem muss für diesen Rechner auf dem zuständigen Router eine weitere Portweiterleitung für SSH für den Port 22001 und das Protokoll TCP eingerichtet werden. Diese Weiterleitung muss dann auf den Port 22 gelegt werden.

Anschließend wird auf dem Host-Rechner der VNC-Server gestartet:

x0vncserver -localhost no -PasswordFile myPass

Auf dem Client-Rechner muss der SSH-Client installiert sein:

sudo apt-get install openssh-client

Installation per apturl Icon: Help

Dann kann dort der SSH-Tunnel geöffnet werden. Der konkrete Rechner im Netzwerk des Hosts wird durch die Portweiterleitung im Router identifiziert. Die IP-Adresse (hier: 77.11.233.229) muss durch die reale IP-Adresse des Hosts ersetzt werden:

ssh -4 -f -L 5900:localhost:5900 -p 22001 loewenherz@77.11.233.229 sleep 20

Es ist das Benutzerpasswort für den Host-Rechner einzugeben, hier für den Benutzer loewenherz.

Im VNC-Client dann innerhalb von 20 Sekunden 127.0.0.1 bzw. localhost öffnen. Ansonsten wird der SSH-Tunnel wieder geschlossen. Hier muss das oben vergebene Passwort für die Fernwartungsfreigabe eingegeben werden.

Quellen: wiki.ubuntuusers.de und unix.stackexchange.com