VPS auf Linux mit einer grafischen Benutzeroberfläche: Starten eines RDP-Servers auf Ubuntu 18.04

VPS auf Linux mit einer grafischen Benutzeroberfläche: Starten eines RDP-Servers auf Ubuntu 18.04
В vorheriger Artikel Wir haben bereits die Einrichtung eines VNC-Servers auf beliebigen virtuellen Maschinen behandelt. Diese Option hat viele Nachteile, der wichtigste ist der hohe Bandbreitenbedarf für die Datenübertragung. Heute versuchen wir, eine Verbindung zu einem grafischen Desktop herzustellen. Linux via RDP (Remote Desktop Protocol). Das VNC-System basiert auf der Übertragung von Pixelarrays über das RFB-Protokoll (Remote Framebuffer), während RDP die Übertragung komplexerer grafischer Elemente und Befehle höherer Ebene ermöglicht. Es wird typischerweise zur Organisation von Remote-Desktop-Diensten verwendet. Windows, aber die Server für Linux auch verfügbar.

Table of Contents:

Installieren der grafischen Umgebung
Russifizierung der Server- und Softwareinstallation
Installieren und Konfigurieren eines RDP-Servers
Einrichten einer Firewall
Verbindung zu einem RDP-Server herstellen
Sitzungsmanager und Benutzersitzungen
Tastaturlayout wechseln

Installieren der grafischen Umgebung

Wir werden eine virtuelle Maschine verwenden mit Ubuntu Server 18.04 LTS mit zwei Prozessorkernen, vier Gigabyte RAM und einer 20-Gigabyte-Festplatte (HDD). Eine schwächere Konfiguration ist für einen grafikintensiven Desktop-PC nicht geeignet, dies hängt jedoch von der jeweiligen Anwendung ab. Vergessen Sie nicht, den Aktionscode Habrahabr10 für 10 % Rabatt auf Ihre Bestellung zu verwenden.

VPS auf Linux mit einer grafischen Benutzeroberfläche: Starten eines RDP-Servers auf 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

Wie im vorherigen Fall haben wir uns aufgrund des relativ geringen Bedarfs an Rechenressourcen für XFCE entschieden.

Russifizierung der Server- und Softwareinstallation

Häufig werden virtuelle Maschinen nur mit englischer Lokalisierung bereitgestellt. Auf dem Desktop benötigen Sie möglicherweise Russisch, was einfach einzurichten ist. Lassen Sie uns zunächst Übersetzungen für 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 durch manuelles Bearbeiten von /etc/default/locale erzielt werden.

Für die Lokalisierung von GNOME und KDE verfügt das Repository über die Pakete language-pack-gnome-ru und language-pack-kde-ru – Sie benötigen diese, wenn Sie Programme aus diesen Desktop-Umgebungen verwenden. In XFCE werden Übersetzungen mit Anwendungen installiert. Als nächstes 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 für einige Anwendungsprogramme die Installation von Übersetzungen 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, es bleibt nur noch die Konfiguration des RDP-Servers.

Installieren und Konfigurieren eines RDP-Servers

In Repositories Ubuntu Es gibt einen frei verfügbaren Xrdp-Server, den wir verwenden werden:

sudo apt-get install xrdp

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

sudo systemctl status xrdp

VPS auf Linux mit einer grafischen Benutzeroberfläche: Starten eines RDP-Servers auf Ubuntu 18.04
Der Xrdp-Server läuft mit xrdp-Benutzerrechten und verwendet standardmäßig das Zertifikat /etc/ssl/private/ssl-cert-snakeoil.key, das durch Ihr eigenes ersetzt werden kann. Um Zugriff zum Lesen der Datei zu haben, müssen Sie den Benutzer zur Gruppe ssl-cert hinzufügen:

sudo adduser xrdp ssl-cert

Die Standardeinstellungen finden Sie in der Datei /etc/default/xrdp und alle anderen Serverkonfigurationsdateien befinden sich im Verzeichnis /etc/xrdp. Die Hauptparameter befinden sich in der Datei xrdp.ini, die nicht geändert werden muss. Die Konfiguration ist gut dokumentiert und die entsprechenden Manpages sind enthalten:

