15%

Economisește 15% la toate serviciile de găzduire

Testează-ți abilitățile și obține Reducere la orice plan de găzduire

Utilizați codul:

Skills
Începeți
12.12.2023

Cum să instalați și să configurați XRDP pe Ubuntu 22.04

XRDP este o implementare open-source a serverului Remote Desktop Protocol (RDP) al Microsoft pentru Linux. Permite oricărui client compatibil RDP — inclusiv Windows Remote Desktop Connection, Remmina și FreeRDP — să stabilească o sesiune desktop grafică completă pe o mașină Linux la distanță. Pe Ubuntu 22.04, XRDP acționează ca o punte între clientul RDP și o sesiune de afișare X11 sau Xorg subiacentă, oferind o experiență de desktop la distanță receptivă și criptată, fără a necesita VNC sau software proprietar.

Acest ghid acoperă instalarea completă, configurarea certificatelor SSL, întărirea firewall-ului, integrarea mediului desktop și procedura de conectare pentru XRDP pe Ubuntu 22.04 LTS — inclusiv cazurile limită și problemele post-instalare pe care majoritatea tutorialelor le omit.

Ce Este XRDP și Cum Funcționează

XRDP operează pe un model client-server. Daemonul xrdp ascultă pe portul TCP 3389 și gestionează handshake-ul RDP, negocierea sesiunii și criptarea transportului prin TLS. Intern, generează un manager de sesiuni xrdp-sesman care autentifică utilizatorii prin PAM (Pluggable Authentication Modules) și lansează o sesiune X11 printr-un backend configurabil — de obicei Xvfb (framebuffer virtual) sau o sesiune Xorg directă.

Componentele arhitecturale cheie sunt:

  • daemonul xrdp — gestionează negocierea protocolului RDP și terminarea TLS
  • xrdp-sesman — gestionează ciclul de viață al sesiunii utilizatorului și autentificarea PAM
  • backend X11 — furnizează framebuffer-ul grafic (Xvfb, Xorg sau X11rdp)
  • chansrv — gestionează partajarea clipboard-ului, redirecționarea audio și maparea unităților

Această arhitectură înseamnă că XRDP nu înlocuiește managerul de afișare — rulează alături de acesta, creând sesiuni grafice izolate pentru fiecare utilizator autentificat.

XRDP vs. Alternative: Comparație de Protocol și Funcționalități

FuncționalitateXRDP (RDP)x11vnc (VNC)NoMachine (NX)TeamViewer
ProtocolRDP (standard Microsoft)VNC/RFBProtocol NXProprietar
Client Windows nativDa (MSTSC integrat)Nu (necesită client)Nu (necesită client)Nu (necesită client)
Criptare TLSDa (nativă)Opțional (prin stunnel)DaDa
Suport multi-sesiuneDaNu (afișaj unic)DaDa
Partajare clipboardDaDaDaDa
Redirecționare audioDa (prin PulseAudio)LimitatăDaDa
Performanță pe WANBunăSlabăExcelentăBună
Open sourceDa (Apache 2.0)DaParțialNu
Port3389590040005938

Pentru echipele care utilizează deja infrastructură Windows, XRDP este alegerea cea mai eficientă din punct de vedere operațional, deoarece nu necesită niciun software client suplimentar pe mașinile Windows.

Cerințe Preliminare

Înainte de a continua, asigurați-vă că aveți următoarele:

  • Un server sau o instanță desktop Ubuntu 22.04 LTS funcțională
  • Un cont de utilizator cu privilegii sudo
  • Un mediu desktop instalat (GNOME, XFCE sau MATE — detalii mai jos)
  • Acces SSH la server pentru configurarea inițială
  • UFW sau iptables disponibil pentru gestionarea firewall-ului

Dacă rulați un VPS headless fără un mediu desktop pre-instalat, trebuie să instalați unul înainte ca XRDP să poată furniza o sesiune grafică. O instalare minimă XFCE este puternic recomandată pentru utilizarea desktopului la distanță datorită amprentei sale reduse de memorie.

Pasul 1 — Actualizarea Pachetelor de Sistem

Sincronizați întotdeauna indexul pachetelor și aplicați actualizările în așteptare înainte de a instala software nou. Aceasta previne conflictele de dependențe și asigură că primiți cea mai recentă versiune corectată a XRDP.

sudo apt update && sudo apt upgrade -y

Reporniți dacă a fost aplicată o actualizare de kernel:

sudo reboot

