Как изменить стандартный RDP-порт на Windows сервере: безопасная последовательность, firewall и устранение ошибок

Как изменить стандартный RDP-порт на Windows сервере

RDP, или Remote Desktop Protocol, — один из самых распространённых способов удалённого администрирования Windows серверов. По умолчанию он использует порт 3389, и именно поэтому этот порт является одним из самых активно сканируемых в интернете. На практике это означает, что даже небольшой Windows сервер с публичным IP очень быстро начинает получать автоматические попытки входа, фоновое сканирование и постоянный шум в журналах. Изменение стандартного RDP-порта не является полноценной заменой безопасности, но это полезный дополнительный шаг, который уменьшает объём автоматических атак и делает удалённую администрацию более управляемой.

Чаще всего такая настройка применяется на VPS, где администратор сам управляет Windows Firewall, сетевыми правилами и политикой доступа. В более тяжёлых Windows средах этот же подход применяют и на выделенных серверах. Если инфраструктуре требуется нестандартная схема доступа, дополнительные сетевые ограничения или несколько Windows инстансов в одном проекте, это обычно решается через индивидуальные решения.

Сразу важно сказать прямо: смена порта не равна защите RDP. Если на сервере остаются слабые пароли, публично доступный администраторский аккаунт, нет ограничения по IP, не включена политика блокировки учётной записи и не ставятся обновления, то один новый порт не решит основные риски. Правильный подход — считать смену порта небольшим дополнительным шагом внутри более широкой схемы защиты, где есть сильные пароли, VPN или IP allowlist, обновления Windows и контроль журналов.

До начала изменений убедитесь, что у вас есть резервный способ доступа к серверу. В идеале это консоль в панели хостинга, KVM, Hyper-V или VMware console, либо другой независимый административный канал. Если единственный способ доступа — текущая RDP сессия, то ошибка в firewall или неверно указанный порт могут полностью оставить вас без подключения. Поэтому здесь важна не только сама настройка, но и правильная последовательность действий.

Значение RDP-порта хранится в реестре Windows. Само изменение несложное, но его нужно сделать аккуратно. Сначала выберите новый порт. Не используйте популярные сервисные порты вроде 80, 443, 25, 21 или порты, которые уже заняты другими приложениями на сервере. Практичнее выбрать нестандартный TCP-порт в более высоком диапазоне, например выше 10000, чтобы снизить риск конфликта и сделать настройку более очевидной для администраторов.

regedit

Откройте редактор реестра и перейдите по пути: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp. Там найдите параметр PortNumber. По умолчанию его значение равно 3389. Измените его, обязательно переключившись в режим Decimal, и введите новый порт, например 33901. Этот момент важен, потому что одна из самых частых ошибок — вводить желаемое значение в неправильном представлении и потом искать проблему не там, где она реально находится.

PowerShell:
Set-ItemProperty -Path 'HKLM:SystemCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp' -Name PortNumber -Value 33901

После изменения в реестре не нужно сразу закрывать старый 3389. Сначала создайте правило Windows Firewall для нового порта. Самая безопасная последовательность выглядит так: сначала разрешить новый порт, потом перезапустить службу или сам сервер, проверить доступ по новому порту, и только после этого отключать старый. Если перепутать порядок, можно очень легко заблокировать доступ самому себе.

PowerShell:
New-NetFirewallRule -DisplayName "RDP Custom Port 33901" -Direction Inbound -Protocol TCP -LocalPort 33901 -Action Allow

Если в вашей инфраструктуре используется ещё и внешний firewall, security group, ACL на маршрутизаторе или фильтрация на стороне провайдера, новый порт нужно открыть и там. Это один из самых частых источников путаницы: внутри Windows всё настроено правильно, но извне порт всё равно не доступен, потому что его блокирует другой сетевой уровень. Поэтому всегда думайте не только о Windows, но и о полном пути трафика от клиента до сервера.

После изменения порта служба должна перечитать новую конфигурацию. Во многих случаях самый надёжный вариант — выполнить контролируемую перезагрузку сервера в окно обслуживания. Иногда достаточно перезапуска службы Remote Desktop Services, но в продакшене полный restart часто даёт более чистый и предсказуемый результат, особенно если на сервере уже были другие изменения в политике доступа.

