15%

15% auf alle Hosting-Dienste sparen

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code:

Skills
Anfangen
12.12.2023

Wie man XRDP auf Ubuntu 22.04 installiert und konfiguriert

XRDP ist eine Open-Source-Implementierung von Microsofts Remote Desktop Protocol (RDP)-Server für Linux. Es ermöglicht jedem RDP-kompatiblen Client — einschließlich Windows Remote Desktop Connection, Remmina und FreeRDP — eine vollständige grafische Desktop-Sitzung auf einem entfernten Linux-Rechner aufzubauen. Auf Ubuntu 22.04 fungiert XRDP als Brücke zwischen dem RDP-Client und einer zugrunde liegenden X11- oder Xorg-Anzeigesitzung und bietet eine reaktionsschnelle, verschlüsselte Remote-Desktop-Erfahrung ohne VNC oder proprietäre Software.

Dieser Leitfaden behandelt die vollständige Installation, SSL-Zertifikatskonfiguration, Firewall-Härtung, Desktop-Umgebungsintegration und das Verbindungsverfahren für XRDP auf Ubuntu 22.04 LTS — einschließlich Sonderfälle und Probleme nach der Installation, die die meisten Anleitungen auslassen.

Was ist XRDP und wie funktioniert es

XRDP arbeitet nach einem Client-Server-Modell. Der xrdp-Daemon lauscht auf TCP-Port 3389 und verwaltet den RDP-Handshake, die Sitzungsaushandlung und die Transportverschlüsselung über TLS. Intern startet er einen xrdp-sesman-Sitzungsmanager, der Benutzer über PAM (Pluggable Authentication Modules) authentifiziert und eine X11-Sitzung über ein konfigurierbares Backend startet — typischerweise Xvfb (virtueller Framebuffer) oder eine direkte Xorg-Sitzung.

Die wichtigsten Architekturkomponenten sind:

  • xrdp-Daemon — verwaltet die RDP-Protokollaushandlung und TLS-Terminierung
  • xrdp-sesman — verwaltet den Lebenszyklus von Benutzersitzungen und PAM-Authentifizierung
  • X11-Backend — stellt den grafischen Framebuffer bereit (Xvfb, Xorg oder X11rdp)
  • chansrv — verwaltet Zwischenablage-Freigabe, Audio-Umleitung und Laufwerk-Zuordnung

Diese Architektur bedeutet, dass XRDP Ihren Display-Manager nicht ersetzt — es läuft parallel dazu und erstellt isolierte grafische Sitzungen pro authentifiziertem Benutzer.

XRDP vs. Alternativen: Protokoll- und Funktionsvergleich

FunktionXRDP (RDP)x11vnc (VNC)NoMachine (NX)TeamViewer
ProtokollRDP (Microsoft-Standard)VNC/RFBNX-ProtokollProprietär
Nativer Windows-ClientJa (integriertes MSTSC)Nein (Client erforderlich)Nein (Client erforderlich)Nein (Client erforderlich)
TLS-VerschlüsselungJa (nativ)Optional (über stunnel)JaJa
Multi-Sitzungs-UnterstützungJaNein (einzelne Anzeige)JaJa
Zwischenablage-FreigabeJaJaJaJa
Audio-UmleitungJa (über PulseAudio)EingeschränktJaJa
Leistung über WANGutSchlechtAusgezeichnetGut
Open SourceJa (Apache 2.0)JaTeilweiseNein
Port3389590040005938

Für Teams, die bereits Windows-Infrastruktur nutzen, ist XRDP die betrieblich effizienteste Wahl, da auf Windows-Rechnern keine zusätzliche Client-Software erforderlich ist.

Voraussetzungen

Stellen Sie vor dem Fortfahren Folgendes sicher:

  • Ein laufender Ubuntu 22.04 LTS-Server oder Desktop-Instanz
  • Ein Benutzerkonto mit sudo-Berechtigungen
  • Eine installierte Desktop-Umgebung (GNOME, XFCE oder MATE — Details unten)
  • SSH-Zugang zum Server für die Erstkonfiguration
  • UFW oder iptables für die Firewall-Verwaltung verfügbar

