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
09.10.2024

Utilizarea Protocolului Remote Desktop (RDP) pentru a vă conecta la serverul Windows

Remote Desktop Protocol (RDP) este un protocol de rețea proprietar Microsoft care permite accesul grafic complet și criptat la o mașină Windows de la distanță prin portul TCP 3389. Acesta transmite ieșirea afișajului de la server la client și intrările de la tastatură/mouse de la client înapoi la server, oferindu-vă efectiv o sesiune interactivă în timp real pe o mașină la care nu sunteți fizic prezent.

Pentru administratorii de servere, RDP este metoda principală de gestionare a unei instanțe Windows Server — indiferent dacă acel server este o mașină bare-metal într-un centru de date, un mediu de VPS Hosting, sau un Server Dedicat care rulează Windows Server 2019, 2022 sau versiuni ulterioare. Acest ghid acoperă fluxul de lucru complet: activarea RDP, securizarea acestuia împotriva vectorilor de atac din lumea reală, conectarea din Windows, macOS și Linux, și diagnosticarea erorilor care îi surprind pe administratori.

Cum funcționează RDP în profunzime

Înainte de a modifica o singură setare de configurare, înțelegerea arhitecturii protocolului aduce beneficii la depanare.

RDP funcționează prin TCP (și opțional UDP pentru redirecționarea multimedia) și utilizează TLS 1.2/1.3 pentru criptarea transportului în toate versiunile moderne de Windows Server. Stiva de sesiune constă din mai multe canale virtuale care transportă simultan tipuri distincte de date:

  • Canal grafic — actualizări de afișaj comprimate folosind accelerare RemoteFX sau GDI
  • Canal de intrare — evenimente de la tastatură și mouse
  • Canal clipboard — partajare bidirecțională a clipboard-ului
  • Canale de redirecționare unitate/imprimantă — maparea resurselor locale în sesiunea de la distanță
  • Canal audio — redirecționarea redării și înregistrării audio de la distanță

Fiecare canal este multiplexat printr-o singură conexiune TCP la portul 3389 în mod implicit. Componenta de pe server este TermService (Remote Desktop Services), iar listener-ul este gestionat de RDPWinST.sys la nivel de kernel. Când schimbați portul de ascultare, modificați o valoare de registry pe care acest driver o citește la pornirea serviciului.

Network Level Authentication (NLA) adaugă un strat de autentificare pre-sesiune folosind CredSSP (Credential Security Support Provider). Cu NLA activat, clientul trebuie să se autentifice cu credențiale valide înainte ca serverul să aloce o sesiune desktop completă, ceea ce reduce dramatic suprafața de atac pentru atacurile de tip denial-of-service și brute-force împotriva ecranului de autentificare.

Listă de verificare a cerințelor prealabile

Confirmați fiecare element de mai jos înainte de a încerca o conexiune:

  • O instanță Windows Server (2016, 2019 sau 2022) cu RDP activat
  • Adresa IPv4 publică sau un hostname rezolvabil pentru server
  • Un cont cu nivel de administrator valid pe server
  • Un client RDP instalat pe mașina locală
  • Portul 3389 (sau portul personalizat) deschis atât în firewall-ul OS, cât și în orice firewall de rețea upstream sau grup de securitate
  • Suport NLA pe partea clientului (activat implicit pe toate clienții RDP moderni pentru Windows, macOS și Linux)

Pasul 1: Activați RDP pe Windows Server

RDP este dezactivat implicit pe instalările noi de Windows Server. Există două metode fiabile pentru a-l activa.

Metoda A: GUI (Proprietăți sistem)

  1. Deschideți Server Manager sau apăsați Win + R, tastați sysdm.cpl și apăsați Enter.
  2. Navigați la fila Remote.
  3. Sub Remote Desktop, selectați Allow remote connections to this computer.
  4. Asigurați-vă că Allow connections only from computers running Remote Desktop with Network Level Authentication este bifat.
  5. Faceți clic pe OK.

Metoda B: PowerShell (Preferată pentru automatizare)

Pentru implementări headless sau scriptate, PowerShell este mai rapid și scriptabil:

# Enable RDP
Set-ItemProperty -Path 'HKLM:SystemCurrentControlSetControlTerminal Server' `
    -Name "fDenyTSConnections" -Value 0

# Enable NLA
Set-ItemProperty -Path 'HKLM:SystemCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp' `
    -Name "UserAuthentication" -Value 1