man xrdp.ini
man xrdp

Es bleibt nur noch die Bearbeitung des Skripts /etc/xrdp/startwm.sh, das bei der Initialisierung der Benutzersitzung ausgeführt wird. Erstellen wir zunächst eine Sicherungskopie des Skripts aus der Distribution:

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

Um die XFCE-Desktopumgebung zu starten, benötigen Sie ein Skript wie dieses:

#!/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 zu schreiben – das ist eine gute Angewohnheit. Machen wir das Skript ausführbar und an diesem Punkt kann die Einrichtung des Xrdp-Servers als abgeschlossen betrachtet werden:

sudo chmod 755 /etc/xrdp/startwm.sh

Starten Sie den Server neu:

sudo systemctl restart xrdp

Einrichten einer Firewall

Standardmäßig lauscht Xrdp auf TCP-Port 3389 auf allen Schnittstellen. Je nach Konfiguration des virtuellen Servers müssen Sie möglicherweise die Netfilter-Firewall konfigurieren. Linux Dies geschieht üblicherweise mithilfe des iptables-Dienstprogramms, aber in Ubuntu Es ist besser, ufw zu verwenden. Wenn die IP-Adresse des Clients bekannt ist, kann der folgende Befehl zur Konfiguration verwendet werden:

sudo ufw allow from IP_Address to any port 3389

Sie können Verbindungen von jeder IP wie folgt zulassen:

sudo ufw allow 3389

Das RDP-Protokoll unterstützt die Verschlüsselung, aber es ist keine gute Idee, den Xrdp-Server öffentlichen Netzwerken zugänglich zu machen. Wenn der Client keine feste IP hat, sollte der Server zur Erhöhung der Sicherheit nur auf localhost lauschen. Der Zugriff erfolgt am besten über einen SSH-Tunnel, der den Datenverkehr vom Client-Computer sicher umleitet. Wir haben einen ähnlichen Ansatz im vorherigen Artikel verwendet für VNC-Server.

Verbindung zu einem RDP-Server herstellen

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

sudo adduser rdpuser

VPS auf Linux mit einer grafischen Benutzeroberfläche: Starten eines RDP-Servers auf 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 rdpuser sudo

Sie können sich mit jedem RDP-Client mit dem Server verbinden, einschließlich des integrierten Remotedesktopdienste-Clients. WindowsWenn Xrdp auf der externen Schnittstelle lauscht, sind keine weiteren Maßnahmen erforderlich. Geben Sie einfach die IP-Adresse, den Benutzernamen und das Passwort des VPS in den Verbindungseinstellungen ein. Nach erfolgreicher Verbindung wird Ihnen etwa Folgendes angezeigt:

VPS auf Linux mit einer grafischen Benutzeroberfläche: Starten eines RDP-Servers auf Ubuntu 18.04
Nach der Ersteinrichtung der Desktop-Umgebung erhalten wir einen vollwertigen Desktop. Wie Sie sehen, verbraucht es nicht viele Ressourcen, obwohl alles von den verwendeten Anwendungen abhängt.

VPS auf Linux mit einer grafischen Benutzeroberfläche: Starten eines RDP-Servers auf Ubuntu 18.04
Wenn der Xrdp-Server nur auf localhost lauscht, muss der Datenverkehr auf dem Client-Computer in einen SSH-Tunnel gepackt werden (sshd muss auf dem VPS laufen). Windows Sie können einen grafischen SSH-Client (z. B. PuTTY) verwenden, aber auf UNIX-Systemen benötigen Sie das ssh-Dienstprogramm:

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

Nachdem der Tunnel initialisiert wurde, verbindet sich der RDP-Client nicht mehr mit dem Remote-Server, sondern mit dem lokalen Host.

Bei Mobilgeräten ist die Sache komplizierter: SSH-Clients, die einen Tunnel aufbauen können, müssen erworben werden, und unter iOS und iPadOS wird der Hintergrundbetrieb von Drittanbieteranwendungen durch eine übermäßig gute Energieoptimierung beeinträchtigt. iPhone Sie können auf einem iPad keinen Tunnel mit einer separaten App einrichten – Sie benötigen eine kombinierte App, die eine RDP-Verbindung über SSH herstellen kann. Zum Beispiel: Remoter Pro.

