Как сделать подключение по rdp. Решение проблемы динамического ip-адреса. Задание пароля для учетной записи пользователя

Добрый день уважаемые читатели и гости блога, сегодня у нас с вами вот такая задача: изменить входящий порт службы RDP (терминального сервера) со стандартного 3389 на какой-то другой. Напоминаю, что RDP служба это функционал операционных систем Windows, благодаря которому вы можете по сети открыть сессию на нужный вам компьютер или сервер по протоколу RDP, и иметь возможность за ним работать, так как будто вы сидите за ним локально.

Что такое RDP протокол

Прежде чем, что то изменять, хорошо бы понимать, что это и как это работает, я вам об этом не перестаю повторять. RDP или Remote Desktop Protocol это протокол удалённого рабочего стола в операционных системах Microsoft Windows, хотя его происхождение идет от компании PictureTel (Polycom). Microsoft просто его купила. Используется для удаленной работы сотрудника или пользователя с удаленным сервером. Чаще всего такие сервера несут роль сервер терминалов , на котором выделены специальные лицензии, либо на пользователе, либо на устройства, CAL. Тут задумка была такой, есть очень мощный сервер, то почему бы не использовать его ресурсы совместно, например под приложение 1С. Особенно это становится актуальным с появлением тонких клиентов.

Сам сервер терминалов мир увидел, аж в 1998 году в операционной системе Windows NT 4.0 Terminal Server, я если честно тогда и не знал, что такое есть, да и в России мы в то время все играли в денди или сегу. Клиенты RDP соединения, на текущий момент есть во всех версиях Windows, Linux, MacOS, Android. Самая современная версия RDP протокола на текущий момент 8.1.

Порт rdp по умолчанию

Сразу напишу порт rdp по умолчанию 3389, я думаю все системные администраторы его знают.

Принцип работы протокола rdp

И так мы с вами поняли для чего придумали Remote Desktop Protocol, теперь логично, что нужно понять принципы его работы. Компания Майкрософт выделяет два режима протокола RDP:

  • Remote administration mode > для администрирования, вы попадаете на удаленный сервер и настраиваете и администрируете его
  • Terminal Server mode > для доступа к серверу приложений, Remote App или совместное использование его для работы.

Вообще если вы без сервера терминалов устанавливаете Windows Server 2008 R2 - 2016, то там по умолчанию у него будет две лицензии, и к нему одновременно смогут подключиться два пользователя, третьему придется для работы кого то выкидывать. В клиентских версиях Windows, лицензий всего одна, но и это можно обойти, я об этом рассказывал в статье сервер терминалов на windows 7 . Так же Remote administration mode, можно кластеризировать и сбалансировать нагрузку, благодаря технологии NLB и сервера сервера подключений Session Directory Service. Он используется для индексации пользовательских сессий, благодаря именно этому серверу у пользователя получиться войти на удаленный рабочий стол терминальных серверов в распределенной среде. Так же обязательными компонентами идут сервер лицензирования .

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

Remote Desktop Protocol поддерживает несколько виртуальных каналов в рамках одного соединения, благодаря этому можно использовать дополнительный функционал

  • Передать на сервер свой принтер или COM порт
  • Перенаправить на сервер свои локальные диски
  • Буфер обмена
  • Аудио и видео

Этапы RDP соединения

  • Установка соединения
  • Согласование параметров шифрования
  • Аутентификация серверов
  • Согласование параметров RDP сессии
  • Аутентификация клиента
  • Данные RDP сессии
  • Разрыв RDP сессии

Безопасность в RDP протоколе

Remote Desktop Protocol имеет два метода аутентификации Standard RDP Security и Enhanced RDP Security, ниже рассмотрим оба более подробно.

Standard RDP Security

RDP протокол при данном методе аутентификации, шифрует подключение средствами самого RDP протокола, которые есть в нем, вот таким методом:

  • Когда ваша операционная система запускается, то идет генерация пары RSA ключиков
  • Идет создание сертификата открытого ключа Proprietary Certificate
  • После чего Proprietary Certificate подписывается RSA ключом созданным ранее
  • Теперь RDP клиент подключившись к терминальному серверу получит Proprietary Certificate
  • Клиент его смотрит и сверяет, далее получает открытый ключ сервера, который используется на этапе согласования параметров шифрования.

Если рассмотреть алгоритм с помощью которого все шифруется, то это потоковый шифр RC4. Ключи разной длины от 40 до 168 бит, все зависит от редакции операционной системы Windows, например в Windows 2008 Server – 168 бит. Как только сервер и клиент определились с длиной ключа, генерируются два новых различных ключа, для шифрования данных.