# Allow RDP through Windows Firewall
Enable-NetFirewallRule -DisplayGroup "Remote Desktop"

# Confirm the service is running
Set-Service -Name TermService -StartupType Automatic
Start-Service TermService

Verificarea regulii de firewall

Grupul de reguli de firewall integrat „Remote Desktop” acoperă regulile de intrare necesare. Verificați cu:

Get-NetFirewallRule -DisplayGroup "Remote Desktop" | Select-Object DisplayName, Enabled, Direction

Dacă vă aflați în spatele unui grup de securitate al unui furnizor cloud (comun pe VPS cu cPanel sau medii VPS gestionate), trebuie să deschideți și portul 3389 în panoul de firewall extern al furnizorului — firewall-ul OS singur nu este suficient.

Pasul 2: Localizați adresa IP publică a serverului

Din consola serverului

Deschideți un Command Prompt cu privilegii ridicate și rulați:

ipconfig /all

Căutați IPv4 Address sub adaptorul de rețea activ. Pe un server cu mai multe NIC-uri (comun pe hardware dedicat), identificați adaptorul conectat la rețeaua publică prin referință încrucișată cu gateway-ul implicit.

Pentru o ieșire mai curată, utilizați PowerShell:

Get-NetIPAddress -AddressFamily IPv4 | Where-Object { $_.IPAddress -notlike "127.*" } |
    Select-Object InterfaceAlias, IPAddress

Din panoul de control al găzduirii

Dacă ați provizionat serverul printr-un furnizor de găzduire, IP-ul public este listat în tabloul de bord al panoului de control. Pentru Serverele Dedicate AlexHost, IP-ul este afișat imediat după provizionare în zona clientului.

Caz limită important: Dacă serverul dvs. se află în spatele NAT (de ex., un cloud privat sau un hypervisor cu rețele interne), IP-ul afișat de ipconfig va fi o adresă privată RFC 1918. Va trebui să vă conectați la IP-ul public al gateway-ului NAT și să configurați redirecționarea portului către IP-ul privat al serverului pe portul 3389.

Pasul 3: Conectați-vă la server prin RDP

Din Windows

Clientul integrat este mstsc.exe (Microsoft Terminal Services Client). Lansați-l din Run (Win + R) sau din meniul Start:

mstsc /v:YOUR_SERVER_IP:3389

Pentru o sesiune pe ecran complet cu redirecționarea unității dezactivată (o setare implicită orientată spre securitate):

mstsc /v:YOUR_SERVER_IP /f /nodrives

În GUI:

  1. Introduceți IP-ul serverului în câmpul Computer.
  2. Faceți clic pe Show Options pentru a pre-completa numele de utilizator, ceea ce evită solicitarea suplimentară de credențiale.
  3. Sub fila Experience, selectați viteza de conexiune corespunzătoare pentru a optimiza randarea.
  4. Faceți clic pe Connect, acceptați avertismentul de certificat la prima conexiune (verificați amprenta certificatului dacă securitatea este critică) și introduceți parola.

Din macOS

Aplicația oficială Microsoft Remote Desktop a Microsoft (disponibilă gratuit în Mac App Store) este clientul recomandat.

  1. Deschideți aplicația și faceți clic pe butonul +, apoi pe Add PC.
  2. Introduceți IP-ul serverului în PC Name.
  3. Sub User Account, faceți clic pe Add User Account și introduceți credențialele.
  4. Opțional, configurați setările Display și redirecționarea Devices & Audio.
  5. Faceți dublu clic pe conexiunea salvată pentru a iniția sesiunea.

Din Linux

Există două opțiuni mature pe Linux:

Remmina (bazat pe GTK, recomandat pentru medii desktop):

sudo apt install remmina remmina-plugin-rdp   # Debian/Ubuntu
sudo dnf install remmina remmina-plugin-rdp   # RHEL/Fedora

Lansați Remmina, creați o conexiune nouă, selectați RDP ca protocol, introduceți IP-ul serverului, credențialele și conectați-vă.

FreeRDP (linie de comandă, ideal pentru scriptare sau clienți headless):

sudo apt install freerdp2-x11
xfreerdp /v:YOUR_SERVER_IP /u:Administrator /p:'YourPassword' /cert:ignore /dynamic-resolution

