VPS unter Linux mit grafischer Oberfläche: Starten eines VNC-Servers unter Ubuntu 18.04

VPS unter Linux mit grafischer Oberfläche: Starten eines VNC-Servers unter Ubuntu 18.04
Einige Benutzer mieten einen relativ günstigen VPS mit Windows, um Remotedesktopdienste auszuführen. Das Gleiche ist unter Linux möglich, ohne dass Sie Ihre eigene Hardware in einem Rechenzentrum hosten oder einen dedizierten Server mieten müssen. Manche Menschen benötigen eine vertraute grafische Umgebung zum Testen und Entwickeln oder einen Remote-Desktop mit einem breiten Kanal für die Arbeit mit mobilen Geräten. Es gibt viele Optionen für die Verwendung des auf dem Remote FrameBuffer (RFB)-Protokoll basierenden Virtual Network Computing (VNC)-Systems. In diesem kurzen Artikel erklären wir Ihnen, wie Sie es auf einer virtuellen Maschine mit einem beliebigen Hypervisor konfigurieren.

Table of Contents:

Auswahl eines VNC-Servers
Installation und Konfiguration
Starten eines Dienstes über systemd
Desktop-Verbindung

Auswahl eines VNC-Servers

Der VNC-Dienst kann in das Virtualisierungssystem integriert werden und der Hypervisor verbindet ihn mit den emulierten Geräten, ohne dass eine zusätzliche Konfiguration erforderlich ist. Diese Option ist mit einem erheblichen Mehraufwand verbunden und wird nicht von allen Anbietern unterstützt – selbst in einer weniger ressourcenintensiven Implementierung, bei der statt der Emulation eines realen Grafikgeräts eine vereinfachte Abstraktion (Framebuffer) auf die virtuelle Maschine übertragen wird. Manchmal ist ein VNC-Server an einen laufenden X-Server gebunden, aber diese Methode eignet sich besser für den Zugriff auf eine physische Maschine und führt auf einer virtuellen Maschine zu einer Reihe technischer Schwierigkeiten. Der einfachste Weg, einen VNC-Server zu installieren, ist die Verwendung eines integrierten X-Servers. Es erfordert keine physischen Geräte (Videoadapter, Tastatur und Maus) oder deren Emulation mithilfe eines Hypervisors und ist daher für jede Art von VPS geeignet.

Installation und Konfiguration

Wir benötigen eine virtuelle Maschine mit Ubuntu Server 18.04 LTS in der Standardkonfiguration. In den Standard-Repositorys dieser Distribution gibt es mehrere VNC-Server: TightVNC, TigerVNC, x11vnc und andere. Wir haben uns für TigerVNC entschieden – einen aktuellen Fork von TightVNC, der vom Entwickler nicht unterstützt wird. Das Einrichten anderer Server erfolgt auf ähnliche Weise. Außerdem müssen Sie sich für eine Desktop-Umgebung entscheiden: Die optimale Option wäre unserer Meinung nach XFCE aufgrund der relativ geringen Anforderungen an Rechenressourcen. Wer möchte, kann ein anderes DE oder WM installieren: Alles hängt von den persönlichen Vorlieben ab, aber die Wahl der Software wirkt sich direkt auf den Bedarf an RAM und Rechenkernen aus.

VPS unter Linux mit grafischer Oberfläche: Starten eines VNC-Servers unter Ubuntu 18.04

Die Installation der Desktop-Umgebung mit allen Abhängigkeiten erfolgt mit dem folgenden Befehl:

sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils

Als nächstes müssen Sie den VNC-Server installieren:

sudo apt-get install tigervnc-standalone-server tigervnc-common

Es ist eine schlechte Idee, es als Superuser auszuführen. Erstellen Sie einen Benutzer und eine Gruppe:

sudo adduser vnc

VPS unter Linux mit grafischer Oberfläche: Starten eines VNC-Servers unter Ubuntu 18.04

