Смена порта RDP с 3389: что это чинит, а что нет

Перенос RDP с порта по умолчанию радикально снижает объём атак и почти ни от чего не защищает. Обе половины этой фразы стоит понять до того, как менять порт.

6 мин чтения

Честное резюме

Перенос RDP с 3389 срежет количество неудачных входов примерно на 90% за одну ночь. При этом он не является средством защиты, и отношение к нему как к защите — это то, как серверы взламывают у администраторов, считавших, что они закончили.

Оба утверждения верны, потому что отвечают на разные вопросы. Падение объёма реально, измеримо и полезно. Защита близка к нулю против любого, кто потратит тридцать секунд на то, чтобы посмотреть.

Стоит ли делать? Обычно да — как снижение шума, в дополнение к защите и никогда вместо неё.

Что это действительно останавливает

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

Переедете на 34519 — и вы полностью выпадаете из этой популяции. График обрывается, журнал безопасности перестаёт ротироваться каждые несколько часов, и найти в нём реальное событие снова становится возможно.

Последний пункт недооценивают. Журнал, который можно прочитать, стоит реальных денег во время инцидента, а при трёх тысячах отказов в сутки у вас его нет.

Что это не останавливает

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

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

Итог: против нецелевого бота смена порта работает. Против того, кто выбрал именно вас — конкурента, бывшего сотрудника, оператора шифровальщика, идущего по списку компаний отрасли, — она стоит ему нескольких минут. И она вообще ничего не делает со слабыми паролями, торчащим наружу SMB, непропатченным хостом или учётными данными, утёкшими где-то ещё.

Есть и активный минус: нестандартные порты ломают вещи. Корпоративные фаерволы, разрешающие исходящий 3389, заблокируют исходящий 34519 — и вы узнаете об этом от пользователя, который не может работать.

Как сменить порт и не заблокировать себя

Порт хранится в реестре, и Windows Firewall должен узнать о нём до перезапуска службы — именно в таком порядке, иначе вы отключите себя от машины, доступной только по RDP.

Выберите порт выше 10000, которым ничего не занято, проверьте, что он свободен, откройте его и только потом меняйте:

powershell
$NewPort = 34519

# 1. Убедиться, что порт никем не занят.
Get-NetTCPConnection -LocalPort $NewPort -ErrorAction SilentlyContinue

# 2. Открыть его в фаерволе ДО того, как служба переедет.
New-NetFirewallRule -DisplayName "RDP-$NewPort" -Direction Inbound `
  -Protocol TCP -LocalPort $NewPort -Action Allow

# 3. Указать Terminal Services новый порт.
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' `
  -Name PortNumber -Value $NewPort

# 4. Перезапустить службу (текущая сессия оборвётся).
Restart-Service TermService -Force

После смены

Подключайтесь с явным указанием порта — mstsc /v:server:34519 — и обновите всё, где хранился старый: сохранённые RDP-файлы, менеджеры подключений, проверки мониторинга, конфигурации jump-хостов, документацию команды. Затем удалите или сузьте старое разрешающее правило для 3389, иначе вы ничего не выиграли.

Не удаляйте старое правило до того, как убедитесь, что новый порт работает снаружи вашей сети. Внутри LAN всё работает в любом случае — именно так люди и убеждают себя, что всё в порядке.

Чем это дополнять

Смена порта снижает шум. Кто-то всё равно должен обрабатывать долетающие попытки — а после смены порта долетают именно те, кто искал конкретно вас, то есть ровно те, что вас действительно волнуют.

Значит, всё те же три вещи: следить за неудачными входами, банить источники, перешедшие порог, и никогда не попадать под собственный бан. RDP Protector определяет реальный порт RDP по реестру и слушающим сокетам, а не считает, что это 3389, — поэтому перенесённый сервер защищён без единой настройки, и правила перестраиваются автоматически, если порт сменится снова.

Меняйте порт ради читаемого журнала. Держите защиту ради трафика, который найдёт вас всё равно.

FAQ

На какой порт переносить RDP?
На любой свободный выше 10000 — 34519, 47820, что угодно. Избегайте портов, которые занимают известные службы, потому что сканеры проверяют их отдельно, и избегайте 3390 — это первое, что пробуют после 3389. Перед сменой убедитесь через Get-NetTCPConnection, что порт никем не слушается.
Сломает ли смена порта RDP клиентов Remote Desktop?
Нет, но теперь каждый клиент должен указывать порт: server:34519 в поле компьютера или mstsc /v:server:34519. Сохранённые .rdp-файлы и менеджеры подключений хранят старый порт и будут падать, пока их не обновят. Корпоративные фаерволы, разрешающие исходящий 3389, могут заблокировать новый порт — это самая частая жалоба после смены.
Безопасно ли держать RDP на нестандартном порту?
Ровно настолько же безопасно, как на 3389, но с меньшим фоновым шумом. Порт не является средством контроля доступа: служба опознаётся по рукопожатию, а Shodan непрерывно индексирует RDP на нестандартных портах. Безопасность определяется тем, что обрабатывает попытки, а не тем, куда они приходят.
Что выбрать: сменить порт или блокировать атакующие IP?
Блокировка — это защита; смена порта — гигиена, которая делает журнал читаемым. Если делать что-то одно, блокируйте. Делать оба лучше, чем любое по отдельности: попыток долетает меньше, а те, что долетают, останавливаются до того, как Windows потратит на них хоть что-то.

Закройте попытки, которые всё равно вас найдут

Агент определяет фактический порт RDP и банит источники, которые до него дошли. Один сервер бесплатно навсегда, без карты.