Если вы спросите про целостность данных, то тут она достигается за счет алгоритма MAC (Message Authentication Code) базируемого на SHA1 и MD5

Enhanced RDP Security

RDP протокол при данном методе аутентификации использует два внешних модуля безопасности:

  • CredSSP
  • TLS 1.0

TLS поддерживается с 6 версии RDP. Когда вы используете TLS, то сертификат шифрования можно создать средствами терминального сервера, самоподписный сертификат или выбрать из хранилища.

Когда вы задействуете CredSSP протокол, то это симбиоз технологий Kerberos, NTLM и TLS. При данном протоколе сама проверка, при которой проверяется разрешение на вход на терминальный сервер осуществляется заранее, а не после полноценного RDP подключения, и тем самым вы экономите ресурсы терминального сервера, плюс тут более надежное шифрование и можно делать однократный вход в систему (Single Sign On), благодаря NTLM и Kerberos. CredSSP идет только в ОС не ниже Vista и Windows Server 2008. Вот эта галка в свойствах системы

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

Изменить порт rdp

Для того, чтобы изменить порт rdp, вам потребуется:

  1. Открываем редактор реестра (Пуск -> Выполнить -> regedit.exe)
  2. Переходим к следующему разделу:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp

Находим ключ PortNumber и меняем его значение на номер порта, который Вам нужен.

Выберите обязательно десятичное значение, я для примера поставлю порт 12345.

Как только вы это сделали, то перезапустите службу удаленных рабочих столов, через командную строку, вот такими командами:

И создаем новое входящее правило для нового rdp порта. Напоминаю, что порт rdp по умолчанию 3389.

Выбираем, что правило будет для порта

Протокол оставляем TCP и указываем новый номер RDP порта.

Правило у нас будет разрешающее RDP соединение по не стандартному порту

При необходимости задаем нужные сетевые профили.

Ну и назовем правило, понятным для себя языком.

Для подключения с клиентских компьютеров Windows адрес пишите с указанием порта. Например, если порт Вы изменили на 12345, а адрес сервера (или просто компьютера, к которому подключаетесь): myserver, то подключение по MSTSC будет выглядеть так:
mstsc -v:myserver:12345

Remote Desktop Protocol или попросту RDP предоставляет возможность пользователю получить доступ к удаленному компьютеру без непосредственного контакта с ним. Это означает, что любой желающий может видеть все файлы на десктопе, запускать их, работать с ними так, будто сидит прямо за компьютером. Единственный нюанс – работа через данный протокол всегда будет ограничена скоростью интернета. Перед работой с данной технологией необходимо заранее активировать ее на том устройстве, через которое вы будете заходить в удаленный лэптоп.

Настройка доступа к удаленному рабочему столу

Как настроить rdp для windows 7? Нет ничего проще! Зайдите в меню «Пуск» – «Панель управления». Далее выбирайте «Система и безопасность» – «Система». После этого вы увидите пункт «Настройка удаленного доступа», жмите на него. Следом появится окошко, в котором необходимо будет поставить галочку напротив «Разрешать подключения от компьютеров с любой версией удаленного рабочего стола». Для удобства вашей работы за компьютером не забудьте предварительно правильно .

Настройка клиента для протокола RDP

Прежде всего, давайте разберемся, что такое клиент. Клиент – это такой компонент системы, который посылает запросы серверу. Отмечу, что клиенты для RPD существуют практически в каждой ОС, разумеется, в Windows 7 тоже. Кстати, для данной операционной системы используется встроенное приложение MsTsc.exe.

Итак, чтобы настроить клиент, выполняем следующие несложные шаги. Заходим в «Пуск» – «Выполнить», появляется окно, в котором вводим mstsc и нажимаем «Далее». Чтобы настроить обычный доступ без заданных настроек, вводим в соответствующем поле IP того компьютера, к которому нужен доступ. Далее вы увидите настройки, в которых можно изменить различные параметры, например, звук. Нажимаем «Enter», и всё, настройка закончена!

Дополнительные параметры

К ним относится возможность настроить экран, удаленные звуки, настроить подключение и т.д. Например, возможности экрана редактируются во вкладке «Настройка отображения». Там же можно выбрать разрешение удаленного рабочего стола, его фон, глубину цвета. А как настроить яркость экрана непосредственно на том компьютере за которым вы на данный момент работаете описано в этой

desktopwidth:i
Ширина рабочего стола, выбранная на вкладке Дисплей окна Параметры средства «Подключение к удаленному рабочему столу».