Wenn Sie einen headless VPS ohne vorinstallierte Desktop-Umgebung betreiben, müssen Sie eine installieren, bevor XRDP eine grafische Sitzung bereitstellen kann. Eine minimale XFCE-Installation wird für die Remote-Desktop-Nutzung aufgrund ihres geringen Speicherbedarfs dringend empfohlen.

Schritt 1 — Systempakete aktualisieren

Synchronisieren Sie immer Ihren Paketindex und wenden Sie ausstehende Upgrades an, bevor Sie neue Software installieren. Dies verhindert Abhängigkeitskonflikte und stellt sicher, dass Sie die neueste gepatchte Version von XRDP erhalten.

sudo apt update && sudo apt upgrade -y

Starten Sie neu, wenn ein Kernel-Update angewendet wurde:

sudo reboot

Schritt 2 — Desktop-Umgebung installieren (nur für Headless-Server)

Wenn Ihre Ubuntu 22.04-Instanz keine GUI hat, installieren Sie eine leichtgewichtige Desktop-Umgebung. XFCE4 ist die zuverlässigste Wahl für XRDP auf Headless-Servern — GNOME-Sitzungen über XRDP auf Ubuntu 22.04 haben bekannte Rendering-Probleme im Zusammenhang mit Wayland/GDM3-Konflikten.

sudo apt install xfce4 xfce4-goodies -y

Alternativ für MATE:

sudo apt install ubuntu-mate-desktop -y

Wichtiger Hinweis für GNOME-Benutzer: Ubuntu 22.04 verwendet standardmäßig eine Wayland-Sitzung. XRDP unterstützt Wayland nicht nativ. Wenn Sie GNOME verwenden möchten, müssen Sie Xorg-Sitzungen erzwingen, indem Sie /etc/gdm3/custom.conf bearbeiten und WaylandEnable=false auskommentieren. Selbst dann erzeugt GNOME über XRDP auf 22.04 häufig einen schwarzen Bildschirm beim Anmelden — XFCE eliminiert diese Art von Problem vollständig.

Schritt 3 — XRDP installieren

Installieren Sie XRDP aus den offiziellen Ubuntu-Repositories:

sudo apt install xrdp -y

Der Paketmanager installiert xrdp zusammen mit seiner Abhängigkeit xorgxrdp, die das Xorg-basierte Display-Treiber-Backend bereitstellt. Die Installation ist auf einem Standard-VPS mit cPanel oder Bare-Metal-Server mit stabiler Internetverbindung typischerweise in unter zwei Minuten abgeschlossen.

Schritt 4 — Den XRDP-Dienst aktivieren und starten

Aktivieren Sie XRDP für den automatischen Start beim Booten und starten Sie es sofort:

sudo systemctl enable xrdp
sudo systemctl start xrdp

Überprüfen Sie, ob der Dienst aktiv ist und lauscht:

sudo systemctl status xrdp

Die erwartete Ausgabe enthält Active: active (running) und eine Zeile, die bestätigt, dass der Prozess lauscht. Um die Port-Bindung explizit zu bestätigen:

sudo ss -tlnp | grep 3389

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

LISTEN  0  10  0.0.0.0:3389  0.0.0.0:*  users:(("xrdp",pid=XXXX,fd=12))

Wenn der Port nicht gebunden ist, überprüfen Sie /var/log/xrdp.log auf Startfehler, bevor Sie fortfahren.

Schritt 5 — SSL-Zertifikatsberechtigungen konfigurieren

Während der Installation erstellt XRDP einen dedizierten Systembenutzer namens xrdp. Der Daemon verwendet den Zertifikatsschlüssel unter /etc/ssl/private/ssl-cert-snakeoil.key für die TLS-Sitzungsverschlüsselung. Standardmäßig gehört diese Datei der Gruppe ssl-cert, und der Benutzer xrdp gehört ihr nicht an — was zu TLS-Handshake-Fehlern oder einem Fallback auf unverschlüsselte Sitzungen führt.

Fügen Sie den Benutzer xrdp zur Gruppe ssl-cert hinzu:

sudo usermod -a -G ssl-cert xrdp

Starten Sie XRDP neu, um die Gruppenänderung anzuwenden:

sudo systemctl restart xrdp