Pasul 2 — Instalarea unui Mediu Desktop (Doar pentru Servere Headless)

Dacă instanța dvs. Ubuntu 22.04 nu are GUI, instalați un mediu desktop ușor. XFCE4 este alegerea cea mai fiabilă pentru XRDP pe servere headless — sesiunile GNOME prin XRDP pe Ubuntu 22.04 au probleme cunoscute de randare legate de conflictele Wayland/GDM3.

sudo apt install xfce4 xfce4-goodies -y

Alternativ, pentru MATE:

sudo apt install ubuntu-mate-desktop -y

Notă critică pentru utilizatorii GNOME: Ubuntu 22.04 utilizează implicit o sesiune Wayland. XRDP nu suportă Wayland nativ. Dacă intenționați să utilizați GNOME, trebuie să forțați sesiunile Xorg prin editarea /etc/gdm3/custom.conf și decomentarea WaylandEnable=false. Chiar și în acest caz, GNOME prin XRDP pe 22.04 produce frecvent un ecran negru la autentificare — XFCE elimină complet această clasă de probleme.

Pasul 3 — Instalarea XRDP

Instalați XRDP din depozitele oficiale Ubuntu:

sudo apt install xrdp -y

Managerul de pachete va instala xrdp împreună cu dependența sa xorgxrdp, care furnizează backend-ul driverului de afișare bazat pe Xorg. Instalarea se finalizează de obicei în mai puțin de două minute pe un VPS cu cPanel standard sau pe un server bare-metal cu o conexiune la internet stabilă.

Pasul 4 — Activarea și Pornirea Serviciului XRDP

Activați XRDP pentru a porni automat la boot, apoi porniți-l imediat:

sudo systemctl enable xrdp
sudo systemctl start xrdp

Verificați că serviciul este activ și ascultă:

sudo systemctl status xrdp

Rezultatul așteptat include Active: active (running) și o linie care confirmă că procesul ascultă. Pentru a confirma explicit legarea portului:

sudo ss -tlnp | grep 3389

Ar trebui să vedeți un rezultat similar cu:

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

Dacă portul nu este legat, verificați /var/log/xrdp.log pentru erori de pornire înainte de a continua.

Pasul 5 — Configurarea Permisiunilor Certificatului SSL

În timpul instalării, XRDP creează un utilizator de sistem dedicat numit xrdp. Daemonul utilizează cheia certificatului la /etc/ssl/private/ssl-cert-snakeoil.key pentru criptarea sesiunii TLS. În mod implicit, acest fișier este deținut de grupul ssl-cert, iar utilizatorul xrdp nu aparține acestuia — cauzând eșecuri ale handshake-ului TLS sau revenirea la sesiuni necriptate.

Adăugați utilizatorul xrdp în grupul ssl-cert:

sudo usermod -a -G ssl-cert xrdp

Reporniți XRDP pentru a aplica modificarea apartenenței la grup:

sudo systemctl restart xrdp

Notă pentru producție: Certificatul ssl-cert-snakeoil este un certificat auto-semnat generat de pachetul ssl-cert. Pentru mediile de producție sau orice server expus la internet, înlocuiți-l cu un certificat valid de la o CA de încredere. Dacă serverul dvs. are un domeniu public, puteți utiliza un certificat de la furnizorul dvs. de Certificate SSL și configura XRDP să îl referențieze prin directivele certificate și key_file din /etc/xrdp/xrdp.ini.

Pentru a utiliza un certificat personalizat:

sudo nano /etc/xrdp/xrdp.ini

Localizați și actualizați aceste linii:

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

Pasul 6 — Configurarea Sesiunii Desktop pentru XRDP

XRDP citește un fișier de configurare a sesiunii per utilizator la ~/.xsession sau ~/.Xclients pentru a determina ce mediu desktop să lanseze. Fără acest fișier, multe configurații Ubuntu 22.04 produc un ecran gri sau negru după autentificare.

Pentru XFCE, creați fișierul de sesiune pentru utilizatorul dvs.:

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

Pentru MATE:

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

Dacă configurați acest lucru pentru mai mulți utilizatori pe un Server Dedicat, automatizați acest pas cu o buclă shell sau un instrument de gestionare a configurației precum Ansible.

Pasul 7 — Configurarea Firewall-ului

XRDP ascultă pe portul TCP 3389. Trebuie să permiteți explicit acest port prin UFW. Cu toate acestea, expunerea RDP direct la internet pe 0.0.0.0 reprezintă un risc semnificativ de securitate — RDP este unul dintre cele mai activ atacate prin forță brută servicii de pe internet.

