In Folgendem wird beschrieben, wie man auf einem Ubuntu 12.04 - Client (mit Lightdm als Displaymanager!) VNC installiert und konfiguriert, so dass ein „abgesicherter“, graphischer Zugriff von extern möglich ist.
Am Client als linuxadmin (lokaler Administrator) anmelden, Datenbank aktualisieren und x11vnc installieren.
sudo apt-get update && sudo apt-get install x11vnc
Der Zugriff über VNC muss durch ein Passwort abgesichert werden. Damit dieses nicht einfach ausgelesen werden kann, wird es nur als Hash gespeichert.
sudo x11vnc -storepasswd /etc/x11vnc.pass
Als nächstes muss ein Upstart-Job erzeugt werden, damit der VNC - Server schon vor dem Login mit den erforderlichen Optionen gestartet wird.
…dazu eine init-Skriptdatei erzeugen…
sudo touch /etc/init/x11vnc.conf
…und mit folgendem Inhalt füllen…
start on login-session-start script /usr/bin/x11vnc -xkb -auth /var/run/lightdm/root/:0 -noxrecord -noxfixes -noxdamage -rfbauth /etc/x11vnc.pass -forever -bg -rfbport 5905 -o /var/log/x11vnc.log end script
In der Option: -rfbport <Port>
kann man einen anderen VNC-Port wählen. Der Standard-VNC-Port 5900 und der Port 5901 sind allerdings ggf. schon durch iTalc belegt, sofern dieses installiert ist.
Jetzt kann schon mit Hilfe eines VNC-Clients auf Client-hostname:5
zugegriffen werden, allerdings ohne Verschlüsselung, daher höchstens innerhalb des pädagogischen Netzwerks vertretbar. Und selbst dort:
Dazu muss für den oben gewählten Port ein ssh-Tunnel bei der Verbindung zum Server angelegt werden. Hier ein allgemeingehaltenes Beispiel, wie das von einem Linuxclient aus (über das externe Interface des Servers) funktioniert:
ssh -l root -p 2222 <Serverip oder dyndns-Adresse> -L <lokalerPort>:<Clientip>:<QuellPort von x11vnc>
Und im konkreten Beispiel:
ssh -l root -p 2222 unsere-musterlösung-extern.de -L 5900:r302pc01:5905
Jetzt kann man mit Hilfe dieses ssh-Tunnels einen VNC-Client zu Hause auf den server localhost:0
bzw. localhost
mit Port 5900
konfigurieren um den Inhalt von r302pc01
zu sehen.
Statt obiger Installation von x11vnc
kann auch vnc4server
bzw. tightvncserver
installiert werden, dann kann man auf dem Client als root folgende Befehle ausführen.
# cp /var/run/lightdm/root/\:0 .Xauthority # x0vnc4server -display=:0 -SecurityTypes=None
Was zu einem sofortigen passwortlosen Zugang per VNC-Client auf diesen Client mit Port 5900 führt.
-SecurityTypes=None
durch einen Passwort-geschützen Zugang zu ersetzen.