Linux VPS mit grafischer Oberfläche: RDP-Server auf Ubuntu 18.04 einrichten

Linux VPS mit grafischer Oberfläche: RDP-Server auf Ubuntu 18.04 einrichten
In im vorherigen Artikel Wir haben den Start eines VNC-Servers auf einer virtuellen Maschine beliebigen Typs behandelt. Diese Variante hat viele Nachteile, der Hauptnachteil sind die hohen Anforderungen an die Bandbreite der Datenübertragungswege. Heute werden wir versuchen, über RDP (Remote Desktop Protocol) eine Verbindung zum grafischen Desktop unter Linux herzustellen. Das VNC-System basiert auf der Übertragung von Pixelarrays über das RFB-Protokoll (Remote Framebuffer), während RDP komplexere grafische Primitivformen und hochrangige Befehle übermitteln kann. Es wird üblicherweise für die Bereitstellung von Remote-Desktop-Diensten in Windows verwendet, aber Server für Linux sind ebenfalls verfügbar.

Inhaltsverzeichnis:

Installation der grafischen Oberfläche
Lokalisierung des Servers und Installation von Software
Installation und Konfiguration des RDP-Servers
Einrichtung der Firewall
Verbindung zum RDP-Server
Sitzungsmanager und Benutzersitzungen
Wechseln der Tastaturlayouts

Installation der grafischen Oberfläche

Wir verwenden eine virtuelle Maschine mit Ubuntu Server 18.04 LTS, die über zwei CPU-Kerne, vier Gigabyte Arbeitsspeicher und eine Festplatte (HDD) mit zwanzig Gigabyte verfügt. Eine schwächere Konfiguration eignet sich schlecht für einen grafischen Desktop, obwohl dies von den zu lösenden Aufgaben abhängt. Vergessen Sie nicht, den Promo-Code Habrahabr10 zu verwenden, um einen 10% Rabatt bei Ihrer Bestellung zu erhalten.

Linux VPS mit grafischer Oberfläche: RDP-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

Wie im vorherigen Fall haben wir uns aufgrund der relativ geringen Anforderungen an die Rechenressourcen für XFCE entschieden.

Lokalisierung des Servers und Installation von Software

Oft werden virtuelle Maschinen nur mit der englischen Lokalisierung bereitgestellt. Auf dem Desktop könnte eine russische erforderlich sein, die einfach eingerichtet werden kann. Lassen Sie uns zunächst die Übersetzungen für die Systemprogramme installieren:

sudo apt-get install language-pack-ru

Lassen Sie uns die Lokalisierung einrichten:

sudo update-locale LANG=ru_RU.UTF-8

Der gleiche Effekt kann erzielt werden, indem die Datei /etc/default/locale manuell bearbeitet wird.

Für die Lokalisierung von GNOME und KDE sind im Repository die Pakete language-pack-gnome-de und language-pack-kde-de verfügbar – diese werden benötigt, wenn Sie Anwendungen aus diesen Desktop-Umgebungen verwenden. In XFCE werden die Übersetzungen zusammen mit den Anwendungen installiert. Danach können Sie die Wörterbücher installieren:

# Словари для проверки орфографии
sudo apt-get install hunspell hunspell-ru

# Тезаурус для LibreOffice
sudo apt-get install mythes-ru

# Англо-русский словарь в формате DICT
sudo apt-get install mueller7-dict

Darüber hinaus kann die Installation von Übersetzungen für einige Anwendungen erforderlich sein:

# Браузер Firefox
sudo apt-get install firefox firefox-locale-ru

# Почтовый клиент Thunderbird
sudo apt-get install thunderbird thunderbird-locale-ru

# Офисный пакет LibreOffice
sudo apt-get install libreoffice libreoffice-l10n-ru libreoffice-help-ru

Damit ist die Vorbereitung der Desktop-Umgebung abgeschlossen, und es bleibt nur noch, den RDP-Server einzurichten.

Installation und Konfiguration des RDP-Servers

In den Repositorys von Ubuntu gibt es den kostenfrei verfügbaren Server Xrdp, den wir verwenden werden:

sudo apt-get install xrdp

Wenn alles gut gelaufen ist, sollte der Server automatisch starten:

sudo systemctl status xrdp

Linux VPS mit grafischer Oberfläche: RDP-Server auf Ubuntu 18.04 einrichten
Der Xrdp-Server wird mit den Rechten des Benutzers xrdp gestartet und verwendet standardmäßig das Zertifikat /etc/ssl/private/ssl-cert-snakeoil.key, das durch ein eigenes ersetzt werden kann. Um Leserechte für die Datei zu erhalten, muss der Benutzer zur Gruppe ssl-cert hinzugefügt werden:

sudo adduser xrdp ssl-cert

Die Standardkonfiguration kann in der Datei /etc/default/xrdp gefunden werden, während alle anderen Konfigurationsdateien des Servers im Verzeichnis /etc/xrdp liegen. Die Hauptparameter befinden sich in der Datei xrdp.ini, die nicht geändert werden muss. Die Konfiguration ist gut dokumentiert, zudem gibt es die entsprechenden manpages im Lieferumfang:

man xrdp.ini
man xrdp

Es bleibt nur noch, das Skript /etc/xrdp/startwm.sh zu bearbeiten, das bei der Initialisierung der Benutzersitzung ausgeführt wird. Zuerst erstellen wir ein Backup des Skripts aus der Distribution:

sudo mv /etc/xrdp/startwm.sh /etc/xrdp/startwm.b
sudo nano /etc/xrdp/startwm.sh

Um die Desktop-Umgebung XFCE zu starten, wird ein Skript mit einem ähnlichen Inhalt benötigt:

#!/bin/sh
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi
exec /usr/bin/startxfce4

Bitte beachten Sie: In Skripten ist es besser, den vollständigen Pfad zu den ausführbaren Dateien anzugeben – das ist eine gute Gewohnheit. Machen wir das Skript ausführbar, damit gilt die Konfiguration des Xrdp-Servers als abgeschlossen:

sudo chmod 755 /etc/xrdp/startwm.sh

Wir starten den Server neu:

sudo systemctl restart xrdp

Einrichtung der Firewall

Standardmäßig hört Xrdp auf TCP-Port 3389 an allen Schnittstellen. Je nach Konfiguration des virtuellen Servers kann es erforderlich sein, die Netfilter-Firewall einzustellen. In Linux geschieht dies normalerweise mit dem Tool iptables, aber in Ubuntu sollte man besser ufw verwenden. Wenn die IP-Adresse des Clients bekannt ist, erfolgt die Konfiguration mit folgendem Befehl:

sudo ufw allow from IP_Address to any port 3389

Um Verbindungen von jeder IP zu erlauben, kann folgender Befehl verwendet werden:

sudo ufw allow 3389

Das RDP-Protokoll unterstützt Verschlüsselung, aber den Zugriff auf den Xrdp-Server aus öffentlichen Netzwerken zu ermöglichen, ist keine gute Idee. Wenn der Kunde keine feste IP hat, sollte der Server zur Erhöhung der Sicherheit nur auf localhost hören. Der Zugang sollte besser über ein SSH-Tunnel konfiguriert werden, der den Datenverkehr sicher vom Client-Computer umleitet. Einen ähnlichen Ansatz haben wir in unserem vorherigen Artikel für den VNC-Server verwendet.

Verbindung zum RDP-Server

Um mit der Desktop-Umgebung zu arbeiten, ist es besser, einen separaten unprivilegierten Benutzer zu erstellen:

sudo adduser rdpuser

Linux VPS mit grafischer Oberfläche: RDP-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 rdpuser sudo

Der Zugriff auf den Server kann mit jedem RDP-Client erfolgen, einschließlich des integrierten Remote Desktop Clients von Windows. Wenn Xrdp auf dem externen Interface lauscht, sind keine weiteren Schritte erforderlich. Es genügt, in den Verbindungseinstellungen die IP-Adresse des VPS, den Benutzernamen und das Passwort anzugeben. Nach der Verbindung sehen wir etwa folgendes Bild:

Linux VPS mit grafischer Oberfläche: RDP-Server auf Ubuntu 18.04 einrichten
Nach der Erstkonfiguration der Desktop-Umgebung erhalten wir einen voll funktionsfähigen Desktop. Wie Sie sehen können, benötigt er nicht viel Ressourcen, obwohl alles weitere von den verwendeten Anwendungen abhängt.

Linux VPS mit grafischer Oberfläche: RDP-Server auf Ubuntu 18.04 einrichten
Wenn der Xrdp-Server nur auf localhost hört, muss der Datenverkehr auf dem Client-Computer in ein SSH-Tunnel verpackt werden (sshd muss auf dem VPS laufen). Unter Windows kann ein grafischer SSH-Client (zum Beispiel PuTTY) verwendet werden, während in UNIX-Systemen das ssh-Tool erforderlich ist:

ssh -L 3389:127.0.0.1:3389 -C -N -l rdpuser RDP_server_ip