Sitzungsmanager und Benutzersitzungen

Die Fähigkeit zum Mehrbenutzer-Arbeiten ist direkt im Xrdp-Server implementiert und erfordert keine zusätzliche Konfiguration. Nach dem Starten des Dienstes über systemd läuft ein Prozess im Daemon-Modus, lauscht auf Port 3389 und kommuniziert über localhost mit dem Sitzungsmanager.

ps aux |grep xrdp

VPS auf Linux mit einer grafischen Benutzeroberfläche: Starten eines RDP-Servers auf Ubuntu 18.04

sudo netstat -ap |grep xrdp

VPS auf Linux mit einer grafischen Benutzeroberfläche: Starten eines RDP-Servers auf Ubuntu 18.04
Der Sitzungsmanager ist für Benutzer normalerweise nicht sichtbar, da der in den Client-Einstellungen angegebene Benutzername und das Kennwort automatisch an ihn übertragen werden. Geschieht dies nicht oder kommt es zu einem Fehler bei der Authentifizierung, erscheint anstelle des Desktops ein interaktives Anmeldefenster.

VPS auf Linux mit einer grafischen Benutzeroberfläche: Starten eines RDP-Servers auf Ubuntu 18.04
Der automatische Start des Sitzungsmanagers ist in der Datei /etc/default/xrdp angegeben und die Konfiguration ist in /etc/xrdp/sesman.ini gespeichert. Standardmäßig sieht es etwa so aus:

[Globals]
ListenAddress=127.0.0.1
ListenPort=3350
EnableUserWindowManager=true
UserWindowManager=startwm.sh
DefaultWindowManager=startwm.sh

[Security]
AllowRootLogin=true
MaxLoginRetry=4
TerminalServerUsers=tsusers
TerminalServerAdmins=tsadmins
; When AlwaysGroupCheck=false access will be permitted
; if the group TerminalServerUsers is not defined.
AlwaysGroupCheck=false

[Sessions]

Hier müssen Sie nichts ändern, Sie müssen lediglich die Anmeldung mit Root-Rechten deaktivieren (AllowRootLogin=false). Für jeden im System berechtigten Benutzer wird ein separater xrdp-Prozess gestartet: Wenn Sie die Verbindung trennen, ohne die Sitzung zu beenden, werden Benutzerprozesse standardmäßig weiterhin ausgeführt und Sie können sich erneut mit der Sitzung verbinden. Einstellungen können in der Datei /etc/xrdp/sesman.ini (Abschnitt [Sitzungen]) geändert werden.

Tastaturlayout wechseln

Normalerweise gibt es mit einer Zwei-Wege-Zwischenablage keine Probleme, aber mit dem russischen Tastaturlayout müssen Sie ein wenig herumspielen (das russische Gebietsschema sollte bereits vorhanden sein). installiert). Bearbeiten wir die Tastatureinstellungen des Xrdp-Servers:

sudo nano /etc/xrdp/xrdp_keyboard.ini

Sie müssen die folgenden Zeilen am Ende der Konfigurationsdatei hinzufügen:

[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 müssen Sie nur noch die Datei speichern und Xrdp neu starten:

sudo systemctl restart xrdp

Wie Sie sehen, ist es nicht schwierig, einen RDP-Server auf einem Linux-VPS einzurichten, aber vorheriger Artikel Das VNC-Setup haben wir bereits besprochen. Zusätzlich zu diesen Technologien gibt es eine weitere interessante Option: das X3Go-System, das ein modifiziertes NX 2-Protokoll verwendet. Wir werden uns in der nächsten Veröffentlichung damit befassen.

VPS auf Linux mit einer grafischen Benutzeroberfläche: Starten eines RDP-Servers auf Ubuntu 18.04

Source: habr.com

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz und VPS-VDS-Servern 🔥 Kaufen Sie zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server | ProHoster