Fügen wir den Benutzer zur Sudo-Gruppe hinzu, damit er verwaltungsbezogene Aufgaben ausführen kann. Wenn kein Bedarf besteht, können Sie diesen Schritt überspringen:

sudo gpasswd -a vnc sudo

Der nächste Schritt besteht darin, den VNC-Server mit VNC-Benutzerrechten auszuführen, um ein sicheres Passwort und Konfigurationsdateien im Verzeichnis ~/.vnc/ zu erstellen. Das Passwort kann zwischen 6 und 8 Zeichen lang sein (überschüssige Zeichen werden abgeschnitten). Bei Bedarf wird auch ein Passwort für die reine Ansicht festgelegt, d. h. ohne Zugriff auf Tastatur und Maus. Die folgenden Befehle werden als vnc-Benutzer ausgeführt:

su - vnc
vncserver -localhost no

VPS unter Linux mit grafischer Oberfläche: Starten eines VNC-Servers unter Ubuntu 18.04
Standardmäßig verwendet das RFB-Protokoll den TCP-Portbereich von 5900 bis 5906 – das ist der sogenannte. Display-Ports, die jeweils einem X-Server-Bildschirm entsprechen. In diesem Fall sind die Ports den Bildschirmen von :0 bis :6 zugeordnet. Die von uns gestartete VNC-Serverinstanz überwacht Port 5901 (Bildschirm: 1). Andere Instanzen können auf anderen Ports mit den Bildschirmen :2, :3 usw. arbeiten. Vor der weiteren Konfiguration müssen Sie den Server stoppen:

vncserver -kill :1

Der Befehl sollte etwa Folgendes anzeigen: „Killing Xtigervnc Process ID 18105... Success!“

Wenn TigerVNC startet, führt es das Skript ~/.vnc/xstartup aus, um Konfigurationseinstellungen zu konfigurieren. Erstellen wir unser eigenes Skript und speichern zunächst eine Sicherungskopie des vorhandenen Skripts, falls vorhanden:

mv ~/.vnc/xstartup ~/.vnc/xstartup.b
nano ~/.vnc/xstartup

Die Sitzung der XFCE-Desktopumgebung wird durch das folgende xstartup-Skript gestartet:

#!/bin/bash
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
xrdb $HOME/.Xresources
exec /usr/bin/startxfce4 &

Der xrdb-Befehl ist erforderlich, damit VNC die .Xresources-Datei im Home-Verzeichnis lesen kann. Dort kann der Benutzer verschiedene grafische Desktop-Einstellungen festlegen: Schriftartendarstellung, Terminalfarben, Cursorthemen usw. Das Skript muss ausführbar gemacht werden:

chmod 755 ~/.vnc/xstartup

Damit ist die Einrichtung des VNC-Servers abgeschlossen. Wenn Sie es mit dem Befehl vncserver -localhost no (als vnc-Benutzer) ausführen, können Sie sich mit dem zuvor angegebenen Passwort verbinden und sehen das folgende Bild:

VPS unter Linux mit grafischer Oberfläche: Starten eines VNC-Servers unter Ubuntu 18.04

Starten eines Dienstes über systemd

Das manuelle Starten eines VNC-Servers ist für den Kampfeinsatz nicht geeignet, daher konfigurieren wir einen Systemdienst. Die Befehle werden als Root ausgeführt (wir verwenden sudo). Erstellen wir zunächst eine neue Unit-Datei für unseren Server:

sudo nano /etc/systemd/system/[email protected]

Mit dem @-Symbol im Namen können Sie ein Argument zum Konfigurieren des Dienstes übergeben. In unserem Fall gibt es den VNC-Display-Port an. Die Unit-Datei besteht aus mehreren Abschnitten:

[Unit]
Description=TigerVNC server
After=syslog.target network.target

[Service]
Type=simple
User=vnc 
Group=vnc 
WorkingDirectory=/home/vnc 
PIDFile=/home/vnc/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x960 :%i
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

Dann müssen Sie systemd über die neue Datei informieren und sie aktivieren:

