Перейти к содержимому

Фаервол Windows: защита RDP

Разрешить RDP только со своих адресов, при необходимости сменить порт и не потерять доступ.

Уровень
Средний
Время чтения
2 мин чтения
Обновлено
Проверено на
Windows Server 2019, Windows Server 2022
Содержание
  1. Узнайте свой внешний IP
  2. Разрешите RDP только своим адресам
  3. Смена порта RDP
  4. Проверьте результат
  5. Частые ошибки

RDP, открытый на весь интернет, — одна из самых частых причин взлома Windows-серверов. Лучшая защита — разрешить подключение только с ваших IP-адресов. Смена порта сама по себе почти не защищает, но уменьшает шум от ботов в журналах.

Узнайте свой внешний IP

Откройте любой сервис определения IP или выполните на своём компьютере:

bash
$ curl -s https://ifconfig.me

Если у вашего провайдера адрес меняется, укажите диапазон подсети или подключайтесь через VPN с постоянным адресом, например собственный WireGuard.

Разрешите RDP только своим адресам

У встроенных правил удалённого рабочего стола постоянные системные имена — они одинаковы в любой локализации Windows. Посмотрите их:

powershell
Get-NetFirewallRule -Name "RemoteDesktop-UserMode-In-*" |  Format-Table Name, Enabled, Direction, Action

Ограничьте правила своими адресами. Несколько адресов перечисляются через запятую:

powershell
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

Проверьте, что фильтр применился:

powershell
Get-NetFirewallRule -Name "RemoteDesktop-UserMode-In-TCP" | Get-NetFirewallAddressFilter

Вернуть доступ со всех адресов можно тем же командлетом с параметром -RemoteAddress Any.

Смена порта RDP

Порядок важен: сначала откройте новый порт в фаерволе, затем поменяйте его в реестре и перезапустите службу. Выберите свободный порт, например 3390.

powershell
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 после перезапуска службы оборвётся. Подключайтесь уже с указанием порта:

powershell
mstsc /v:203.0.113.10:3390

Проверьте результат

powershell
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.

Дочитайте до конца — статья засчитается в обучении автоматически.

  • фаервол
  • брандмауэр
  • RDP
  • порт 3389
  • New-NetFirewallRule

Статья помогла?