Flag-ul /cert:ignore suprimă avertismentul de certificat — acceptabil într-un mediu controlat, dar ar trebui înlocuit cu fixarea corespunzătoare a certificatelor în producție.

Comparație clienți RDP

FuncționalitateWindows (mstsc)macOS (MS RD App)Linux (FreeRDP)Linux (Remmina)
Suport NLADaDaDaDa
Redirecționare unitateDaDaDaDa
Partajare clipboardDaDaDaDa
Redirecționare audioDaDaDa (plugin)Da (plugin)
Multi-MonitorDaDaDa (`/multimon`)Limitat
RemoteFX / GPUDaParțialDaParțial
Autentificare Smart CardDaNuDaNu
Flag-uri linie de comandăDaNuDa (complet)Nu
CostGratuit (integrat)GratuitGratuit (open source)Gratuit (open source)

Pasul 4: Întărirea RDP împotriva amenințărilor din lumea reală

RDP este unul dintre cele mai vizate servicii de pe internet. Shodan indexează în mod constant milioane de endpoint-uri RDP expuse, iar campaniile automate de brute-force rulează 24/7. Următoarele măsuri nu sunt opționale pentru niciun server de producție.

Schimbați portul de ascultare implicit

Schimbarea de la 3389 la un port non-standard elimină marea majoritate a scanerelor automate. Editați registry-ul:

$newPort = 54321  # Replace with your chosen port
Set-ItemProperty -Path 'HKLM:SystemCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp' `
    -Name "PortNumber" -Value $newPort -Type DWord

# Update firewall rule
New-NetFirewallRule -DisplayName "RDP Custom Port" -Direction Inbound `
    -Protocol TCP -LocalPort $newPort -Action Allow

# Disable the default rule
Disable-NetFirewallRule -DisplayName "Remote Desktop - User Mode (TCP-In)"

Restart-Service TermService

Nu uitați să actualizați grupul de securitate cloud pentru a permite noul port și a bloca 3389.

Restricționați accesul după adresa IP

Dacă stația de lucru administrativă are un IP static, restricționați RDP doar la acel IP:

Set-NetFirewallRule -DisplayName "RDP Custom Port" `
    -RemoteAddress "YOUR_ADMIN_IP"

Aplicați politica de blocare a contului

Preveniți atacurile brute-force configurând un prag de blocare a contului. În Group Policy (gpedit.msc):

  • Prag de blocare a contului: 5 încercări invalide
  • Durată blocare cont: 30 de minute
  • Resetare contor blocare cont după: 15 minute

Sau prin PowerShell:

net accounts /lockoutthreshold:5 /lockoutduration:30 /lockoutwindow:15

Implementați un VPN sau tunel SSH ca gateway

Abordarea cea mai robustă este să nu expuneți RDP deloc pe internetul public. Plasați RDP în spatele unui VPN (WireGuard sau OpenVPN) sau al unui tunel SSH. Administratorii se conectează mai întâi la VPN, apoi prin RDP la IP-ul privat al serverului. Aceasta elimină complet suprafața de atac.

Activați Windows Defender Credential Guard

Pe Windows Server 2016 și versiunile ulterioare, Credential Guard izolează hash-urile de credențiale într-o enclavă de securitate bazată pe virtualizare, prevenind atacurile pass-the-hash care pot pivota dintr-o sesiune RDP compromisă.

Auditați și înregistrați sesiunile RDP

Activați auditarea prin Group Policy sub Computer Configuration > Windows Settings > Security Settings > Advanced Audit Policy Configuration > Logon/Logoff. Înregistrați atât evenimentele de succes, cât și cele de eșec. Redirecționați jurnalele către un SIEM sau cel puțin revizuiți periodic Event ID 4624 (autentificare reușită) și Event ID 4625 (autentificare eșuată) în Event Viewer.

Pasul 5: Depanarea erorilor comune de conexiune RDP

Conexiune refuzată (Cod eroare 0x204 / „Computerul de la distanță nu poate fi accesat”)

Aceasta este aproape întotdeauna o problemă de firewall sau rutare.

# Test from the client machine (replace with your server IP and port)
Test-NetConnection -ComputerName YOUR_SERVER_IP -Port 3389

Dacă TcpTestSucceeded returnează False, portul este blocat. Verificați:

  1. Firewall-ul OS de pe server (Get-NetFirewallRule -DisplayGroup "Remote Desktop")
  2. Grupul de securitate sau ACL al furnizorului cloud
  3. Orice firewall hardware intermediar între client și server

Eroare de autentificare („A apărut o eroare de autentificare. Funcția solicitată nu este acceptată.”)

Aceasta înseamnă de obicei că clientul nu acceptă versiunea Credential Security Support Provider (CredSSP) cerută de server, apărând adesea după o actualizare de securitate Windows (patch-ul CVE-2018-0886). Remediați pe server:

# Temporary workaround — update the client instead when possible
Set-ItemProperty -Path 'HKLM:SOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystemCredSSPParameters' `
    -Name "AllowEncryptionOracle" -Value 2 -Type DWord

