Archiv

Artikel Tagged ‘VNC’

VNC über einen SSH-Tunnel

24. November 2010 Keine Kommentare

So ziemlich jeder Systemadministrator kennt VNC (Virtuel Network Computing). Über VNC lassen sich entfernte Rechner über das Netzwerk oder das Internet fernadministrieren. Dabei wird die laufende Desktopsitzung des zu administrierenden Rechners über das Netz an den Systemadministrator übermittelt. Grundvoraussetzung dabei ist natürlich ein sogenannter VNC-Server, der die Verbindung zur Verfügung stellt und ein sogenannter VNC-Client, der die Verbindung zum Server aufbaut. Der VNC-Server läuft dabei auf dem Rechner, der zu administrieren ist.

Am häufigsten wird VNC sicherlich in großen Netzwerken verwendet. Das erspart einem Systemadminstrator unter Umständen viel Zeit. VNC ist dabei für viele Betriebssysteme erhältlich und erfreut sich einer zunehmenden Beliebtheit.

Innerhalb eines gesicherten Netzwerkes ist die Nutzung von VNC auch “unbedenklich”. Was aber, wenn ein Rechner außerhalb eines gesicherten Netzwerkes administriert werden muss? Da die Datenübertragung einer VNC-Session unverschlüsselt erfolgt, stellt sich die Frage, wie z.B. über das Internet eine VNC-Session abzusichern ist?

Diese Fragestellungen gilt es im Folgenden zu klären.

Zielsetzung

Mit Mac OS X oder Linux eine VNC-Session zu einem über das Internet erreichbaren Linuxhost durch einen SSH-Tunnel

SSH (Secure Shell)

Was SSH genau ist und wie SSH funktioniert, möchte ich hier nicht weiter erläutern, sondern verweise gerne auf Wikipedia. Nur so viel: Daten, die über SSH transportiert werden, sind verschlüsselt und können nicht ohne Weiteres ausgelesen werden.

Administratoren nutzen SSH, um sich z.B. auf entfernten Rechnern sicher anzumelden. Die Kommunikation findet dann aber zumeist auf Kommandozeilenebene statt.

VNC-Server

Der VNC-Server auf einem Linuxhost ist relativ einfach zu bedienen. Fast jede Linux Distribution hat standardmäßig einen VNC-Server dabei. Falls nicht, ist es aber meist nicht schwer, den VNC-Server zu installieren. Ist der VNC-Server installiert, reicht ein einfacher Befehl “vncserver” auf der Kommandozeile, um den VNC-Server zu starten. Ich bevorzuge jedoch folgenden Befehl:

  • vncserver -geometry 1280×1024

Damit erhalte ich die Auflösung von 1280×1024 Bildpunkten bei der VNC-Session.

Auf meinem Testsystem quittiert mir der VNC-Server nach dem Starten also die neue Desktop-Session wie folgt:

  • New ‘X’ desktop is meintesthost:1

Die “1″ hinter dem Hostnamen zeigt, dass hier die erste Desktop-Session initialisiert wurde. Jede weitere würde die Zahl je um eins erhöhen (nur so als Randinfo…).

Aufbau des SSH-Tunnels

Der Aufbau einer SSH-Verbindung zu einem entfernten Linuxhost ist einfach. Hier gibt es SSH-Clients oder man bedient sich ganz einfach “old school” der Konsole. Ich mache es kurz und schmerzlos – den SSH-Tunnel initialisiert man mit folgendem Befehl:

  • ssh -N -L 5900:localhost:5901 user@linuxhost.de

Dabei wird definiert, welcher lokale VNC-Port zum externen VNC-Port weitergeleitet wird. Wird der Tunnel über die Konsole “gegraben”, so bleibt das Termial bzw. die Konsole für die Dauer der VNC-Session blockiert.

VNC-Session

Um nun die VNC-Session vom entfernten Host über den SSH-Tunnel zu bekommen, muss lediglich per VNC-Client eine Verbindung zum Tunnel aufgebaut werden, nicht jedoch zum entfernten Host. Ein herkömmlicher freier VNC-Viewer als Client ist vollkommen ausreichend, um die Verbindung herzustellen.

Dabei ist lediglich darauf zu achten, dass als VNC-Server nicht der entfernte Host anzugeben ist, sondern der eigene Rechner, also in der Regel “localhost”. Jetzt noch den richtigen Port angeben und schon steht die VNC-Session über dem SSH-Tunnel.

Das sollte dann so aussehen: localhost:5900

Artikelupdate ->Windows

Ich habe heute einen interessanten HowTo gefunden, welcher das Gleiche für Windows-Nutzer beschreibt.

Post ausdrucken Post ausdrucken

Die Auflösung des Eee-PC verändern…

18. März 2008 3 Kommentare

ist mit Hilfe eines kleinen Scriptes und ein wenig Handarbeit gar nicht schwer. Die Standardauflösung des Eee-Pc von Asus liegt bei 800×480 Pixeln. Jeder, der mal mit einer Auflösung von 800×600 im Internet unterwegs war, weiß wie schlecht sich so surfen lässt. Auch ich habe diese Erfahrung machen müssen. Also musste ich etwas ändern! Wie das trotz der physikalischen Grenze des 7 Zollers funktioniert, erkläre ich im folgenden Tutorial:

Das Ergebnis vorweg:

Vorher 800×480:
800×480

Nachher 1024×600:
1024×600

Es ist deutlich zu erkennen, dass die Auflösug erhöht wurde. Der zu betrachtene “Bildausschnitt” ist jetzt deutlich größer.

Tutorial:

Schritt 1:
Folgendes Shell-Script Downloaden:

Schritt 2:
VNC-Server installieren – Dazu kann es sein, dass die Datei /etc/apt/sources.list wie folgt erweitert werden muss:
sourcelist

Der Befehl zum Installieren lautet

  • sudo apt-get install vncserver krdc

Schritt 3:
Script ausführbar machen (chmod 755 <Pfad><scriptname>) und als root ausführen.
Standardmäßig ist in diesem Script eine andere Auflösung hinterlegt. Diese habe ich jedoch gleich auf 1024×600 abgeändert. Wer keine Änderungen im Script vornehmen möchte, kann auch die gewünschte Auflösung beim Aufruf des Scriptes mit übergeben. Das würde dann wie folgt aussehen:

  • sudo ./incres.sh 1024×600

Schritt 4:
Jetzt nur noch mit wenigen Mausklicks die VNC-Session anpassen und skalieren. Das ist sehr leicht und bedarf keiner weiteren Erkläung.

Fertig!

P.S. : Das klappt sowohl im Easy-Mode als auch im Advanced-Mode!

Wie man vom Easy- zum Advanced-Mode gelangt könnt Ihr hier erfahren!

KategorienIT Tags: , , , , ,
Post ausdrucken Post ausdrucken
Rss Feed Tweeter button Facebook button