За замовчуванням у всіх операційних системах Windows для підключення по протоколу RDP (Remote Desktop Protocol / Віддалений робочий стіл) використовує порт TCP 3389.

Якщо ваш комп’ютер підключений безпосередньо до інтернету (наприклад, VDS сервер), або ви налаштували на своєму прикордонному маршрутизаторі перенаправлення порту 3389 / RDP в локальну мережу на комп’ютер або сервер з Windows, ви можете змінити стандартний RDP порт 3389 на будь-який інший. Змінивши номер RDP порту для підключення, ви можете заховати ваш RDP сервер від сканерів портів, зменшите ймовірність експлуатації RDP вразливостей (остання критична уразливість в RDP BlueKeep описана в CVE-2019-0708), зменшите кількість спроб віддаленого підбору паролів по RDP (не забуває періодично аналізувати логи RDP підключень), SYN і інших типів атак (особливо при відключеному NLA).

Заміну стандартного RDP порту можна використовувати, коли за маршрутизатором з одним білим IP адресою знаходиться кілька Windows комп’ютерів, до яких потрібно надати зовнішній RDP доступ. На кожному комп’ютері ви можете налаштувати унікальний RDP порт і налаштувати перенаправлення портів на маршрутизаторі на локальні комп’ютери (в залежності від номера RDP порту сесія перенаправляється на один з внутрішніх ПК).

При виборі нестандартного номера порту для RDP зверніть увагу, що бажано не використовувати номери портів в діапазоні від 1 до 1023 (відомі порти) і динамічні порти з RPC діапазону (від 49152 до 65535).

Спробуємо змінити порт, на якому чекає підключення служба Remote Desktop на 1350. Для цього:

  1. Відкрийте редактор реєстру і перейдіть в гілку HKEY_LOCAL_MACHINE System CurrentControlSet Control Terminal Server WinStations RDP-Tcp;
  2. Знайдіть СЛОВО параметр реєстру з ім’ям Номер порту. У цьому параметрі вказано порт, на якому чекає підключення служба Remote Desktop;
  3. Змініть значення цього порту. Я змінив RDP порт на 1350 в десятковому значенні (Deciamal); PortNumber - змінити номер RDP порт в реєстрі
  4. Якщо на вашому комп’ютері включений Windows Firewall, ви повинні створити нове правило, яке дозволяє вхідне підключення на новий RDP порт (якщо ви перенастроювати віддалений сервер через RDP, не створивши правило в брандмауері, ви втратите доступ до сервера). Ви можете створити дозволяє входить правило для нового TCP / UDP порту RDP вручну з консолі ‘Брандмауер Захисника Windows’ (firewall.cpl) Або за допомогою PowerShell команд: New-NetFirewallRule -DisplayName "New RDP Port 1350" -Direction Inbound -LocalPort 1350 -Protocol TCP -Action allow І: New-NetFirewallRule -DisplayName "New RDP Port 1350" -Direction Inbound -LocalPort 1350 -Protocol UDP -Action allow New-NetFirewallRule правило для RDP підключення на новий порт
  5. Перезавантажте комп’ютер або запустіть службу віддалених робочих столів командою: net stop termservice & net start termservice перезапустити службу RDP termservice
  6. Тепер для підключення до даного Windows комп’ютера по RDP, в клієнті mstsc.exe потрібно вказувати порт RDP підключення через двокрапку наступним чином: Your_Computer_Name:1350 або по IP адресою 192.168.1.100:1350 або з командного рядка: mstsc.exe /v 192.168.1.100:1350 mstsc підключення до нестандартного номеру rdp порту
    Якщо для управління безліччю RDP підключень ви використовуєте менеджер RDP підключень RDCMan, заданий вами номер RDP порту для підключення можна вказати на вкладці “Connection Settings”.
  7. В результаті ви успішно підключіться до робочого столу віддаленого комп’ютера за новим номером RDP порту (за допомогою команди nenstat –na | Find “LIST” переконайтеся, що служба RDP тепер слухає на іншому порту). netstat - rdp на іншому порту
Увага: Якщо ви зміните номер RDP порту, можуть виникнути проблеми з роботою Remote Assistance та тіньових RDP підключень в Windows 10, так і shadowing в Windows Server.

Повний код PowerShell скрипт для зміни RDP порту, створення правила в брандмауері і перезапуску служби RDP на новому порту може виглядати так:

Write-host "Укажите номер нового RDP порта: " -ForegroundColor Yellow -NoNewline;$RDPPort = Read-Host
Set-ItemProperty -Path "HKLM:SYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-TCP" -Name PortNumber -Value $RDPPort
New-NetFirewallRule -DisplayName "New RDP Port $RDPPort" -Direction Inbound –LocalPort $RDPPort -Protocol TCP -Action Allow
New-NetFirewallRule -DisplayName "New RDP Port $RDPPort" -Direction Inbound –LocalPort $RDPPort -Protocol UDP -Action Allow
Restart-Service termservice -force
Write-host "Номер RDP порта изменен на $RDPPort " -ForegroundColor Magenta

Можна змінити номер RDP віддалено на декількох комп’ютерах в домені AD (певної OU) за допомогою Invoke-Command і Get-ADComputer:

Write-host "Укажите номер нового RDP порта: " -ForegroundColor Yellow -NoNewline;$RDPPort = Read-Host
$PCs = Get-ADComputer -Filter * -SearchBase "CN=DMZ,CN=Computers,DC=winitpro,DC=ru"
Foreach ($PC in $PCs) {
Invoke-Command -ComputerName $PC.Name -ScriptBlock {
param ($RDPPort)
Set-ItemProperty -Path "HKLM:SYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-TCP" -Name PortNumber -Value $RDPPort
New-NetFirewallRule -DisplayName "New RDP Port $RDPPort" -Direction Inbound –LocalPort $RDPPort -Protocol TCP -Action Allow
New-NetFirewallRule -DisplayName "New RDP Port $RDPPort" -Direction Inbound –LocalPort $RDPPort -Protocol TCP -Action Allow
Restart-Service termservice -force
}

Це інструкція по зміні стандартного RDP порту підійде для будь-якої версії Windows, починаючи з Windows XP (Windows Server 2003) і закінчуючи Windows 10 (Windows Server 2019).

Leave a Reply

Your email address will not be published. Required fields are marked *