PowerShell:
Restart-Service -Name TermService -Force

Когда сервер перезагружен или служба перезапущена, не закрывайте текущую RDP сессию сразу. Откройте второе окно подключения и подключитесь в формате IP:порт или имя_сервера:порт, например 203.0.113.10:33901. Только если второе подключение успешно установлено, можно считать, что миграция на новый порт действительно завершена без риска потери доступа.

После успешной проверки можно закрыть старый 3389. Это можно сделать, отключив стандартное правило Windows Firewall или создав явное запрещающее правило, если такова ваша политика. Но делать это нужно только после теста. Слишком раннее закрытие старого порта — одна из самых типичных и неприятных ошибок в этой процедуре.

PowerShell:
Disable-NetFirewallRule -DisplayName "Remote Desktop - User Mode (TCP-In)"

На этом этапе полезно усилить и общую безопасность RDP. Если вы знаете IP-адреса, с которых подключаются администраторы, ограничьте доступ только ими. Если это возможно, вынесите RDP за VPN, чтобы сервис вообще не был открыт всему интернету. Также желательно переименовать стандартную учётную запись администратора, включить блокировку учётной записи после нескольких неудачных попыток и убедиться, что Network Level Authentication включена.

Диагностика после изменения должна быть системной. Если новое подключение не работает, сначала проверьте четыре вещи: значение в реестре введено в Decimal, правило Windows Firewall активно, внешний firewall тоже пропускает новый порт, а клиент подключается именно к правильному порту. На практике большинство проблем после смены RDP-порта связано не с самой идеей, а с ошибками последовательности и пропущенными правилами фильтрации.

PowerShell:
Get-NetTCPConnection -LocalPort 33901
Test-NetConnection -ComputerName 127.0.0.1 -Port 33901

Полезно посмотреть и логи. Event Viewer покажет, корректно ли стартовала служба, а firewall и security logs помогут понять, продолжаются ли попытки на старый 3389 или реальный административный доступ уже идёт только через новый порт. С точки зрения администрирования это один из практических плюсов всей процедуры: меньше фонового шума на стандартном порту и более чистая картина в журналах.

Проверка и рекомендуемая практика после изменения

После успешной смены порта выполните короткий контрольный список: зафиксируйте новый порт в документации, проверьте подключение хотя бы из одной внешней сети, убедитесь, что старый 3389 больше не доступен, и сохраните резервный доступ через консоль. Это особенно важно в средах, где сервер обслуживают несколько администраторов, потому что недокументированные изменения почти всегда превращаются в будущие инциденты.

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

Изменение порта RDP

В целях безопасности мы предлагаем изменить порт RDP по умолчанию для ваших серверов на другой, выбранный вами.

1. Запустите "Registry Editor"

2. Найдите следующий раздел реестра:

HKEY_LOCAL_MACHINE
 System
  CurrentControlSet
   Control
    TerminalServer
     WinStations
      RDP-Tcp
       PortNumber

3. Откройте "PortNumber" и в меню выберите "Decimal"

4. Введите новый номер порта и нажмите ОК

5. Закройте "Редактор реестра"

Теперь, когда мы изменили порт RDP по умолчанию, мы должны разрешить брандмауэру доступ к этому порту.

1. Откройте "Control panel" и откройте "Firewall"

2. Откройте "Advanced settings"

3. Откройте "Inbound rules" и выберите "New Rule…"

4. В меню выберите "Port"

5. Укажите тип порта "TCP" и в нижнем окне введите Ваш ранее указанный номер порта

6. Выберите "Allow the connection"

7. Выберите, когда применяется это правило

8. Введите имя для Вашего правила и желаемое описание (это все в основном дя Вас)

9. Нажмите "Finish"

10. Вы создали новое правило для своего "Firewall"

11. Перезагрузите сервер, чтобы применить изменения

Изменение вступает в силу только после перезапуска сервера. После перезапуска RDP доступен только через новый номер порта.