VPS unter Linux mit grafischer Benutzeroberfläche: VNC-Server auf Ubuntu 18.04 einrichten

VPS unter Linux mit grafischer Benutzeroberfläche: VNC-Server auf Ubuntu 18.04 einrichten
Einige Nutzer mieten vergleichsweise günstige Windows VPS, um einen Remote-Desktop-Service zu betreiben. Das Gleiche ist auch unter Linux möglich, ohne eigene Hardware in einem Rechenzentrum unterzubringen oder einen dedizierten Server zu mieten. Manche benötigen eine gewohnte grafische Oberfläche für Tests und Entwicklung oder einen Remote-Desktop mit hoher Bandbreite für die Arbeit von mobilen Endgeräten aus. Es gibt zahlreiche Anwendungsoptionen für das Virtual Network Computing (VNC) basierend auf dem Remote FrameBuffer (RFB)-Protokoll. In diesem kurzen Artikel zeigen wir Ihnen, wie Sie es auf einer virtuellen Maschine mit jedem Hypervisor einrichten können.

Inhaltsverzeichnis:

Auswahl des VNC-Servers
Installation und Konfiguration
Dienste über systemd starten
Verbindung zum Desktop

Auswahl des VNC-Servers

Der VNC-Dienst kann in das Virtualisierungssystem integriert werden, wobei der Hypervisor ihn mit den emulierten Geräten verbindet, ohne dass zusätzliche Konfiguration erforderlich ist. Diese Option bringt jedoch erhebliche Overheadkosten mit sich und wird von weitem nicht allen Anbietern unterstützt – selbst in einer weniger ressourcenintensiven Implementierung, bei der anstelle der Emulation eines realen Grafikgeräts der virtuellen Maschine eine vereinfachte Abstraktion (Framebuffer) übergeben wird. Manchmal wird der VNC-Server an einen laufenden X-Server gebunden, jedoch ist diese Methode besser für den Zugriff auf physische Maschinen geeignet und schafft auf virtuellen Maschinen eine Reihe technischer Schwierigkeiten. Am einfachsten ist es, einen VNC-Server mit einem integrierten X-Server zu installieren. Er benötigt keine physischen Geräte (Videoadapter, Tastatur und Maus) oder deren Emulation durch den Hypervisor, weshalb er für VPS jeglicher Art geeignet ist.

Installation und Konfiguration

Wir benötigen eine virtuelle Maschine mit Ubuntu Server 18.04 LTS in der Standardkonfiguration. In den Standard-Repositorys dieses Distributions gibt es mehrere VNC-Server: TightVNC, TigerVNC, x11vnc und viele mehr. Wir haben uns für TigerVNC entschieden – einen aktuellen Fork des nicht mehr unterstützten TightVNC. Die Einrichtung anderer Server erfolgt auf ähnliche Weise. Außerdem muss eine Desktop-Umgebung ausgewählt werden: unserer Meinung nach ist XFCE aufgrund seiner relativ geringen Anforderungen an die Rechenressourcen die optimale Wahl. Wer möchte, kann eine andere DE oder WM installieren: hier hängt alles von den persönlichen Vorlieben ab, jedoch beeinflusst die Softwarewahl direkt den Bedarf an Arbeitsspeicher und Rechenkernen.

VPS unter Linux mit grafischer Benutzeroberfläche: VNC-Server auf Ubuntu 18.04 einrichten

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

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

Danach muss der VNC-Server installiert werden:

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

Es ist eine schlechte Idee, ihn mit Superuser-Rechten zu starten. Wir erstellen einen Benutzer und eine Gruppe:

sudo adduser vnc

VPS unter Linux mit grafischer Benutzeroberfläche: VNC-Server auf Ubuntu 18.04 einrichten

Wir fügen den Benutzer zur sudo-Gruppe hinzu, damit er administrative Aufgaben erledigen kann. Wenn dies nicht nötig ist, kann dieser Schritt übersprungen werden:

sudo gpasswd -a vnc sudo

Im nächsten Schritt müssen Sie den VNC-Server mit den Benutzerrechten von vnc starten, um ein sicheres Passwort und Konfigurationsdateien im Verzeichnis ~/ .vnc/ zu erstellen. Das Passwort kann zwischen 6 und 8 Zeichen lang sein (übrige Zeichen werden abgeschnitten). Optional kann auch ein nur-Anzeige-Passwort festgelegt werden, d.h. ohne Zugriff auf die Tastatur und die Maus. Die folgenden Befehle werden im Namen des Benutzers vnc ausgeführt:

su - vnc
vncserver -localhost no

VPS unter Linux mit grafischer Benutzeroberfläche: VNC-Server auf Ubuntu 18.04 einrichten
Standardmäßig verwendet das RFB-Protokoll den TCP-Portbereich von 5900 bis 5906 – dies sind die sogenannten Display-Ports, die jeweils einem X-Server-Bildschirm entsprechen. Die Ports sind den Bildschirmen von :0 bis :6 zugeordnet. Unser gestarteter VNC-Server hört auf Port 5901 (Bildschirm :1). Weitere Instanzen können auf anderen Ports mit den Bildschirmen :2, :3 usw. betrieben werden. Bevor Sie mit der weiteren Konfiguration fortfahren, müssen Sie den Server stoppen:

vncserver -kill :1

Der Befehl sollte eine Meldung ähnlich dieser ausgeben: „Killing Xtigervnc process ID 18105… success!“.