Abordare recomandată: restricționați accesul la un interval specific de IP-uri sau la un subnet VPN.

Permiteți accesul doar dintr-un subnet de încredere specific:

sudo ufw allow from 192.168.1.0/24 to any port 3389

Dacă vă conectați de la o singură adresă IP cunoscută:

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

Dacă trebuie să permiteți acces mai larg temporar (nu este recomandat pentru producție):

sudo ufw allow 3389/tcp

Reîncărcați și verificați regulile firewall-ului:

sudo ufw reload
sudo ufw status verbose

Recomandări de întărire a securității:

  • Schimbați portul implicit: Editați /etc/xrdp/xrdp.ini și setați port=33890 (sau orice port non-standard), apoi actualizați corespunzător regula UFW. Aceasta reduce dramatic zgomotul de scanare automată.
  • Utilizați fail2ban: Instalați și configurați fail2ban cu jail-ul xrdp pentru a bloca IP-urile după tentative repetate de autentificare eșuate.
  • Tunel prin SSH: Pentru securitate maximă, legați XRDP doar la 127.0.0.1 și accesați-l printr-un tunel SSH. Aceasta elimină complet expunerea directă la internet.

Pentru a lega XRDP doar la localhost:

sudo nano /etc/xrdp/xrdp.ini

Setați:

address=127.0.0.1

Apoi conectați-vă prin tunel SSH de pe clientul dvs.:

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

Îndreptați clientul RDP către 127.0.0.1:3389.

Pasul 8 — Conectarea la Desktop-ul de la Distanță XRDP

Din Windows

  1. Apăsați Win + R, tastați mstsc și apăsați Enter pentru a deschide Conexiunea Desktop la Distanță.
  2. În câmpul Computer, introduceți adresa IP a serverului dvs. Ubuntu (ex., 203.0.113.45).
  3. Faceți clic pe Conectare.
  4. La ecranul de autentificare XRDP, selectați tipul de sesiune (de obicei Xvnc sau Xorg), introduceți numele de utilizator și parola Ubuntu și faceți clic pe OK.

Din Linux (Remmina)

  1. Deschideți Remmina și creați un nou profil de conexiune.
  2. Setați protocolul la RDP.
  3. Introduceți IP-ul serverului, numele de utilizator și parola.
  4. Setați adâncimea de culoare la True color (32 bpp) pentru cea mai bună calitate vizuală.
  5. Conectați-vă.

Din macOS

Utilizați Microsoft Remote Desktop din Mac App Store — suportă RDP nativ și funcționează perfect cu XRDP.

Depanarea Problemelor Comune XRDP pe Ubuntu 22.04

Ecran Negru După Autentificare

Aceasta este cea mai frecventă problemă pe Ubuntu 22.04. Cauze și soluții:

  • Fișier ~/.xsession lipsă: Creați-l conform Pasului 6.
  • Conflict de sesiune Wayland: Dezactivați Wayland în /etc/gdm3/custom.conf.
  • Fișier de blocare X vechi: Ștergeți fișierele /tmp/.X*-lock și reporniți XRDP.

Eșec de Autentificare în Ciuda Credențialelor Corecte

  • Verificați că PAM nu blochează procesul xrdp-sesman: verificați /var/log/xrdp-sesman.log.
  • Asigurați-vă că contul de utilizator nu este blocat: sudo passwd -S username.
  • Confirmați că utilizatorul nu este obligat să își schimbe parola la următoarea autentificare.

Performanță Slabă sau Latență Ridicată

  • Reduceți adâncimea de culoare în setările clientului RDP (16 biți în loc de 32 biți).
  • Activați RemoteFX sau codecul H.264 în /etc/xrdp/xrdp.ini dacă clientul dvs. îl suportă.
  • Comutați de la backend-ul Xvnc la Xorg în selectorul de sesiuni XRDP pentru performanță mai bună pe servere cu accelerare hardware.

Portul 3389 Nu Este Accesibil

  • Confirmați că XRDP rulează: sudo systemctl status xrdp
  • Confirmați că UFW nu blochează: sudo ufw status
  • Verificați grupurile de securitate ale furnizorului cloud sau ACL-urile de rețea — mulți furnizori de VPS au un strat suplimentar de firewall la nivel de hypervisor care este independent de UFW.

Opțiuni Avansate de Configurare

Activarea Partajării Clipboard-ului

