Der Autor hat den COVID-19 Hilfsfonds ausgewählt, um im Rahmen des Write for DOnations-Programms eine Spende zu erhalten.
Einführung
Remote Desktop Protocol (RDP) ist ein von Microsoft entwickeltes Netzwerkprotokoll, das Benutzern ermöglicht, aus der Ferne auf die grafische Benutzeroberfläche eines entfernten Windows-Servers zuzugreifen und mit ihr zu interagieren. RDP funktioniert nach dem Client-Server-Modell, bei dem ein RDP-Client auf einem lokalen Rechner installiert ist und ein RDP-Server auf dem entfernten Server.
RDP wird weitgehend für Windows-Fernverbindungen verwendet, aber man kann auch auf die grafische Benutzeroberfläche eines entfernten Linux-Servers zugreifen und mit ihr interagieren, indem man ein Werkzeug wie xrdp verwendet, eine Open-Source-Implementierung des RDP-Servers.
In diesem Tutorial installieren und konfigurieren Sie einen RDP-Server mit xrdp auf einem Ubuntu 22.04-Server und greifen mittels eines RDP-Clients von Ihrem lokalen Rechner darauf zu. Sie werden verstehen, wie man Zugang zu einem entfernten Linux-Server herstellt, indem man eine RDP-Verbindung konfiguriert und nutzt.
Setzen Sie Ihre Frontend-Anwendungen von GitHub mit DigitalOcean App Platform ein. Lassen Sie DigitalOcean sich um das Skalieren Ihrer App kümmern.
Voraussetzungen
Um dieses Tutorial abzuschließen, benötigen Sie:
-
Einen Ubuntu 22.04 Server mit einem Nicht-Root-Benutzer mit
sudo
-Berechtigungen, einer Firewall und mindestens 1GB RAM, den Sie einrichten können, indem Sie der Anleitung zur Einrichtung eines Ubuntu 22.04 Servers folgen. -
Einen lokalen Computer mit einem installierten RDP-Client. Eine Liste der verfügbaren RDP-Clients für verschiedene Betriebssysteme finden Sie unten:
- Auf Windows können Sie die standardmäßige Remote-Desktop-Verbindungsanwendung verwenden.
- Auf macOS können Sie die Microsoft Remote Desktop-Anwendung verwenden.
- Auf Linux können Sie FreeRDP oder Remmina verwenden.
Schritt 1 — Installation einer Desktop-Umgebung auf Ubuntu
In diesem Schritt installieren und konfigurieren Sie eine Desktop-Umgebung auf Ihrem Ubuntu-Server. Standardmäßig wird ein Ubuntu-Server nur mit einer Terminal-Umgebung geliefert. Eine Desktop-Umgebung muss installiert werden, um eine Benutzeroberfläche zu verwenden.
Aus den verfügbaren Optionen für Ubuntu installieren Sie die Desktop-Umgebung Xfce. Xfce bietet eine leichte, benutzerfreundliche Desktop-Umgebung für Linux-basierte Systeme.
Um zu beginnen, verbinden Sie sich über SSH mit Ihrem Server und aktualisieren Sie die Liste der verfügbaren Pakete mit dem folgenden Befehl:
- sudo apt update
Anschließend installieren Sie die Pakete xfce
und xfce-goodies
auf Ihrem Server:
- sudo apt install xfce4 xfce4-goodies -y
Sie werden aufgefordert, einen Anzeigemanager auszuwählen, der ein Programm ist, das grafische Anmeldemechanismen und Benutzersitzungen verwaltet. Sie können eine beliebige Option aus der Liste der verfügbaren Anzeigemanager auswählen, aber dieses Tutorial verwendet gdm3
.
Nach der Installation der Desktop-Umgebung installieren Sie nun xrdp auf Ihrem Server.
Schritt 2 — Installation von xrdp unter Ubuntu
xrdp ist eine Open-Source-Implementierung des RDP-Servers, die RDP-Verbindungen für Linux-basierte Server ermöglicht. In diesem Schritt installieren Sie xrdp auf Ihrem Ubuntu-Server.
Um xrdp zu installieren, führen Sie den folgenden Befehl im Terminal aus:
- sudo apt install xrdp -y
Nach der Installation von xrdp überprüfen Sie den Status von xrdp mit systemctl
:
- sudo systemctl status xrdp
Dieser Befehl zeigt den Status als active (running)
an:
Output● xrdp.service - xrdp daemon
Loaded: loaded (/lib/systemd/system/xrdp.service; enabled; vendor preset: enabled)
Active: **active (running)** since Sun 2022-08-07 13:00:44 UTC; 26s ago
Docs: man:xrdp(8)
man:xrdp.ini(5)
Main PID: 17904 (xrdp)
Tasks: 1 (limit: 1131)
Memory: 1016.0K
CGroup: /system.slice/xrdp.service
└─17904 /usr/sbin/xrdp
Wenn der Status von xrdp nicht running
ist, müssen Sie möglicherweise den Dienst manuell starten mit diesem Befehl:
- sudo systemctl start xrdp
Nach Ausführung des obigen Befehls überprüfen Sie den Status erneut, um sicherzustellen, dass xrdp im Zustand running
ist.
Sie haben jetzt xrdp auf Ihrem Server installiert. Als nächstes werden Sie die Konfiguration von xrdp überprüfen, um Verbindungen von entfernten Clients zu akzeptieren.
Schritt 3 — Konfiguration von xrdp und Aktualisierung Ihrer Firewall
In diesem Schritt überprüfen Sie die Standardkonfiguration von xrdp, die unter /etc/xrdp/xrdp.ini
gespeichert ist, und fügen eine Konfiguration für eine RDP-Verbindung hinzu. Sie werden auch die Firewall-Einstellungen aktualisieren.
xrdp.ini
ist die Standardkonfigurationsdatei, um RDP-Verbindungen zum xrdp-Server einzurichten. Die Konfigurationsdatei kann geändert und angepasst werden, um den Anforderungen der RDP-Verbindung gerecht zu werden.
Öffnen Sie die Datei im Texteditor nano
oder einem Editor Ihrer Wahl:
- sudo nano /etc/xrdp/xrdp.ini
Die Konfigurationsdatei enthält verschiedene Abschnitte:
- Globals definiert einige globale Konfigurationseinstellungen für xrdp.
- Logging definiert Parameter des Protokollierungssystems für Protokolle.
- Kanäle definiert mehrere Kanalparameter, die von RDP unterstützt werden.
- Sitzungstypen definiert mehrere von xrdp unterstützte Sitzungstypen. Jeder Sitzungstyp wird als separater Abschnitt unter seinem Sitzungstypnamen in eckigen Klammern definiert, z.B.
[Xorg]
und[XVnc]
. Es gibt keine Überschrift[Sitzungstypen]
in der Datei; stattdessen wird sie als Kommentar geschrieben.
In der Konfigurationsdatei navigieren Sie zum Abschnitt Sitzungstypen
. Sie finden mehrere unterstützte Sitzungstypen und ihre Parameter aufgelistet:
Output...
;
; Session types
;
; Some session types such as Xorg, X11rdp, and Xvnc start a display server.
; Startup command-line parameters for the display server are configured
; in sesman.ini. See and configure also sesman.ini.
[Xorg]
name=Xorg
lib=libxup.so
username=ask
password=ask
ip=127.0.0.1
port=-1
code=20
[Xvnc]
name=Xvnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1
#xserverbpp=24
#delay_ms=2000
[vnc-any]
...
[neutrinordp-any]
...
...
Standardmäßig sind die Parameter Benutzername
und Passwort
auf ask
eingestellt, was bedeutet, dass der Benutzer aufgefordert wird, Benutzername und Passwort einzugeben, um eine Verbindung über RDP herzustellen. Parameter wie Name
, Benutzername
und Passwort
können bei Bedarf geändert werden. Für die erste RDP-Verbindung zum Server genügt die Standardkonfiguration.
Speichern Sie die Datei und schließen Sie sie, wenn Sie fertig sind.
Wechseln Sie nun in das Benutzerverzeichnis, falls Sie dort noch nicht sind:
- cd ~
Als nächstes erstellen Sie eine .xsession
-Datei unter /home/sammy
und fügen xfce4-session
als Sitzungsmanager hinzu, der beim Anmelden verwendet werden soll:
- echo "xfce4-session" | tee .xsession
tee
schreibt den ausgegebenen String "xfce4-session"
in die Datei .xsession
. Die obige Konfiguration stellt sicher, dass xfce4-Sitzung
als Sitzungsmanager bei grafischer Anmeldungsanforderung verwendet wird. Durch die Installation von xfce
als Ihre Desktop-Umgebung dient xfce4-Sitzung
als Sitzungsmanager. Wenn Sie diese Informationen nicht in der Datei .xsession
einschließen, wird kein Sitzungsmanager ausgewählt, und die RDP-Sitzung kann keine Verbindung zur grafischen Anzeige herstellen.
Starten Sie den xrdp-Server neu:
- sudo systemctl restart xrdp
Als nächstes konfigurieren Sie Ihre Firewall so, dass Remoteverbindungen von Ihrer öffentlichen IP-Adresse über Port 3389
zugelassen sind. Eine RDP-Verbindung läuft auf TCP/IP-Port 3389
. Um auf den Remote-Server über RDP zuzugreifen, müssen Sie Port 3389
in Ihrer Firewall zulassen.
Suchen Sie zuerst die öffentliche IP-Adresse Ihres lokalen Computers:
- curl ifconfig.me
Auf Windows verwenden Sie die Windows-Befehlszeile, um diesen Befehl auszuführen.
curl
sendet eine Anfrage an ifconfig.me
, die Ihre öffentliche IP als Ausgabe zurückgibt:
Output...
your_local_ip
Als nächstes erlauben Sie den Zugriff auf den RDP-Port 3389
auf Ihrem Remote-Server, wobei Sie Ihre_lokale_IP
durch die Ausgabe des letzten Befehls ersetzen:
- sudo ufw allow from your_local_ip/32 to any port 3389
Überprüfen Sie den Status Ihrer UFW
-Firewall:
- sudo ufw status
Die Ausgabe sollte wie folgt aussehen:
OutputStatus: Active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
3389 ALLOW your_local_ip
OpenSSH (v6) ALLOW Anywhere (v6)
...
Sie haben jetzt den Port 3389
aktiviert, um Verbindungen von Ihrer öffentlichen IP anzunehmen. Als nächstes werden Sie die RDP-Verbindung von Ihrem lokalen Computer zum Remote-Server testen.
Schritt 4 — Testen der RDP-Verbindung
In diesem Schritt testen Sie die RDP-Verbindung von Ihrem lokalen Computer aus. Die folgenden Abschnitte enthalten Aktionen zum Testen der Verbindung auf Windows-, macOS- und Linux-Maschinen.
Testen der RDP-Verbindung unter Windows
Um die Verbindung mithilfe des Remote Desktop Connection-Clients unter Windows zu testen, starten Sie zunächst die Remote Desktop Connection-App.
Geben Sie die öffentliche IP Ihres Remote-Servers und den Benutzernamen in die ausfüllbaren Textfelder für Computer und Benutzername ein. Möglicherweise müssen Sie die nach-unten-Taste für Optionen anzeigen drücken, um den Benutzernamen einzugeben:
Drücken Sie die Verbinden-Taste. Wenn Sie eine Warnung erhalten, dass die Remotedesktopverbindung keine Verbindung zum Remote-Computer herstellen kann
, überprüfen Sie, ob Sie die Remotedesktopoption in Ihren Systemeinstellungen aktiviert haben.
Drücken Sie Ja, wenn Sie den Identitätsprüfungspopup erhalten:
Dann geben Sie den Benutzernamen Ihres Remote-Servers (sammy
) und das Passwort ein, das Sie für den Benutzer sammy
während der anfänglichen Servereinrichtung erstellt haben. Drücken Sie OK.
Nachdem Sie sich angemeldet haben, sollten Sie Zugriff auf Ihre Ubuntu-Desktop-Umgebung haben:
Mit RDP haben Sie erfolgreich eine Verbindung zu Ihrem Remote-Ubuntu-Server von Ihrem lokalen Rechner hergestellt. Sie können es mit der Schaltfläche „Beenden“ schließen, wenn Sie Ihren grafischen Desktop nicht mehr verwenden möchten.
Testen der RDP-Verbindung unter macOS
Um die Verbindung mit dem Remote-Desktop-Verbindungsclient unter macOS zu testen, starten Sie zunächst die Microsoft Remote Desktop-Verbindungs-App.
Drücken Sie PC hinzufügen, geben Sie dann die öffentliche IP Ihres Remote-Servers in das ausfüllbare Feld ein:
Sie können Einen Benutzeraccount hinzufügen, wenn Sie die Verbindung einrichten:
Wenn Sie während der Einrichtung keinen Benutzer hinzufügen, werden Sie zur Eingabe Ihrer Benutzeranmeldeinformationen aufgefordert:
Drücken Sie Ja, um das Popup zur Identitätsprüfung zu umgehen:
Nachdem Sie sich angemeldet haben, können Sie auf Ihren Ubuntu-Remote-Desktop zugreifen. Sie können ihn mit der Schaltfläche „Beenden“ schließen, wenn Sie Ihren grafischen Desktop nicht mehr verwenden möchten.
Testen der RDP-Verbindung unter Linux
Sie benötigen einen RDP-Client, um die RDP-Verbindung auf einem lokalen Linux-Rechner zu testen. Installieren Sie zunächst den RDP-Client remmina
für Ubuntu:
- sudo apt install remmina
Wählen Sie y
, wenn Sie zur Bestätigung der Installation aufgefordert werden. Dieser Befehl installiert Remmina, einen Open-Source-Remote-Desktop-Client auf Ihrem Ubuntu-System mit apt
. Für andere Linux-Distributionen können Sie die Remmina-Dokumentation zur Installation überprüfen.
Nach der Installation starten Sie die Anwendung remmina
auf Ihrem lokalen Linux-Rechner und geben Sie die öffentliche IP Ihres Remote-Servers in das Eingabefeld ein. Drücken Sie Eingabe auf Ihrer Tastatur, um eine Verbindung zu Ihrem Remote-Desktop herzustellen.
Geben Sie dann den Benutzernamen Ihres Remote-Servers ein (für dieses Tutorial ist der Benutzername sammy
) und das Passwort ein, das Sie für den Benutzer während der ursprünglichen Servereinrichtung erstellt haben. Drücken Sie Ok.
Sie müssen möglicherweise Ihr Benutzerpasswort erneut eingeben, um den Remote-Desktop zu entsperren.
Nachdem Sie sich angemeldet haben, sollten Sie auf Ihre Ubuntu-Desktop-Umgebung zugreifen können.
Indem Sie RDP verwenden, haben Sie erfolgreich eine Verbindung zu Ihrem entfernten Ubuntu-Server von Ihrem lokalen Gerät hergestellt. Sie können es mit der Schaltfläche „Beenden“ schließen, wenn Sie die grafische Oberfläche verwendet haben.
Nachdem Sie sichergestellt haben, dass die Remoteverbindung funktioniert, können Sie diese Sequenz immer dann verwenden, wenn Sie die grafische Benutzeroberfläche für Ihren entfernten Linux-Server benötigen.
Abschluss
In diesem Artikel haben Sie xrdp konfiguriert, um eine Verbindung zu einer grafischen Benutzeroberfläche für Ihren entfernten Ubuntu-Server über eine RDP-Verbindung von einem lokalen Gerät aus herzustellen.
Jetzt können Sie versuchen, eine VNC-Verbindung für Ihren Linux-Server zu konfigurieren, indem Sie So installieren und konfigurieren Sie VNC unter Ubuntu 20.04 befolgen. VNC ist eine weitere Option für die Remoteverbindung zu einem Linux-Desktop.