RDP, открытый на весь интернет, — одна из самых частых причин взлома Windows-серверов. Лучшая защита — разрешить подключение только с ваших IP-адресов. Смена порта сама по себе почти не защищает, но уменьшает шум от ботов в журналах.
Узнайте свой внешний IP
Откройте любой сервис определения IP или выполните на своём компьютере:
$ curl -s https://ifconfig.meЕсли у вашего провайдера адрес меняется, укажите диапазон подсети или подключайтесь через VPN с постоянным адресом, например собственный WireGuard.
Разрешите RDP только своим адресам
У встроенных правил удалённого рабочего стола постоянные системные имена — они одинаковы в любой локализации Windows. Посмотрите их:
Get-NetFirewallRule -Name "RemoteDesktop-UserMode-In-*" | Format-Table Name, Enabled, Direction, ActionОграничьте правила своими адресами. Несколько адресов перечисляются через запятую:
Set-NetFirewallRule -Name "RemoteDesktop-UserMode-In-TCP" -RemoteAddress 198.51.100.7,192.0.2.0/24Set-NetFirewallRule -Name "RemoteDesktop-UserMode-In-UDP" -RemoteAddress 198.51.100.7,192.0.2.0/24Проверьте, что фильтр применился:
Get-NetFirewallRule -Name "RemoteDesktop-UserMode-In-TCP" | Get-NetFirewallAddressFilterВернуть доступ со всех адресов можно тем же командлетом с параметром -RemoteAddress Any.
Смена порта RDP
Порядок важен: сначала откройте новый порт в фаерволе, затем поменяйте его в реестре и перезапустите службу. Выберите свободный порт, например 3390.
New-NetFirewallRule -DisplayName "RDP 3390" -Direction Inbound -Protocol TCP -LocalPort 3390 -Action Allow -RemoteAddress 198.51.100.7Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name PortNumber -Value 3390Restart-Service TermService -ForceТекущий сеанс RDP после перезапуска службы оборвётся. Подключайтесь уже с указанием порта:
mstsc /v:203.0.113.10:3390Проверьте результат
Get-NetTCPConnection -State Listen | Where-Object LocalPort -in 3389,3390Служба должна слушать новый порт. Когда вход по нему работает, старое правило для 3389 можно выключить: Disable-NetFirewallRule -Name "RemoteDesktop-UserMode-In-TCP".
Частые ошибки
- Поменяли порт в реестре, но не открыли его в фаерволе — подключение не проходит. Исправляется из VNC-консоли.
- Указали домашний IP, а он сменился после перезагрузки роутера. Добавьте запасной адрес или подсеть.
- Выключили фаервол «на минутку» для проверки и забыли включить. Проверка: Get-NetFirewallProfile | Format-Table Name, Enabled.