Redirecționarea clipboard-ului între clientul RDP și desktop-ul de la distanță necesită serviciul de canal xrdp-chansrv. Acesta pornește automat cu sesiunea, dar dacă clipboard-ul nu funcționează, verificați că procesul rulează:

ps aux | grep xrdp-chansrv

Dacă nu rulează, verificați fișierele jurnal ~/.xrdp/ din directorul home al utilizatorului.

Activarea Redirecționării Audio

Instalați modulul PulseAudio RDP:

sudo apt install pulseaudio-module-xrdp -y

Deconectați-vă și reconectați-vă. Ieșirea audio de pe desktop-ul de la distanță va fi redirecționată către difuzoarele clientului local.

Sesiuni Simultane Multi-Utilizator

XRDP suportă mai multe sesiuni simultane din start. Fiecare utilizator autentificat primește o sesiune X11 izolată. Pentru a verifica sesiunile active:

sudo xrdp-seslist

Pentru mediile cu mulți utilizatori concurenți — cum ar fi stațiile de lucru pentru dezvoltatori sau mediile de instruire — un Server Dedicat oferă resursele CPU și RAM necesare pentru a susține mai multe sesiuni grafice fără contention.

Concluzii Cheie și Listă de Verificare pentru Decizie

Înainte de a implementa XRDP în producție, verificați fiecare dintre următoarele:

  • Mediu desktop instalat și ~/.xsession configurat per utilizator (XFCE recomandat)
  • Utilizatorul xrdp adăugat în grupul ssl-cert — omiterea acestui pas cauzează erori TLS
  • Wayland dezactivat dacă utilizați GNOME (/etc/gdm3/custom.conf)
  • Regulile firewall-ului restricționează portul 3389 doar la IP-uri de încredere — nu expuneți niciodată RDP la 0.0.0.0 pe un server public
  • Certificatul auto-semnat înlocuit cu un certificat valid emis de o CA pentru implementările în producție
  • fail2ban configurat cu un jail XRDP pentru a atenua atacurile prin forță brută
  • Tunel SSH luat în considerare ca alternativă la expunerea directă a portului pentru mediile cu securitate ridicată
  • Firewall-ul la nivel de hypervisor verificat — grupurile de securitate ale furnizorului cloud sunt independente de UFW
  • Fișierele jurnal monitorizate la /var/log/xrdp.log și /var/log/xrdp-sesman.log pentru erori de sesiune

Întrebări Frecvente

XRDP suportă Ubuntu 22.04 cu Wayland?

Nu. XRDP necesită o sesiune X11/Xorg. Ubuntu 22.04 utilizează implicit Wayland sub GNOME. Trebuie fie să dezactivați Wayland în /etc/gdm3/custom.conf, fie să utilizați un mediu desktop care folosește implicit Xorg, cum ar fi XFCE sau MATE.

Care este diferența dintre tipurile de sesiuni Xvnc și Xorg în XRDP?

Backend-ul Xvnc creează un framebuffer virtual folosind VNC intern, care este compatibil cu majoritatea configurațiilor, dar are un overhead CPU mai ridicat. Backend-ul Xorg utilizează driverul xorgxrdp pentru randare Xorg directă, oferind performanță mai bună și suport pentru accelerare hardware. Utilizați Xorg când este disponibil.

Pot mai mulți utilizatori să se conecteze la XRDP simultan?

Da. XRDP creează o sesiune X11 separată și izolată pentru fiecare utilizator autentificat. Sesiunile sunt independente și nu interferează una cu cealaltă, făcând XRDP potrivit pentru accesul de la distanță multi-utilizator pe un singur server.

Este sigur să expuneți portul XRDP 3389 direct la internet?

Nu. RDP este unul dintre cele mai intens vizate protocoale pentru atacuri prin forță brută și exploatare. Restricționați întotdeauna portul 3389 la adrese IP cunoscute prin reguli de firewall, utilizați fail2ban și luați în considerare tunelarea XRDP prin SSH pentru orice implementare expusă la internet.

Cum dezinstalez XRDP din Ubuntu 22.04?

Rulați sudo apt purge xrdp -y && sudo apt autoremove -y. Aceasta elimină pachetele XRDP și dependențele lor. De asemenea, ștergeți fișierele de configurare reziduale cu sudo rm -rf /etc/xrdp și eliminați regula UFW cu sudo ufw delete allow 3389/tcp.

15%

Economisește 15% la toate serviciile de găzduire

Testează-ți abilitățile și obține Reducere la orice plan de găzduire

Utilizați codul:

Skills
Începeți