VNC-Server über eine sichere SSH-Verbindung einrichten

Standardmäßig sind die VNC-Sitzungen auf den Ports 5901, 5902, 5903, usw. erreichbar. Wobei die letzte Stelle der Port-Nummer, der Nummer der VNC-Sitzung entspricht.

Die Authentifizierung der VNC-Sitzung erfolgt in der Regel durch ein Passwort. Unter Umständen ist der entfernte Desktop auch noch durch Benutzername und Passwort geschützt. Doch die Authentifizierung und deren Übertragung, sowie die Übertragung der darauf folgenden VNC-Sitzung erfolgt unverschlüsselt. Das heißt, ein Angreifer kann aus dem Datenstrom die Login-Daten und auch die VNC-Sitzung selber abgreifen.

Lösung: VNC-Server absichern

Für VNC-Sitzungen, die ausschließlich im lokalen Netzwerk stattfinden mag das kein Problem sein. Wenn man aber VNC-Sitzungen über das Internet aufbaut, dann werden die Login-Daten ungesichert übertragen.
Wenn der VNC-Server mit dem Parameter "-localhost" gestartet wird, dann kann man verhindern, dass der VNC-Server über eine unsichere Verbindung erreichbar ist.

vncserver :1 -localhost

Der VNC-Server ist mit diesem Parameter nur noch lokal und nicht mehr über das Netzwerk erreichbar. Der Anwender wird so dazu gezwungen zuerst eine hoffentlich sichere Verbindung zum VNC-Server aufzubauen. Beispielsweise per SSH-Tunneling.

Lösung: SSH-Tunnel per SSH-Client auf der Kommandozeile

Aufbau eines SSH-Tunnels per SSH-Client (auf der Kommandozeile).

ssh -L 5901:localhost:5901 -N -f -l pi raspberrypi.local

Oder:

ssh -L 5901:localhost:5901 -N -f -l pi 192.168.1.1

Hinweis: IP-Adresse bzw. Computername sind ggf. anzupassen.

Lösung: SSH-Tunnel per VNC-Client

Auf der Kommandozeile mag es kein Problem sein, eine VNC-Verbindung über SSH aufzubauen. In der Regel hat man allerdings einen grafischen VNC-Client. Hier stellt sich die Frage, ob der die Optionen für einen SSH-Tunnel anbietet oder nicht. Leider können das viele VNC-Clients nicht.

Konfiguration des VNC-Clients

In diesem Beispiel muss im VNC-Client die Option "..." aktiviert werden. Hierzu muss die SSH-Host-Adresse zusammen mit dem Benutzernamen eingetragen werden. Die VNC-Host-Adresse ist in diesem Fall nicht mehr der Computername oder die IP-Adresse, sondern "localhost".

Der Ablauf des Verbindungsaufbaus ist wie folgt:

  1. Der VNC-Client baut zuerst eine Verbindung per SSH auf. Hierbei erfolgt die Authentifizierung per Benutzername und Passwort eines Benutzers auf dem Raspberry Pi. In der Regel wird man nach dem Passwort des angegebenen Benutzers gefragt.
  2. Nach erfolgreicher Benutzerauthentifizierung stellt der VNC-Client die Verbindung zum "localhost" her. Je nach Konfiguration wird man hier noch mal nach dem VNC-Passwort gefragt.
  3. Danach ist die VNC-Sitzung über SSH verschlüsselt und gesichert.

Weitere verwandte Themen:

Teilen:

Produktempfehlungen