Produktionshinweis: Das ssl-cert-snakeoil-Zertifikat ist ein selbstsigniertes Zertifikat, das vom Paket ssl-cert generiert wird. Für Produktionsumgebungen oder Server, die dem Internet ausgesetzt sind, ersetzen Sie es durch ein gültiges Zertifikat einer vertrauenswürdigen CA. Wenn Ihr Server eine öffentliche Domain hat, können Sie ein Zertifikat Ihres SSL-Zertifikats-Anbieters verwenden und XRDP so konfigurieren, dass es über die Direktiven certificate und key_file in /etc/xrdp/xrdp.ini darauf verweist.

So verwenden Sie ein benutzerdefiniertes Zertifikat:

sudo nano /etc/xrdp/xrdp.ini

Suchen und aktualisieren Sie diese Zeilen:

certificate=/etc/ssl/certs/your-domain.crt
key_file=/etc/ssl/private/your-domain.key

Schritt 6 — Desktop-Sitzung für XRDP konfigurieren

XRDP liest eine benutzerspezifische Sitzungskonfigurationsdatei unter ~/.xsession oder ~/.Xclients, um zu bestimmen, welche Desktop-Umgebung gestartet werden soll. Ohne diese Datei erzeugen viele Ubuntu 22.04-Konfigurationen nach der Authentifizierung einen grauen oder schwarzen Bildschirm.

Erstellen Sie für XFCE die Sitzungsdatei für Ihren Benutzer:

echo "xfce4-session" > ~/.xsession
chmod +x ~/.xsession

Für MATE:

echo "mate-session" > ~/.xsession
chmod +x ~/.xsession

Wenn Sie dies für mehrere Benutzer auf einem Dedicated Server konfigurieren, automatisieren Sie diesen Schritt mit einer Shell-Schleife oder einem Konfigurationsverwaltungstool wie Ansible.

Schritt 7 — Firewall konfigurieren

XRDP lauscht auf TCP-Port 3389. Sie müssen diesen Port explizit durch UFW erlauben. Das direkte Exponieren von RDP ins Internet auf 0.0.0.0 ist jedoch ein erhebliches Sicherheitsrisiko — RDP ist einer der am häufigsten per Brute-Force angegriffenen Dienste im Internet.

Empfohlener Ansatz: Zugriff auf einen bestimmten IP-Bereich oder VPN-Subnetz beschränken.

Zugriff nur von einem bestimmten vertrauenswürdigen Subnetz erlauben:

sudo ufw allow from 192.168.1.0/24 to any port 3389

Wenn Sie von einer einzelnen bekannten IP-Adresse aus verbinden:

sudo ufw allow from YOUR.IP.ADDRESS to any port 3389

Wenn Sie vorübergehend einen breiteren Zugriff erlauben müssen (nicht für Produktionsumgebungen empfohlen):

sudo ufw allow 3389/tcp

Firewall-Regeln neu laden und überprüfen:

sudo ufw reload
sudo ufw status verbose

Empfehlungen zur Sicherheitshärtung:

  • Standard-Port ändern: Bearbeiten Sie /etc/xrdp/xrdp.ini und setzen Sie port=33890 (oder einen anderen nicht standardmäßigen Port), und aktualisieren Sie Ihre UFW-Regel entsprechend. Dies reduziert automatisiertes Scan-Rauschen erheblich.
  • fail2ban verwenden: Installieren und konfigurieren Sie fail2ban mit dem xrdp-Jail, um IP-Adressen nach wiederholten fehlgeschlagenen Authentifizierungsversuchen zu sperren.
  • Über SSH tunneln: Für maximale Sicherheit binden Sie XRDP nur an 127.0.0.1 und greifen Sie über einen SSH-Tunnel darauf zu. Dies eliminiert die direkte Internetexposition vollständig.

Um XRDP nur an localhost zu binden:

sudo nano /etc/xrdp/xrdp.ini

Setzen Sie:

address=127.0.0.1

Verbinden Sie sich dann über SSH-Tunnel von Ihrem Client aus:

ssh -L 3389:127.0.0.1:3389 user@your-server-ip -N

Richten Sie Ihren RDP-Client auf 127.0.0.1:3389.

Schritt 8 — Mit dem XRDP Remote Desktop verbinden

