Как изменить порт удаленного рабочего стола (порт RDP) с помощью PowerShell

Скрипты

Помните печально известную уязвимость BlueKeep? Он использовал порт 3389, отправив специально созданное сообщение, которое позволяло злоумышленникам удаленно выполнять любой код в скомпрометированной системе. Учитывая угрозу безопасности, часто рекомендуется отключать RDP, когда он не нужен; однако все еще существуют определенные системы, в которых вы просто не можете его отключить, например, серверы.

Альтернативным решением является изменение номера порта RDP с значения по умолчанию на что-то другое. Это, конечно, не сделает вашу систему Windows пуленепробиваемой, но, безусловно, поможет остановить несколько скриптовых детишек. Я имею в виду, в этом весь смысл безопасности через неизвестность.

В этом руководстве я изменю порт RDP в системе с именем TERMINAL под управлением Windows 10. Поскольку мы используем PowerShell, мы можем использовать удаленное управление PowerShell для выполнения всех команд из нашей собственной системы. Просто запустите консоль PowerShell с повышенными правами и используйте следующую команду, чтобы открыть интерактивный сеанс удаленного взаимодействия PS с удаленным компьютером, на котором вы хотите изменить порт RDP.

Если ваш текущий пользователь, вошедший в систему, является членом группы AD администраторов домена, вы можете пропустить параметр -Credential .

Открытие интерактивного сеанса удаленного взаимодействия PS на удаленном компьютере с помощью команды Enter PSSession

Открытие интерактивного сеанса удаленного взаимодействия PS на удаленном компьютере с помощью команды Enter PSSession

Вы также можете использовать командлет Invoke-Command для выполнения каждой команды, если вы не хотите открывать постоянный интерактивный сеанс на удаленном компьютере.

Определение текущего порта удаленного рабочего стола

Теперь, когда мы подключены к удаленному компьютеру (ТЕРМИНАЛУ, в нашем примере), вы можете использовать следующую команду, чтобы определить, какой номер порта RDP используется в данный момент:

Использование PowerShell для просмотра номера порта, используемого в настоящее время RDP

Использование PowerShell для просмотра номера порта, используемого в настоящее время RDP

Эта команда возвращает текущий номер порта, используемый службой RDP на вашем целевом компьютере. Вы можете видеть, что информация хранится в реестре Windows, и мы просто запросили конкретный раздел реестра для номера порта с помощью командлета Get-ItemProperty . Современные версии Windows (начиная с Server 2012 и Windows 8), как правило, используют протоколы TCP и UDP для RDP, что, по сути, означает, что по умолчанию служба сервера удаленных рабочих столов (TermService) прослушивает как TCP 3389, так и UDP 3389 в обычной системе Windows. Вы можете подтвердить это, запустивКоманды Get-NetTCPConnection и Get-NetUDPEndpoint, как показано на следующем снимке экрана:

Использование команд NetTCPConnection и Get NetUDPEndpoint для просмотра конечных точек TCP и UDP для RDP

Использование команд NetTCPConnection и Get NetUDPEndpoint для просмотра конечных точек TCP и UDP для RDP

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

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

Изменение порта RDP с помощью PowerShell

Изменение порта RDP с помощью PowerShell

Эта команда использует командлет Set-ItemProperty для изменения номера порта на временный порт (50102, в нашем примере). При изменении номера порта RDP с помощью этой команды конечные точки TCP и UDP будут изменены на один и тот же номер порта.

Вы можете использовать любой номер порта, но рекомендуется использовать от 1024 до 65535. Некоторым людям даже нравится использовать номер порта из предложенного диапазона IANA (49152-65535), поскольку он вряд ли будет конфликтовать с другими известными или настраиваемыми службами.

Добавление правил брандмауэра для пользовательских портов RDP

Теперь, когда номер порта RDP изменился, вам необходимо настроить брандмауэр защитника Windows, чтобы разрешить новый пользовательский порт RDP. Для добавления правил используйте следующие команды PowerShell:

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

Добавление правил брандмауэра защитника Windows для пользовательских номеров портов RDP с помощью PowerShell

Добавление правил брандмауэра защитника Windows для пользовательских номеров портов RDP с помощью PowerShell

Помните, что удаленный компьютер будет продолжать использовать старый (по умолчанию) номер порта, пока служба удаленных рабочих столов (TermService) не будет перезапущена на целевом компьютере. Чтобы перезапустить службу на целевом компьютере, используйте следующую команду:

Перезапуск службы удаленного рабочего стола на целевом компьютере с помощью PowerShell

Перезапуск службы удаленного рабочего стола на целевом компьютере с помощью PowerShell

После перезапуска службы удаленного рабочего стола целевой компьютер начнет прослушивать новый пользовательский номер порта RDP.

Проверка нового порта RDP

На этом этапе ваш удаленный компьютер настроен на использование пользовательского порта для удаленного рабочего стола. Если вы запустите следующую команду PowerShell на удаленном компьютере, она предоставит вам новые конечные точки:

Проверка новых конечных точек удаленного рабочего стола TCP и UDP на целевом компьютере с помощью PowerShell

Проверка новых конечных точек удаленного рабочего стола TCP и UDP на целевом компьютере с помощью PowerShell

Кроме того, вы можете использовать командлет Test-NetConnection на своем компьютере, как показано в следующей команде:

Использование командлета Test NetConnection для проверки подключения к целевому компьютеру через новый порт RDP

Использование командлета Test NetConnection для проверки подключения к целевому компьютеру через новый порт RDP

Значение True в выходных данных указывает, что ваш локальный компьютер смог успешно подключиться к удаленному компьютеру с указанным номером порта (50102, в нашем примере), что доказывает, что ваш новый пользовательский порт RDP теперь активен. Если вы повторите эту команду с номером порта RDP по умолчанию, соединение завершится ошибкой и вернет значение false, как показано на скриншоте.

Использование пользовательского порта удаленного рабочего стола

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

после настройки порта необходимо указать номер порта в формате ComputerName:PortNumber или IPAddress:PortNumber, как показано на скриншоте:

Указание пользовательского порта RDP с помощью приложения для подключения к удаленному рабочему столу

Указание пользовательского порта RDP с помощью приложения для подключения к удаленному рабочему столу

Заключение

Вы только что узнали, как изменить номер порта удаленного рабочего стола с помощью PowerShell. Как обсуждалось ранее, пользовательский порт RDP не обещает сделать систему Windows полностью безопасной, но он добавляет слой неизвестности для обеспечения определенной степени защиты. Всегда рекомендуется отключить удаленный рабочий стол на общедоступных хостах Windows. Если вам действительно нужно включить удаленный рабочий стол, настоятельно рекомендуется использовать VPN.

Добавить комментарий