Remediul permanent este actualizarea clientului RDP la o versiune cu patch care acceptă protocolul CredSSP actualizat.

„Sesiunea de la distanță a fost deconectată deoarece nu sunt disponibile servere de licențe Remote Desktop”

Aceasta apare când rolul Remote Desktop Session Host (RDSH) al serverului este instalat, dar nu este configurat niciun server RD Licensing. Pentru acces administrativ simplu (nu implementări RDSH multi-utilizator), eliminați rolul RDSH sau configurați o perioadă de grație de 120 de zile:

# Check licensing mode
(Get-WmiObject -Namespace root/CIMV2/TerminalServices -Class Win32_TerminalServiceSetting).LicensingType

O valoare de 2 înseamnă Per Device, 4 înseamnă Per User. Pentru acces exclusiv administrativ, valoarea ar trebui să fie 5 (neconfigurat / perioadă de grație).

Ecran negru după autentificare

Un ecran negru la conexiunea RDP indică de obicei una dintre trei cauze:

  • Crash Explorer.exe: Apăsați Ctrl + Alt + End pentru a deschide Task Manager, apoi rulați explorer.exe din File > Run New Task.
  • Conflict driver de afișaj: Dezactivați accelerarea hardware în sesiunea RDP prin Group Policy.
  • Problemă de redare GPU: Pe servere cu GPU-uri dedicate (relevant pentru sarcinile de lucru de GPU Hosting), asigurați-vă că adaptorul RemoteFX vGPU este configurat corect.

Sesiune RDP lentă sau cu lag

Optimizați performanța ajustând setările experienței de conexiune în mstsc:

mstsc /v:YOUR_SERVER_IP /f

În fila Experience, selectați LAN (10 Mbps or higher) și dezactivați Desktop background, Font smoothing și Desktop composition pentru o reactivitate maximă pe conexiuni cu latență ridicată.

RDP vs. protocoale alternative de acces de la distanță

CriteriuRDPSSH (cu X11/XRDP)VNCTeamViewer
ProtocolProprietar (Microsoft)Standard deschisStandard deschisProprietar
CriptareTLS 1.2/1.3AES-256 (ChaCha20)Opțional (tunel TLS)AES-256
AutentificareNLA / Kerberos / Smart CardPereche de chei / ParolăParolăBazat pe cont
PerformanțăRidicată (GDI comprimat)Ridicată (CLI), Scăzută (GUI)Scăzută-MedieMedie
Multi-SesiuneDa (RDSH)DaDaDa
Suport nativ WindowsIntegratNecesită OpenSSHNecesită clientNecesită instalare
Traversare firewallPort unic (3389)Port unic (22)Port unic (5900)Bazat pe relay
Caz de utilizare idealAdministrare server WindowsAdministrare Linux/UnixGUI cross-platformSuport/helpdesk

Pentru administrarea Windows Server, RDP rămâne alegerea superioară în ceea ce privește performanța, integrarea nativă și profunzimea funcționalităților. SSH este protocolul preferat pentru mediile de VPS Hosting bazate pe Linux.

Gestionarea mai multor sesiuni RDP și a credențialelor salvate

Salvarea fișierelor de conexiune RDP

mstsc acceptă fișiere de configurare .rdp, care sunt fișiere text simplu pe care le puteți gestiona cu controlul versiunilor:

full address:s:YOUR_SERVER_IP:3389
username:s:Administrator
prompt for credentials:i:1
audiomode:i:0
redirectdrives:i:0
redirectclipboard:i:1