Von Windows aus

  1. Drücken Sie Win + R, geben Sie mstsc ein und drücken Sie Enter, um die Remotedesktopverbindung zu öffnen.
  2. Geben Sie im Feld Computer die IP-Adresse Ihres Ubuntu-Servers ein (z. B. 203.0.113.45).
  3. Klicken Sie auf Verbinden.
  4. Wählen Sie im XRDP-Anmeldebildschirm den Sitzungstyp (typischerweise Xvnc oder Xorg), geben Sie Ihren Ubuntu-Benutzernamen und Ihr Passwort ein und klicken Sie auf OK.

Von Linux aus (Remmina)

  1. Öffnen Sie Remmina und erstellen Sie ein neues Verbindungsprofil.
  2. Setzen Sie das Protokoll auf RDP.
  3. Geben Sie die Server-IP, Ihren Benutzernamen und Ihr Passwort ein.
  4. Setzen Sie die Farbtiefe auf True Color (32 bpp) für beste visuelle Qualität.
  5. Verbinden.

Von macOS aus

Verwenden Sie Microsoft Remote Desktop aus dem Mac App Store — es unterstützt RDP nativ und funktioniert nahtlos mit XRDP.

Fehlerbehebung bei häufigen XRDP-Problemen auf Ubuntu 22.04

Schwarzer Bildschirm nach der Anmeldung

Dies ist das häufigste Problem auf Ubuntu 22.04. Ursachen und Lösungen:

  • Fehlende ~/.xsession-Datei: Erstellen Sie sie wie in Schritt 6 gezeigt.
  • Wayland-Sitzungskonflikt: Deaktivieren Sie Wayland in /etc/gdm3/custom.conf.
  • Veraltete X-Sperrdatei: Löschen Sie /tmp/.X*-lock-Dateien und starten Sie XRDP neu.

Authentifizierungsfehler trotz korrekter Anmeldedaten

  • Überprüfen Sie, ob PAM den xrdp-sesman-Prozess nicht blockiert: prüfen Sie /var/log/xrdp-sesman.log.
  • Stellen Sie sicher, dass das Benutzerkonto nicht gesperrt ist: sudo passwd -S username.
  • Bestätigen Sie, dass der Benutzer nicht aufgefordert wird, sein Passwort bei der nächsten Anmeldung zu ändern.

Schlechte Leistung oder hohe Latenz

  • Reduzieren Sie die Farbtiefe in den RDP-Client-Einstellungen (16-Bit statt 32-Bit).
  • Aktivieren Sie RemoteFX oder H.264-Codec in /etc/xrdp/xrdp.ini, wenn Ihr Client dies unterstützt.
  • Wechseln Sie im XRDP-Sitzungsselektor vom Xvnc– zum Xorg-Backend für bessere Leistung auf Servern mit Hardware-Beschleunigung.

Port 3389 nicht erreichbar

  • Bestätigen Sie, dass XRDP läuft: sudo systemctl status xrdp
  • Bestätigen Sie, dass UFW nicht blockiert: sudo ufw status
  • Überprüfen Sie Sicherheitsgruppen oder Netzwerk-ACLs des Cloud-Anbieters — viele VPS-Anbieter haben eine zusätzliche Firewall-Schicht auf Hypervisor-Ebene, die unabhängig von UFW ist.

Erweiterte Konfigurationsoptionen

Zwischenablage-Freigabe aktivieren

Die Zwischenablage-Umleitung zwischen dem RDP-Client und dem Remote-Desktop erfordert den xrdp-chansrv-Kanaldienst. Er startet automatisch mit der Sitzung, aber wenn die Zwischenablage nicht funktioniert, überprüfen Sie, ob der Prozess läuft:

ps aux | grep xrdp-chansrv

Wenn er nicht läuft, suchen Sie nach Fehlern in den ~/.xrdp/-Protokolldateien im Home-Verzeichnis des Benutzers.

Audio-Umleitung aktivieren

Installieren Sie das PulseAudio RDP-Modul:

sudo apt install pulseaudio-module-xrdp -y

Melden Sie sich ab und verbinden Sie sich erneut. Die Audio-Ausgabe vom Remote-Desktop wird zu den lokalen Client-Lautsprechern umgeleitet.

Gleichzeitige Multi-Benutzer-Sitzungen