desktopheight:i
Высота рабочего стола, выбранная на вкладке Дисплей окна Параметры средства «Подключение к удаленному рабочему столу».

session bpp:i
Глубина цвета, выбранная в группе Цветовая палитра на вкладке Дисплей окна Параметры средства «Подключение к удаленному рабочему столу».

winposstr:i
Положение окна, выбранное на вкладке Дисплей окна Параметры средства «Подключение к удаленному рабочему столу».

full address:s
Компьютер, к которому необходимо подключиться. Значение этого параметра соответствует записи в поле Компьютер на вкладке Общие окна Параметры средства «Подключение к удаленному рабочему столу».

compression:i
Определяет, используется ли сжатие данных при передаче на клиентский компьютер.
0 Использовать сжатие данных.
1 Не использовать сжатие данных.

keyboardhook:i
Определяет, где применяются сочетания клавиш Windows. Значение этого параметра соответствует записи в поле Клавиатура на вкладке Локальные ресурсы окна Параметры средства «Подключение к удаленному рабочему столу».
0 На локальном компьютере.
1 На удаленном компьютере.
2 Только в полноэкранном режиме.

audiomode:i
Определяет, где воспроизводится звук. Значение этого параметра соответствует записи в поле Звук на удаленном компьютере на вкладке Локальные ресурсы окна Параметры средства «Подключение к удаленному рабочему столу».
0 На клиентском компьютере.
1 На узловом компьютере.
2 Отключить звук.

redirectdrives:i
Автоматическое подключение дисков при входе в систему удаленного компьютера. Значение этого параметра соответствует состоянию флажка Дисковые накопители на вкладке Локальные ресурсы окна Параметры средства «Подключение к удаленному рабочему столу».
0 Не использовать автоматическое подключение дисков.
1 Использовать автоматическое подключение дисков.

redirectprinters:i
Автоматическое подключение принтеров при входе в систему удаленного компьютера. Значение этого параметра соответствует состоянию флажка Принтеры на вкладке Локальные ресурсы окна Параметры средства «Подключение к удаленному рабочему столу».
0 Не использовать автоматическое подключение принтеров.
1 Использовать автоматическое подключение принтеров.

redirectcomports:i
Автоматическое подключение COM-портов при входе в систему удаленного компьютера. Значение этого параметра соответствует состоянию флажка Последовательные порты на вкладке Локальные ресурсы окна Параметры средства «Подключение к удаленному рабочему столу».
0 Не использовать автоматическое подключение COM-портов.
1 Использовать автоматическое подключение COM-портов.

displayconnectionbar:i
Отображение панели подключений при входе в систему удаленного компьютера в полноэкранном режиме. Значение этого параметра соответствует состоянию флажка Отображать панель подключений при работе на полном экране на вкладке Дисплей окна Параметры средства «Подключение к удаленному рабочему столу».
0 Не отображать панель подключений.
1 Отображать панель подключений.

username:s
Имя пользователя, отображаемое в RDP. Значение этого параметра соответствует записи в поле Имя пользователя на вкладке Общие окна Параметры средства «Подключение к удаленному рабочему столу».

domain:s
Имя пользователя, отображаемое в диалоговом окне Подключение к удаленному рабочему столу. Значение этого параметра соответствует записи в поле Домен на вкладке Общие окна Параметры средства «Подключение к удаленному рабочему столу».

alternate shell:s
Автоматический запуск программы при подключении по протоколу RDP. Значение этого параметра соответствует записи в поле Путь к программе и имя файла на вкладке Программы окна Параметры средства «Подключение к удаленному рабочему столу».

shell working directory:s
Местоположение папки приложения, которое автоматически запускается при подключении по протоколу RDP. Значение этого параметра соответствует записи в поле Путь к программе и имя файла на вкладке Программы окна Параметры средства «Подключение к удаленному рабочему столу».

disable wallpaper:i
Отображение фонового рисунка при входе в систему удаленного компьютера. Значение этого параметра соответствует состоянию флажка Фоновый рисунок рабочего стола на вкладке Дополнительно окна Параметры средства «Подключение к удаленному рабочему столу».
0 Отображать фоновый рисунок.
1 Не отображать фоновый рисунок.

disable full window drag:i
Отображение содержимого папки при перетаскивании папки в новое местоположение. Значение этого параметра соответствует состоянию флажка Отображать содержимое окна при перетаскивании на вкладке Дополнительно окна Параметры средства «Подключение к удаленному рабочему столу».
0 Отображать содержимое папки при перетаскивании.
1 Не отображать содержимое папки при перетаскивании.

disable menu anims:i
Анимация меню и окон при входе в систему удаленного компьютера. Значение этого параметра соответствует состоянию флажка Визуальные эффекты при отображении меню и окон на вкладке Дополнительно окна Параметры средства «Подключение к удаленному рабочему столу».
0 Использовать анимацию при отображении меню и окон.
1 Не использовать анимацию при отображении меню и окон.

disable themes:i
Использование тем при входе в систему удаленного компьютера. Значение этого параметра соответствует состоянию флажка Темы на вкладке Дополнительно окна Параметры средства «Подключение к удаленному рабочему столу».
0 Использовать темы.
1 Не использовать темы.

bitmapcachepersistenable:i
Кэширование графики на локальном компьютере. Значение этого параметра соответствует состоянию флажка Кэширование графики на вкладке Дополнительно окна Параметры средства «Подключение к удаленному рабочему столу».
0 Не использовать кэширование.
1 Использовать кэширование.

autoreconnection enabled:i
Определяет, должен ли клиентский компьютер автоматически пытаться заново установить соединение после того, как соединение было прервано.
0 Клиентский компьютер не пытается восстановить соединение.
1 Клиентский компьютер пытается восстановить соединение.

connect to console:i:1
Добавления этой строки приведет к подключению к консоли удаленного компьютера.

Данный протокол, широко применяемый в современных вычислительных сетях, знает любой системный администратор. Используя его, можно подключится к удаленной машине, работающей под управлением операционной системы линейки Microsoft. Вам будет доступен рабочий стол, файловая система и тд. Таким образом, можно будет осуществлять основную массу настроек и профилактических мероприятий, без необходимости физического присутствия за экраном удаленного ПК.

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

История появления

Протокол удаленного рабочего стола, а именно так расшифровывается аббревиатура RDP, появился в далеком 1998 году. Этот проприетарный протокол прикладного уровня, в то время входил в состав ОС Windows NT 4.0 Terminal Server, и позволял реализовать идею удаленного функционирования клиент-серверных приложений. Как вы понимаете, не всегда есть возможность обеспечить все рабочие места мощными компьютерами, а уж в те далекие годы производительность оставляла желать лучшего.

Решением этой проблемы выступает следующая конструкция: мощный сервер (или кластер серверов) осуществляет основную массу операций вычислений, а маломощные клиентские компьютеры/приложения подключаются к нему, используя протокол RDP, осуществляют свои задачи. Таким образом, на конечных пользовательских узлах появилась возможность работать со сложными приложениями и программами, даже при наличии ограниченных ресурсов — ведь основная нагрузка ложилась на сервер, а клиентский ПК получал только основной результат операции на мониторе.

Описание протокола RDP

  • По умолчанию, для подключения используется порт TCP 3389
  • Как уже упомянуто выше, при подключении предоставляется возможность работать с файлами на удаленном машине
  • Для обеспечения безопасности реализовано шифрование и 56 и 128 битным ключами
  • Также для функций безопасности, используется возможности протоколов TLS
  • Общий буфер обмена — вы можете копировать данные и удаленной машины, и вставлять их на локальный ПК.
  • Реализована возможность подключения локальных ресурсов к удаленному ПК.
  • Протокол RDP предоставляет доступ к портам локального компьютера (последовательные и параллельные)

Принцип работы

Протокола RDP берет за основу функции стека протоколов TCP. Первым делом, устанавливается соединение между клиентом и сервером на транспортном уровне. Затем происходит инициация сессии RDP — на этом этапе согласовываются основные параметры: шифрование, подключенные устройства, настройки графики и тд.

После того, как все настроено, сессия RDP полностью готова к работе. На клиентский ПК от сервера поступает графическое изображение (результат операций), которые происходят в результате отправки команд с клавиатуры или мыши.

Аутентификация

Если настроена система обеспечения безопасности протокола RDP, аутентификация происходит следующим образом:

  1. При инициализации подключения формируется пара RSA ключей
  2. Далее создается специальный сертификат открытого ключа
  3. Операционная система проводит процесс подписи сертификата RSA ключем
  4. Далее клиент осуществляем подключение к серверу, получает от него сертификат, и если тот проходит проверку, инициализируется сессия удаленного управления

Как запустить

В операционных системах, таких как Windows XP, Vista, Seven, по умолчанию включено клиентское ПО Remote Desktop Connection. Для его запуска вам необходимо нажать сочетание клавиш Win+R , набрать mstsc и нажать Enter .

Помимо использования Remote Assistance, вы можете удаленно подключиться к рабочему столу пользователя Windows 10 с помощью теневого RDP подключения (). Большинство администраторов так или иначе пользовались этим функционалом для подключения к сессиям пользователей на терминальных RDS серверах с Windows Server 2012 R2 / Server 2016. Однако далеко не все знают, что теневое подключение можно использовать для удаленного просмотра и взаимодействия с рабочим столом пользователя и на десктопной Windows 10. Рассмотрим, как это работает.

Как вы помните, если попытаться удаленно подключится к компьютеру с Windows 10 через RDP, то сессия пользователя, работающего локально выбивается (даже если вы включите возможность использования ). Однако вы можете подключится непосредственно подключиться к консольной сессии пользователя без блокировки его сеанса.

Предположим, вам нужно подключиться с сервера Windows Server 2012 R2 к рабочему столу пользователя, работающего локально за рабочей станцией с Windows 10.

Для теневого подключения к сессии пользователя нужно использовать стандартную RDP утилиту mstsc.exe . Формат команды такой:

Mstsc.exe /shadow: /v:<Имя или IP адрес компьютера>

Также можно использовать одну из опций:

  • /prompt – запросить имя и пароль пользователя, под которым выполняется подключение (если не указано, подключение выполняется под текущим пользователем).
  • /control – режим взаимодействия с сеансом пользователя. Если параметр не задан, вы подключитесь в режиме просмотра (наблюдения) сессии пользователя, т.е. вы не сможете управлять его мышью и вводить данные с клавиатуры;
  • /noConsentPrompt – не запрашивать у пользователя подтверждение на подключение к сессии.

Режим теневого подключения (нужно ли запрашивать подтверждение пользователя, и возможно управления в сессии или только наблюдение) настраивается с помощью групповой политики или редактирования реестра.

Политика находится в разделе Конфигурация компьютера ->Административные шаблоны –> Компоненты Windows –> Службы удаленных рабочих столов –> Узел сеансов удаленных рабочих столов –> Подключения (Policies -> Administrative Templates -> Windows components -> Remote Desktop Services -> Remote Session Host -> Connections) и называется «Установить правила удаленного управления для пользовательских сеансов служб удаленных рабочих столов » (Set rules for remote control of Remote Desktop Services user sessions).

Вместо включения политики можно выставить значение dword ключа с именем Shadow в ветке реестра HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services. Допустимые значения:

  • 0 – запретить удаленное управление;
  • 1 — полный контроль с разрешения пользователя;
  • 2 — полный контроль без разрешения пользователя;
  • 3 — наблюдение за сеансом с разрешения пользователя;
  • 4 — наблюдение за сеансом без разрешения пользователя.

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

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

Запросим удаленно список сессий на рабочей станции Windows 10 командой:

qwinsta /server:192.168.11.60

Как вы видите, на данном компьютере имеется одна консольная сессия пользователя с идентификатором ID = 1.

Итак, попробуем удаленно подключиться к сессии пользователя через теневое подключение. Выполните команду:

Mstsc /shadow:1 /v:192.168.11.60

На экране пользователя Windows 10 появится запрос:

Username запрашивает удаленный просмотр вашего сеанса. Вы принимаете этот запрос.

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

Совет . Для завершения теневой сессии нажмите на компьютере alt+* или ctrl+* на RDS сервере.

Если проверить сетевые соединения с помощью TCPView, можно увидеть, что взаимодействие идет через RemoteRPC (а не по протоколу RDP с портом TCP 3389). Т.е. для подключения используется случайный TCP порт из высокого диапазона RPC. На стороне подключающегося компьютера соединение устанавливает mstsc.exe, на стороне клиента подключение обрабатывает rdpsa.exe или rdpsaproxy.exe (в зависимости от билда Windows 10). Поэтому на клиенте должен быть включен RemoteRPC:

HKLM\SYSTЕM\CurrеntCоntrоlSеt\Cоntrol\Tеrminal Sеrvеr
“AllоwRemotеRPС”=dwоrd:00000001

Функционал теневого подключения Remote Desktop Shadowing работает в Windows 10 / 8.1 и Windows Server 2012 R2 /2016. Чтобы теневое подключение работало на клиентах с Windows 7 SP1 (Windows Server 2008 R2) нужен RDP клиент версии 8.1 – поэтому придется установить обновление KB2830477 (требует наличия установленных KB2574819 и KB2857650).

Таким образом Remote Desktop Shadowing можно использовать как аналог Remote Assistance (Удаленный помощник) или TeamViewer для локальной или корпоративной сети.