Nach der Initialisierung des Tunnels wird sich der RDP-Client nicht mehr mit dem Remote-Server, sondern mit dem lokalen Host verbinden.

Mit mobilen Geräten ist es komplizierter: Clients, die in der Lage sind, Tunnel aufzubauen, müssen gekauft werden, außerdem ist die Hintergrundarbeit von Drittanbieteranwendungen in iOS und iPadOS aufgrund der hervorragenden Energieoptimierung erschwert. Auf iPhone und iPad lässt sich ein Tunnel nicht in einer separaten Anwendung erstellen – es wird eine All-in-One-App benötigt, die selbst das RDP über SSH verbinden kann. Ein Beispiel dafür ist: Remoter Pro.

Sitzungsmanager und Benutzersitzungen

Die Möglichkeit zur Mehrbenutzerarbeit ist direkt im Xrdp-Server implementiert und erfordert keine zusätzliche Konfiguration. Nach dem Start des Dienstes über systemd arbeitet ein Prozess im Demomodus, hört auf Port 3389 und interagiert über localhost mit dem Sitzungsmanager.

ps aux |grep xrdp

Linux VPS mit grafischer Oberfläche: RDP-Server auf Ubuntu 18.04 einrichten

sudo netstat -ap |grep xrdp

Linux VPS mit grafischer Oberfläche: RDP-Server auf Ubuntu 18.04 einrichten
Der Sitzung-Manager ist für die Benutzer in der Regel nicht sichtbar, da die im Kundeneinstellungen festgelegten Anmeldedaten automatisch übermittelt werden. Wenn dies nicht geschieht oder ein Fehler bei der Authentifizierung auftritt, erscheint anstelle des Desktops ein interaktives Anmeldefenster.

Linux VPS mit grafischer Oberfläche: RDP-Server auf Ubuntu 18.04 einrichten
Der automatische Start des Sitzung-Managers ist in der Datei /etc/default/xrdp festgelegt, während die Konfiguration in /etc/xrdp/sesman.ini gespeichert ist. Standardmäßig sieht sie etwa so aus:

[Globals]
ListenAdresse=127.0.0.1
ListenPort=3350
BenutzerFensterManager=true
BenutzerFensterManager=startwm.sh
StandardFensterManager=startwm.sh

[Sicherheit]
RootLoginErlauben=true
MaxLoginVersuche=4
TerminalServerBenutzer=tsusers
TerminalServerAdministratoren=tsadmins
; Wenn AlwaysGroupCheck=false ist, wird der Zugang erlaubt
; falls die Gruppe TerminalServerBenutzer nicht definiert ist.
AlwaysGroupCheck=false

[Sitzungen]

Hier muss nichts geändert werden, außer dass der Root-Zugang verboten wird (AllowRootLogin=false). Für jeden authentifizierten Benutzer im System wird ein separater xrdp-Prozess gestartet: Wenn man die Sitzung ohne Beendigung trennt, bleiben die Benutzerprozesse standardmäßig aktiv, und man kann sich erneut mit der Sitzung verbinden. Die Einstellungen können in der Datei /etc/xrdp/sesman.ini (Abschnitt [Sessions]) geändert werden.

Wechseln der Tastaturlayouts

Mit einem bidirektionalen Clipboard treten normalerweise keine Probleme auf, aber bei der russischen Tastaturbelegung muss man etwas nachhelfen (das russische Gebietsschema sollte bereits installiert). Lassen Sie uns die Tastatureinstellungen des Xrdp-Servers bearbeiten:

sudo nano /etc/xrdp/xrdp_keyboard.ini

Am Ende der Konfigurationsdatei müssen die folgenden Zeilen hinzugefügt werden:

[rdp_keyboard_ru]
keyboard_type=4
keyboard_type=7
keyboard_subtype=1
model=pc105
options=grp:alt_shift_toggle
rdp_layouts=default_rdp_layouts
layouts_map=layouts_map_ru

[layouts_map_ru]
rdp_layout_us=us,ru
rdp_layout_ru=us,ru

Jetzt bleibt es nur noch, die Datei zu speichern und Xrdp neu zu starten:

sudo systemctl restart xrdp

Wie Sie sehen, ist es nicht schwer, einen RDP-Server auf einem Linux-VPS einzurichten. In im vorherigen Artikel haben wir bereits die VNC-Konfiguration behandelt. Neben diesen Technologien gibt es noch eine interessante Option: das X2Go-System, das ein modifiziertes NX 3 Protokoll verwendet. Damit werden wir uns in der nächsten Veröffentlichung befassen.

Linux VPS mit grafischer Oberfläche: RDP-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