| |
| 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> |
| |