|  |  | 
| anwenderwiki:linuxclient:vnc [2013/11/16 23:56]  – Externe Bearbeitung 127.0.0.1 | anwenderwiki:linuxclient:vnc [2020/02/02 22:30] (aktuell)  – [VNC - Server auf dem Ubuntuclient]  martin.res | 
|---|
|  | {{tag> linuxclient vnc fernzugriff remote tunnel}} | 
|  |  | 
|  | ====== VNC - Server auf dem Ubuntuclient 12.04 ====== | 
|  |  | 
|  |  | 
|  | 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. | 
|  |  | 
|  |  | 
|  | ==== 1. Installation ==== | 
|  |  | 
|  | Am Client als //linuxadmin// (lokaler Administrator) anmelden, Datenbank aktualisieren und x11vnc installieren. | 
|  |  | 
|  | <code>sudo apt-get update && sudo apt-get install x11vnc</code> | 
|  |  | 
|  | ==== 2. Konfiguration ==== | 
|  |  | 
|  | Der Zugriff über VNC muss durch ein Passwort abgesichert werden. Damit dieses nicht einfach ausgelesen werden kann, wird es nur als Hash gespeichert. | 
|  |  | 
|  | <code>sudo x11vnc -storepasswd /etc/x11vnc.pass</code> | 
|  |  | 
|  | 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... | 
|  |  | 
|  | <code> sudo touch /etc/init/x11vnc.conf</code> | 
|  |  | 
|  | ...und mit folgendem Inhalt füllen... | 
|  |  | 
|  | <code>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</code> | 
|  |  | 
|  | 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: | 
|  |  | 
|  | ==== 3. Verbindung über ssh ==== | 
|  |  | 
|  | <note warning>Da das VNC-Protokoll keine Verschlüsselung beinhaltet muss der Zugriff über das Internet/von Außen auf den Client per ssh abgesichert werden!!</note> 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: | 
|  |  | 
|  | <code>ssh -l root -p 2222 <Serverip oder dyndns-Adresse> -L <lokalerPort>:<Clientip>:<QuellPort von x11vnc></code> | 
|  |  | 
|  | Und im konkreten Beispiel: | 
|  |  | 
|  | <code>ssh -l root -p 2222 unsere-musterlösung-extern.de -L 5900:r302pc01:5905</code> | 
|  |  | 
|  | 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. | 
|  |  | 
|  | ===== Temporär VNC-Einblick gewähren ===== | 
|  | Statt obiger Installation von ''x11vnc'' kann auch ''vnc4server'' bzw. ''tightvncserver'' installiert werden, dann kann man auf dem Client als root folgende Befehle ausführen. | 
|  | <code> | 
|  | # cp  /var/run/lightdm/root/\:0 .Xauthority | 
|  | # x0vnc4server -display=:0 -SecurityTypes=None | 
|  | </code> | 
|  | Was zu einem sofortigen passwortlosen Zugang per VNC-Client auf diesen Client mit Port 5900 führt. | 
|  | <note important>Die obige Warnung gilt hier ebenso, zumal - noch schlimmer - jeder Schüler Zugriff auf den VNC-Client hat. Es empfiehlt sich hier ''-SecurityTypes=None'' durch einen Passwort-geschützen Zugang zu ersetzen.</note> | 
|  |  |