XRDP unterstützt standardmäßig mehrere gleichzeitige Sitzungen. Jeder authentifizierte Benutzer erhält eine isolierte X11-Sitzung. So überprüfen Sie aktive Sitzungen:

sudo xrdp-seslist

Für Umgebungen mit vielen gleichzeitigen Benutzern — wie Entwickler-Workstations oder Schulungsumgebungen — bietet ein Dedicated Server den notwendigen CPU- und RAM-Spielraum, um mehrere grafische Sitzungen ohne Engpässe aufrechtzuerhalten.

Wichtige Erkenntnisse und Entscheidungs-Checkliste

Überprüfen Sie vor der Bereitstellung von XRDP in der Produktion jeden der folgenden Punkte:

  • Desktop-Umgebung installiert und ~/.xsession pro Benutzer konfiguriert (XFCE empfohlen)
  • xrdp-Benutzer zur ssl-cert-Gruppe hinzugefügt — das Überspringen verursacht TLS-Fehler
  • Wayland deaktiviert bei Verwendung von GNOME (/etc/gdm3/custom.conf)
  • Firewall-Regeln beschränken Port 3389 auf vertrauenswürdige IPs — exponieren Sie RDP niemals auf 0.0.0.0 auf einem öffentlichen Server
  • Selbstsigniertes Zertifikat ersetzt durch ein gültiges CA-ausgestelltes Zertifikat für Produktionsbereitstellungen
  • fail2ban konfiguriert mit einem XRDP-Jail zur Abwehr von Brute-Force-Angriffen
  • SSH-Tunnel in Betracht gezogen als Alternative zur direkten Port-Exposition für hochsichere Umgebungen
  • Hypervisor-Ebene Firewall überprüft — Sicherheitsgruppen des Cloud-Anbieters sind unabhängig von UFW
  • Protokolldateien überwacht unter /var/log/xrdp.log und /var/log/xrdp-sesman.log auf Sitzungsfehler

Häufig gestellte Fragen

Unterstützt XRDP Ubuntu 22.04 mit Wayland?

Nein. XRDP erfordert eine X11/Xorg-Sitzung. Ubuntu 22.04 verwendet standardmäßig Wayland unter GNOME. Sie müssen entweder Wayland in /etc/gdm3/custom.conf deaktivieren oder eine Desktop-Umgebung verwenden, die standardmäßig Xorg verwendet, wie XFCE oder MATE.

Was ist der Unterschied zwischen den Xvnc- und Xorg-Sitzungstypen in XRDP?

Das Xvnc-Backend erstellt intern einen virtuellen Framebuffer mit VNC, der mit den meisten Konfigurationen kompatibel ist, aber einen höheren CPU-Overhead hat. Das Xorg-Backend verwendet den xorgxrdp-Treiber für direktes Xorg-Rendering und bietet bessere Leistung und Hardware-Beschleunigungsunterstützung. Verwenden Sie Xorg wenn verfügbar.

Können mehrere Benutzer gleichzeitig mit XRDP verbunden sein?

Ja. XRDP erstellt für jeden authentifizierten Benutzer eine separate, isolierte X11-Sitzung. Sitzungen sind unabhängig und beeinflussen sich nicht gegenseitig, was XRDP für den Multi-Benutzer-Fernzugriff auf einem einzelnen Server geeignet macht.

Ist es sicher, XRDP-Port 3389 direkt dem Internet auszusetzen?

Nein. RDP ist eines der am stärksten angegriffenen Protokolle für Brute-Force- und Exploit-Angriffe. Beschränken Sie Port 3389 immer auf bekannte IP-Adressen über Firewall-Regeln, verwenden Sie fail2ban und erwägen Sie das Tunneln von XRDP über SSH für jede internetfähige Bereitstellung.

Wie deinstalliere ich XRDP von Ubuntu 22.04?

Führen Sie sudo apt purge xrdp -y && sudo apt autoremove -y aus. Dies entfernt die XRDP-Pakete und ihre Abhängigkeiten. Löschen Sie auch verbleibende Konfigurationsdateien mit sudo rm -rf /etc/xrdp und entfernen Sie die UFW-Regel mit sudo ufw delete allow 3389/tcp.

15%

15% auf alle Hosting-Dienste sparen

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code:

Skills
Anfangen