sudo systemctl daemon-reload
sudo systemctl enable [email protected]

Die Zahl 1 im Namen gibt die Bildschirmnummer an.

Stoppen Sie den VNC-Server, starten Sie ihn als Dienst und prüfen Sie den Status:

# от имени пользователя vnc 
vncserver -kill :1

# с привилегиями суперпользователя
sudo systemctl start vncserver@1
sudo systemctl status vncserver@1

Wenn der Dienst läuft, sollten wir so etwas erhalten.

VPS unter Linux mit grafischer Oberfläche: Starten eines VNC-Servers unter Ubuntu 18.04

Desktop-Verbindung

Unsere Konfiguration verwendet keine Verschlüsselung, sodass Netzwerkpakete von Angreifern abgefangen werden können. Darüber hinaus kommt es bei VNC-Servern recht häufig vor Schwachstellen findenDaher sollten Sie sie nicht für den Zugriff aus dem Internet öffnen. Um eine sichere Verbindung zu Ihrem lokalen Computer herzustellen, müssen Sie den Datenverkehr in einen SSH-Tunnel packen und dann einen VNC-Client konfigurieren. Unter Windows können Sie einen grafischen SSH-Client (z. B. PuTTY) verwenden. Aus Sicherheitsgründen überwacht TigerVNC auf dem Server nur localhost und ist nicht direkt über öffentliche Netzwerke zugänglich:


sudo netstat -ap |more

VPS unter Linux mit grafischer Oberfläche: Starten eines VNC-Servers unter Ubuntu 18.04
Unter Linux, FreeBSD, OS

ssh -L 5901:127.0.0.1:5901 -C -N -l vnc vnc_server_ip

Die Option -L bindet Port 5901 der Remote-Verbindung an Port 5901 auf localhost. Die Option -C aktiviert die Komprimierung und die Option -N weist ssh an, den Remote-Befehl nicht auszuführen. Die Option -l gibt die Anmeldung für die Remote-Anmeldung an.

Nachdem Sie den Tunnel auf dem lokalen Computer eingerichtet haben, müssen Sie den VNC-Client starten und eine Verbindung zum Host 127.0.0.1:5901 (localhost:5901) herstellen und dabei das zuvor angegebene Passwort verwenden, um auf den VNC-Server zuzugreifen. Wir können jetzt sicher über einen verschlüsselten Tunnel mit der grafischen Desktop-Umgebung XFCE auf dem VPS kommunizieren. Im Screenshot wird das oberste Dienstprogramm im Terminalemulator ausgeführt, um den geringen Verbrauch von Rechenressourcen durch die virtuelle Maschine zu verdeutlichen. Dann hängt alles von den Benutzeranwendungen ab.

VPS unter Linux mit grafischer Oberfläche: Starten eines VNC-Servers unter Ubuntu 18.04
Sie können einen VNC-Server unter Linux auf fast jedem VPS installieren und konfigurieren. Dafür sind keine teuren und ressourcenintensiven Konfigurationen mit Videoadapter-Emulation oder der Kauf kommerzieller Softwarelizenzen erforderlich. Zusätzlich zu der von uns in Betracht gezogenen Systemdienstoption gibt es noch weitere: Start im Daemon-Modus (über /etc/rc.local), wenn das System startet, oder bei Bedarf über inetd. Letzteres ist für die Erstellung von Mehrbenutzerkonfigurationen interessant. Der Internet-Superserver startet den VNC-Server und verbindet den Client mit ihm, und der VNC-Server erstellt einen neuen Bildschirm und startet die Sitzung. Um sich darin zu authentifizieren, können Sie einen grafischen Anzeigemanager verwenden (z. B. Licht DM), und nach dem Trennen des Clients wird die Sitzung geschlossen und alle mit dem Bildschirm arbeitenden Programme werden beendet.

VPS unter Linux mit grafischer Oberfläche: Starten eines VNC-Servers unter Ubuntu 18.04

Source: habr.com

Kommentar hinzufügen