Remote KDE Desktop mit KRFB

Verbindung und Ports absichern

Hin und wieder ist es nötig auf den Desktop eines entfernten, offen im Internet zu erreichenden, Rechner zuzugreifen. Ein Standardmethode ist dabei VNC, zu dem es eine Vielzahl an Implementierungen gibt. Soll der normale, bereits laufende, KDE-Desktop frei gegeben werden kann dies über die Anwendung krfb anstelle einer eigenen, neuen VNC-Sitzung erfolgen.

Um den Zugriff, insbesondere den unbeaufsichtigten Zugriff, abzusichern gibt es dazu ein paar einfache Möglichkeiten:

  1. Sicheres Passwort wählen. Zufällig und lang.
  2. Standardport von 5900 auf einen anderen Port ändern. Diese Maßnahme alleine bringt nur wenig Sicherheit, sondern hilft nur den Scan auf offene VNC-Ports durch Standardskripte zu verhindern.
  3. Externen Zugriff auf den VNC-Port verhindern.

Letzteres erzwingt dann den Zugriff auf die Desktopfreigabe durch eine sichere Umleitung wie einen ssh-Tunnel.

Der Zugriff auf den Port kann per iptables gesperrt werden:

iptables -A INPUT -p tcp -i <eth0> --dport <5912> -j DROP

Werte in spitzen Klammern müssen an das eigene System angepasst werden, d.h. der Name des Netzwerkinterfaces und der Port unter dem krfb auf Anfragen horcht. Diese Regel ist nur bis zu einem Neustart des Systems gültig.

Ein ssh-Tunnel wird dann auf dem Rechner, von dem aus auf die Freigabe zugegriffen werden soll, auf der Kommandozeile aufgebaut:

ssh -N -L 5900:<remotehost>:5912 <remotehost>

<remotehost> ist die IP-Adresse des entfernten Rechners. Der Zugriff auf den Desktop, z.B. mit krdc als Client erfolgt dann über die Angabe von localhost:5900.

Bei Nutzung mit den Standardeinstellungen von krfb für das Framebuffermodul zur Bilderstellung (xcb) und einem Multimonitorbetrieb war dabei das Bild des entfernten Rechners eingefroren. Abhilfe gebracht hat eine Umstellung auf qt für das Framebuffermodul.