Beim Start von TigerVNC wird das Skript ~/ .vnc/ xstartup ausgeführt, um die Konfigurationseinstellungen einzurichten. Lassen Sie uns ein eigenes Skript erstellen, nachdem wir das vorhandene (falls es existiert) gesichert haben:

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

Die XFCE-Desktop-Umgebung wird mit folgendem Skript xstartup gestartet:

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

Der Befehl xrdb ist erforderlich, damit das VNC-System die Datei .Xresources im Home-Verzeichnis liest. Dort kann der Benutzer verschiedene Parameter des grafischen Desktops festlegen: Schriftarten-Rendering, Terminalfarben, Cursor-Themen usw. Das Skript muss ausführbar gemacht werden:

chmod 755 ~/.vnc/xstartup

Damit ist die Konfiguration des VNC-Servers abgeschlossen. Wenn Sie ihn mit dem Befehl vncserver -localhost no (im Namen des Benutzers vnc) starten, können Sie sich mit dem vorher festgelegten Passwort verbinden und sehen ein Bild wie dieses:

VPS unter Linux mit grafischer Benutzeroberfläche: VNC-Server auf Ubuntu 18.04 einrichten

Dienste über systemd starten

Ein manuelles Starten des VNC-Servers eignet sich schlecht für den Produktionsbetrieb, daher werden wir einen Systemdienst einrichten. Die Befehle werden mit root-Rechten ausgeführt (wir verwenden sudo). Zuerst erstellen wir eine neue Unit-Datei für unseren Server:

sudo nano /etc/systemd/system/vncserver@.service

Das @-Zeichen im Namen ermöglicht es, ein Argument zur Konfiguration des Dienstes zu übergeben. In unserem Fall legt es den VNC-Anzeigepunkt fest. 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 das Vorhandensein der neuen Datei informieren und sie aktivieren:

sudo systemctl daemon-reload
sudo systemctl enable vncserver@1.service

Die Zahl 1 im Namen bestimmt die Bildschirmnummer.

Stoppen Sie den VNC-Server, starten Sie ihn als Dienst und überprü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 ungefähr dieses Ergebnis erhalten.

VPS unter Linux mit grafischer Benutzeroberfläche: VNC-Server auf Ubuntu 18.04 einrichten

Verbindung zum Desktop

Unsere Konfiguration verwendet keine Verschlüsselung, daher können die Netzwerkpakete von Angreifern abgefangen werden. Außerdem treten bei VNC-Servern häufig Schwachstellen, sodass es nicht ratsam ist, sie für den Zugriff aus dem Internet zu öffnen. Für eine sichere Verbindung auf dem lokalen Computer sollte der Verkehr in einem SSH-Tunnel verpackt und dann der VNC-Client konfiguriert werden. Unter Windows kann ein grafischer SSH-Client (z. B. PuTTY) verwendet werden. Zur Sicherheit hört TigerVNC auf dem Server nur auf localhost und ist nicht direkt aus öffentlichen Netzwerken zugänglich:


sudo netstat -ap |more

VPS unter Linux mit grafischer Benutzeroberfläche: VNC-Server auf Ubuntu 18.04 einrichten
Unter Linux, FreeBSD, OS X und anderen UNIX-ähnlichen Betriebssystemen wird der Tunnel vom Client-Computer aus mit dem Dienstprogramm ssh erstellt (auf dem VNC-Server muss sshd aktiviert sein):

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

Die Option -L bindet den Port 5901 der Remote-Verbindung an den Port 5901 auf localhost. Die Option -C aktiviert die Kompression, und -N weist das Dienstprogramm ssh an, keinen Remote-Befehl auszuführen. Die Option -l legt den Anmeldenamen für den Remote-Zugang fest.

Nachdem der Tunnel auf dem lokalen Computer eingerichtet ist, muss der VNC-Client gestartet und eine Verbindung zum Host 127.0.0.1:5901 (localhost:5901) hergestellt werden, wobei das zuvor festgelegte Passwort für den Zugang zum VNC-Server verwendet wird. Jetzt können wir sicher über den verschlüsselten Tunnel mit der grafischen Desktop-Umgebung XFCE auf dem VPS interagieren. Im Screenshot des Terminalemulators läuft das Dienstprogramm top, um die geringe Ressourcenverwendung der virtuellen Maschine zu zeigen. Alles Weitere hängt von den Benutzeranwendungen ab.

VPS unter Linux mit grafischer Benutzeroberfläche: VNC-Server auf Ubuntu 18.04 einrichten
Einen VNC-Server unter Linux auf einem VPS zu installieren und zu konfigurieren, ist mit fast jeder Konfiguration möglich. Teure und ressourcenintensive Setups mit Videoadapteremulation oder der Kauf kommerzieller Lizenzen für Software sind dafür nicht erforderlich. Zusätzlich zu der von uns behandelten Systemdienstoption gibt es auch andere: So kann beispielsweise der Dienst im Daemon-Modus (über /etc/rc.local) beim Systemstart oder auf Anforderung über inetd gestartet werden. Letzteres ist interessant für die Erstellung von Mehrbenutzerkonfigurationen. Der Internet-Superserver startet den VNC-Server und verbindet ihn mit dem Client, während der VNC-Server einen neuen Bildschirm erstellt und eine Sitzung beginnt. Zur Authentifizierung innerhalb dieser Sitzung kann ein grafischer Display-Manager genutzt werden (zum Beispiel, LightDM), und nach der Trennung des Clients wird die Sitzung geschlossen und alle laufenden Programme am Bildschirm beendet.

VPS unter Linux mit grafischer Benutzeroberfläche: VNC-Server auf Ubuntu 18.04 einrichten

Quelle: habr.com

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster