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