Sicheres VNC vom Windows-Client zum Linux-Server (Debian Etch 4.0)
Wer VNC benutzt, sollte sich klar sein, dass jeder von außerhalb die Verbindung anzapfen kann, da die Pakete der Session unverschlüsselt übertragen werden. Gerade bei allen freien Softwareprodukten ist dies ein großes Problem (TightVNC und Konsorten). Verschlüsselt übertragen wird einzig und allein das Session-Passwort beim Start der Sitzung.
Ein wenig Abhilfe soll folgendes Beispiel leisten, welches eine verschlüsselte Verbindung von einem Windows-Client über einen SSH-Tunnel zu einem Linux-Server (im Beispiel einen Debian Etch 4.0-Server) aufbauen kann.
Zunächst installieren wir auf dem Debian-Server folgende Pakete mit "apt-get":
apt-get install ssh
apt-get install x11vnc
Nach der Installation sollte der SSH-Server automatisch gestartet werden. Unter Windows muss man jetzt Putty starten. Dort gibt man die IP-Adresse oder den Hostnamen mit dem richtigen Port und Protokoll (SSH) an. Bevor man aber auf "Open" klickt. Sollte man links im Menü die Option "Connections->SSH->Tunnels" aufsuchen. Dort gibt man bei "Source-Port" "5900" ein und bei "Destination" "localhost:5900". (Erklärung wie der Tunnel funktioniert kommt weiter unten)
Hat man auf "Open" geklickt, kann man sich mit seinem Login-Namen und seinem Passwort auf dem Linux-Server anmelden. Dort gibt man dann folgendes Kommando ein:
x11vnc -forever -display :0
(bzw. x11vnc -rfbauth $Home/myvncpasswd -forever -display :0 falls man ein Sessionpasswort vergeben hat und es unter $Home/myvncpasswd liegt)
(Die X-Session auf dem Linux-Server sollte bevor dieses Kommando gegeben wird aber gestartet worden sein!)
Jetzt kann man mit einem VNC-Client für Windows, zum Beispiel dem TightVNC-Viewer, eine Verbindung aufbauen. Dafür gibt man im VNC-Server-Feld aber nicht die IP oder den Namen des Servers an, sondern trägt nur "localhost" ein und klickt auf "Connect".
Et voila, es erscheint die entfernte X-Session auf dem Linux-Server über eine verschlüsselte SSH-Verbindung.
Aber wie funktioniert das Ganze eigentlich?
Ganz einfach. Mit den Einstellungen die wir in Putty getroffen haben, sorgen wir dafür, dass alle Pakete die an Port 5900 (das ist der Standard-VNC-Port) an den lokalen Rechner gehen, durch den SSH-Tunnel zum Port 5900 auf dem entfernten Rechner geroutet werden. Deswegen geben wir in TightVNC auch nur localhost, also den lokalen Rechner an. Die Grafik verdeutlicht das Ganze noch etwas:
Es gibt natürlich noch zahlreiche andere Methoden, wie man genau das gleiche Ergebnis erzielen kann. Zum Beispiel kann der VNC-Server schon bereits auf dem System laufen und man muss ihn nicht per SSH-Sitzung erst starten.
Putty-Download:
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
TightVNC-Download:
http://www.tightvnc.com/download.html
VNC-Informationen bei Wikipedia:
http://de.wikipedia.org/wiki/Virtual_Network_Computing
Zur Sicherheit (Unsicherheit) von VNC:
http://www.tightvnc.org/faq.html#howsecure
0 TrackBacks
Folgende Einträge anderer Blogs beziehen sich auf den Eintrag Sicheres VNC vom Windows-Client zum Linux-Server (Debian Etch 4.0)
TrackBack-URL dieses Eintrags: http://www.undertec.de/mt-cgi/mt-tb.cgi/56


Jetzt kommentieren