Salvați ca server.rdp și faceți dublu clic pentru a lansa, sau invocați prin:

mstsc server.rdp

Credential Manager

Pe Windows, credențialele RDP salvate sunt stocate în Credential Manager (control keymgr.dll). Pentru scripturi automate sau pipeline-uri CI/CD care necesită acces RDP, utilizați utilitarul cmdkey:

cmdkey /generic:YOUR_SERVER_IP /user:Administrator /pass:YourPassword
mstsc /v:YOUR_SERVER_IP
cmdkey /delete:YOUR_SERVER_IP

Ștergeți credențialele imediat după utilizare pentru a evita expunerea persistentă a credențialelor.

Listă de verificare practică a punctelor cheie

Utilizați aceasta ca matrice de verificare pre-implementare și post-incident:

Configurare inițială

  • RDP activat prin fDenyTSConnections = 0 în registry
  • NLA aplicat (UserAuthentication = 1)
  • TermService setat la Automatic și în execuție
  • Regulă de firewall activă pentru portul corect

Rețea și control acces

  • Portul implicit 3389 schimbat cu un port non-standard
  • Grupul de securitate cloud actualizat pentru a reflecta noul port
  • Listă de permisiuni IP configurată în regula de firewall
  • RDP neexpus direct pe internet (gateway VPN preferat)

Autentificare și întărire

  • Politică de blocare a contului configurată (5 încercări / blocare 30 de minute)
  • Parolă puternică și unică pentru toate conturile cu acces RDP
  • Credential Guard activat pe Windows Server 2016+
  • Acces RDP limitat la grupul Administrators integrat sau un grup RDP dedicat

Monitorizare

  • Politică de audit activată pentru evenimentele Logon/Logoff
  • Alerte Event ID 4625 configurate pentru eșecuri repetate
  • Jurnale de sesiune revizuite periodic sau redirecționate către un SIEM

Partea clientului

  • Client RDP actualizat la cea mai recentă versiune
  • Fișierele .rdp stocate în siguranță și neîncărcate în repository-uri publice
  • Credențialele salvate în Credential Manager revizuite și curățate periodic

Întrebări frecvente

Ce port folosește RDP și poate fi schimbat?

RDP ascultă implicit pe portul TCP 3389. Îl puteți schimba modificând valoarea DWORD PortNumber de sub HKLM:SystemCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp și repornind serviciul TermService. Actualizați regulile de firewall corespunzător.

Ce este Network Level Authentication (NLA) și ar trebui să fie întotdeauna activat?

NLA solicită clientului să se autentifice prin CredSSP înainte ca serverul să creeze o sesiune desktop completă. Aceasta împiedică utilizatorii neautentificați să ajungă la ecranul de autentificare Windows, reducând semnificativ expunerea la atacuri de tip credential-stuffing și denial-of-service. Ar trebui să fie întotdeauna activat pe serverele de producție, cu excepția cazului în care aveți o cerință specifică de compatibilitate cu clienți legacy.

De ce se întrerupe conexiunea mea RDP după o perioadă de inactivitate?

Timeout-urile de sesiune sunt controlate de Group Policy sub Computer Configuration > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Session Time Limits. Politicile relevante sunt Set time limit for disconnected sessions și Set time limit for active but idle Remote Desktop Services sessions. Setați-le conform cerințelor operaționale în loc să le lăsați la valorile implicite.

Pot mai mulți utilizatori să se conecteze simultan la un Windows Server prin RDP?

O instalare standard Windows Server acceptă două sesiuni RDP administrative concurente. Pentru mai mulți utilizatori simultani, aveți nevoie de rolul Remote Desktop Session Host (RDSH) și de Remote Desktop Services Client Access Licenses (RDS CALs) valide. Fără licențiere corespunzătoare, serverul intră într-o perioadă de grație de 120 de zile înainte de a refuza conexiunile.

Este sigur să expuneți RDP direct pe internetul public?

Nu. Expunerea directă a RDP pe portul 3389 pe internet atrage atacuri automate de brute-force, campanii de livrare ransomware (RDP este principalul vector de acces inițial pentru ransomware) și exploatarea vulnerabilităților nepatchate. Plasați întotdeauna RDP în spatele unui VPN, restricționați accesul după IP, schimbați portul implicit și aplicați NLA și politici de blocare a contului ca bază minimă.

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