Введение
Ранее я описывал способ, как сделать терминальный сервер из Windows 7. Сейчас вышла новая операционная система Windows 10. На первый взгляд она вполне нормальная и скорее всего станет популярной на ближайшие несколько лет. Будем привыкать к ней, осваивать и переносить привычный функционал.
Полезная возможность сделать из обычной Window 10 терминальный сервер. Ранее я не один раз использовал эту функцию для работы в файловой 1С нескольких человек одновременно. Для небольшого коллектива из нескольких сотрудников это вполне удобно и оправданно, так как покупать полноценный сервер и серверную ОС для таких задач нецелесообразно.
RDCMan: Доступ к консоли виртуальных машин Hyper-V
В RDCMan 2.7 вы можете настроить прямое подключения к консолям виртуальных машин, запущенных на Hyper-V хосте (используется режим Enhanced Session Mode). Для этого вам нужно получить идентификатор виртуальной машины на сервере Hyper-V. Используйте команду:
После того, как вы получили идентификатор ВМ, вы можете использовать его при настройке подключения в RDCMan. При добавлении нового сервера в консоли RDCMan укажите имя Hyper-V хоста, поставьте галку “VM console connect” и в поле ID скопируйте полученный идентификатор ВМ. Подключение выполняется под учетной записью с правами администратора Hyper-V, через шину VMBus (т.е. вам не нужен сетевой доступ к IP адресу гостевой ОС – доступ работает через Hyper-V хост по порту 2701).
RDCMan имеет простой пользовательский интерфейс и очень прост в использовании. Есть также версия для установки на Linux.
Если вам просто нужен менеджер RDP соединений, то это отличный и простой в использовании повседневный инструмент Windows администратора.
Привет, Хабр! Данный пост написан исключительно с целью пролить свет на незаслуженно затерянную в дебрях Microsoft программку, а не для обзора всех ее возможностей. Здесь даже не будет ссылки на скачивание. Но обо всем по порядку.
Предисловие
Пост хабражителя навеял размышления об удобстве удаленного управления серверами. И в частности оными под управлением Windows Server. Для *nix систем использую старушку putty и идея мега-комбайна мне не по душе. Но это, конечно же, сугубо личное мнение. Скажу честно, раньше я был достаточно ленив и пользовался стандартным клиентом удаленного рабочего стола аля mstsc.exe. Но перейдя в другую компанию, с количеством серверов на порядок больше, бесконечные окна терминалов стали утомлять. Программы наподобие Radmin и DWNTU устанавливают свои модули/службы на каждый компьютер, которым необходимо управлять. А так хотелось чего-то родного (т.е. работающего по протоколу rdp), а также бесплатного. Не буду перечислять список монстроидальных комбайнов и простых программ, которые были протестированы, также воздержусь от перечислений их плюсов и минусов, достойных хватает.
Случайная находка
Отдельно хочу остановиться на программке, на которую я наткнулся случайно. Эта легковесная (менее 800 Кб) и, как оказалось, весьма удобная программка не требует настройки сотни параметров, не поддерживает скины и не просит отдельную БД для хранения параметров подключений. Зато выполняет свое основное предназначение на отлично. Зовут ее Remote Desktop Connection Manager или rdcm или RDCMan, как называет ее сама Microsoft. Последняя версия датируется 2010 годом, но это никак не сказывается на функциональности. Проверил ее в работе и с 2000 и с 2008R2 серверами (с 2012 пока не было возможности протестировать). Помимо стандартного набора функций типа хранения и подстановки логина/пароля, избранного и т.д. т.п. в программе есть своя изюминка, а точнее три.
- Возможность подключиться к консоли. Для меня это очень полезно, т.к. компания строго соблюдает лицензионную политику поэтому служба терминалов установлена далеко не на каждом сервере. По-умолчанию Windows Server разрешает два одновременных подключения remote desktop. Эта же функция позволяет «поднять» ограничение до трех. Да-да, это есть и в стандартном клиенте, но далеко не у всех конкурентов.
- Интерактивные миниатюры открытых подключений, обновляющиеся в реальном времени. Т.е. можно не только наблюдать за происходящим на нескольких серверах одновременно, но и нажать, например, ОК в выскочившем окне, прямо в миниатюре. Не ключевая функция, конечно, но у конкурентов не замечена.
- Древовидное представление списка серверов и открытых подключений. Стоит немного привыкнуть и оно оказывается гораздо удобнее вкладок. Опять же IMHO, поэтому на третьем месте.
Не хватает разве что функции добавления серверов через сканирование сети.
Никому не известная
Основной фактор побудивший написать данную статью это то, что программка малоизвестна, редко кто ею пользуется и с моей точки зрения это не заслуженно. Никто из моих коллег не слышал о такой. Конечно не показатель, но все же. Обошли ее стороной и в Википедии. Найти rdcm можно на английской версии сайта Microsoft
Если заинтересовались, ищите по полному названию.Спасибо за внимание.
Принцип работы
RDPl основан на протоколе TCP. Порядок его работы в общих чертах выглядит так:
- Устанавливается соединение на транспортном узле.
- Происходит инициализация сессии, определяется порядок передачи данных.
- Сервер начинает передавать клиенту графический вывод. В ответ он ожидает, что пользователь введет входные данные.
Приоритетный способ — передача вывода графическими примитивами: прямоугольниками, линиями, текстами, эллипсами и так далее. Это позволяет экономить трафик. Если договориться о параметрах передачи примитивов не удалось, то клиенту передается изображение графического экрана.
RDP-клиент обрабатывает команды от сервера терминалов и использует собственную графическую подсистему для для вывода изображения. Пользовательский ввод передается благодаря скан-кодам. Сигналы нажатий и отпусканий кнопок передаются отдельно с помощью специального флага.
Remote Desktop Protocol поддерживает несколько виртуальных каналов внутри одной сессии. Это дает доступ к дополнительным возможностям для управления. Можно использовать принтер или порты, перенаправлять файловую систему, работать с единым буфером, использовать подсистему аудио для передачи звука.
Терминальный сервер на Windows 10
Данная статья представляет собой пошаговую инструкцию по настройке Windows 10 в качестве терминального сервера с доступом по RDP.
После настройки, к одному компьютеру смогут одновременно подключаться несколько пользователей по RDP (Remote Desktop Protocol — протокол удалённого рабочего стола). Наиболее популярное применение данного решения — работа нескольких пользователей с файловой базой 1С.
Процесс настройки показан на примере Windows 10 Enterprise x64, однако данное руководство полностью подходит для установки на других ОС Windows.
Для настройки Windows 10 в качестве терминального сервера с доступом по RDP понадобятся:
1. Компьютер с установленной операционной системой Windows 10 и правами администратора, подключённый к локальной сети;
2. Компьютер в локальной сети, с которого будет производиться подключение и который имеет RDP клиент (прим. требуется ОС Windows XP/Vista/7/8/8.1/10 и т.д.);
3. Библиотека: RDP Wrapper Library.
Скачать RDP Wrapper Library v.1.6.2Скачать c GitHub RDP Wrapper Library
I. Создание пользователя и настройка прав для доступа по RDP
1. Нажмите на значок поиска , затем с помощью поисковой строки найдите и выберите Управление учетной записью (Рис.1).
Рис.1
2. В открывшемся окне выберите Семья и другие люди, затем нажмите Добавить пользователя для этого компьютера (Рис.2).
Рис.2
3. Нажмите на пункт У меня нет данных для входа этого человека (Рис.3).
Рис.3
4. Нажмите на пункт Добавить пользователя без учетной записи Майкрософт (Рис.4).
Рис.4
5. В соответствующих полях введите имя пользователя (прим. в данном примере это UserRDP), пароль для новой учётной записи и подсказку для пароля, затем нажмите Далее (Рис.5).
Рис.5
6. В окне параметров Вы увидите нового пользователя (прим. в данном примере это UserRDP) (Рис.6).
Рис.6
7. Нажмите на значок поиска , затем с помощью поисковой строки найдите и выберите Этот компьютер, через правую кнопку мыши откройте меню и нажмите Управлять (Рис.7).
Рис.7
8.
В открывшемся окне выберите: Служебные программы>Локальные пользователи и группы > Пользователи, затем выберите пользователя (прим. в данном примере это UserRDP), перейдите на вкладку Членство в группах и нажмите Добавить… (Рис.8).
Рис.8
9. Нажмите Дополнительно… (Рис.9).
Рис.9
10. Нажмите Поиск, выберите из списка Пользователи удаленного рабочего стола и нажмите OK (Рис.10).
Рис.10
11. Нажмите OK (Рис.11).
Рис.11
12. Нажмите Применить, затем OK (Рис.12).
Рис.12
II. Настройка терминального сервера с доступом по RDP
1. Нажмите на значок поиска , затем с помощью поисковой строки найдите и выберите Система (Рис.13).
Рис.13
2. Нажмите Настройка удалённого доступа, в открывшемся окне перейдите на вкладку Удалённый доступ, выберите пункт Разрешить удалённые подключения к этому компьютеру, затем нажмите Применить и OK (Рис.14).
Рис.14
3. Распакуйте (прим. с помощью WinRAR или просто открыть через Проводник) скачанную Вами ранее библиотеку RDP Wrapper Library. Откройте папку и запустите от имени администратора (прим. используя правую кнопку мыши) файл install,после чего начнётся установка (Рис.15).
Рис.15
4. После окончания установки нажмите любую клавишу (Рис.16).
Рис.16
5. Нажмите на значок поиска , затем с помощью поисковой строки найдите и выберите Выполнить (Рис.17).
Рис.17
6. В открывшемся окне введите gpedit.msc и нажмите OK (Рис.18).
Рис.18
7. Выберите: Конфигурация компьютера > Административные шаблоны > Компоненты Windows > Службы удалённых рабочих столов > Узел сеансов удалённых рабочих столов > Подключения > Ограничить количество подключений (Рис.19).
Рис.19
8.
В открывшемся окне выберите пункт Включить, установите в параметрах разрешённое количество подключений к удалённым рабочим столам на 999999, затем нажмите Применить и OK. Перезагрузите компьютер (Рис.20).
Рис.20
III. Подключение к удаленному рабочему столу
1. Используя второй компьютер, находящийся в той же локальной сети, нажмите Пуск, с помощью поисковой строки найдите, а затем выберите Подключение к удалённому рабочему столу (Рис.21).
Рис.21
2. В открывшемся окне ведите имя компьютера к которому следует подключиться (прим. Тот, на котором производились все настройки), затем нажмите Подключить (Рис.22).
Рис.22
3. Прежде всего, выберите пользователя (прим. в данном примере это UserRDP) и введите пароль от учётной записи, который Вы указывали ранее (прим. см. Рис.5), затем нажмите OK (Рис.23).
Рис.23
4. В появившемся окне нажмите Да, после чего начнётся сеанс удаленного подключения (Рис.24).
Рис.24
Настройка Windows 10 в качестве терминального сервера с доступом по RDP завершена!.
Бонус:
Dameware remote everywhere — это облачное решение для удаленной поддержки, которое позволяет ИТ-специалистам получить доступ практически к любой платформе (Windows, Mac, Linux, iOS и Android).
Remote везде позволяет вам быстро получить удаленный доступ к системам, которые находятся в помещении, например, пользователи в офисе или удаленные работники, например, когда они находятся дома, в отеле или в любом месте, где есть подключение к Интернету. Облачный веб-портал упрощает управление подключениями и поддержку удаленных сотрудников. Это отличный инструмент для службы поддержки или любого ИТ-специалиста, которому необходимо удаленно поддерживать конечных пользователей.
Ключевая особенность:
- Запись сеанса
- Скрыть обои и гашение экрана
- Совместное использование экрана и поддержка нескольких мониторов
- Организация и управление соединениями
- Живой чат и видеоконференции
- Встроенные инструменты устранения неполадок
- Удаленно перезапускать и выключать устройства
- и многое другое.
Заключение
Каждый из представленных менеджеров удаленных подключений имеет свои плюсы и минусы. Чтобы найти то, что лучше всего соответствует вашим потребностям, мы рекомендуем скачать и попробовать их самостоятельно.
Надеемся, что этот список помог найти подходящий диспетчер удаленных подключений, Вам и Вашей команде.
Термины и упоминания используемые в статье
Remote Desktop (удаленный рабочий стол) — это термин, которым обозначается режим управления, когда один компьютер получает права администратора по отношению к другому, удаленному. Связь между устройствами происходит в реальном времени посредством Интернет или локальной сети.
RDP (Remote Desktop Protocol) — протокол удаленного рабочего стола от Microsoft. Предназначен для подключения и работы пользователя с удаленным сервером. RDP позволяет удаленно подключаться к компьютерам под управлением Windows и доступен любому пользователю Windows, если у него не версия Home, где есть только клиент RDP, но не хост.
По умолчанию во всех операционных системах Windows для подключения по протоколу RDP (Remote Desktop Protocol / Удаленный рабочий стол) использует порт TCP 3389. После того, как вы включили RDP доступ в Windows, служба TermService (Remote Desktop Services) начинает слушать на порту 3389.
Коротко об RDCMan
RDCMan (Remote Desktop Connection Manager) —менеджер RDP соединений, позволяющий управлять в одном окне большим количеством RDP подключений, создавать древовидные структуры с удаленными Windows серверами и рабочими станциями.
Компания Microsoft прекратила разработку RDCMan (Remote Desktop Connection Manager) после обнаружения в нем уязвимости.
Утилита RDCMan была разработана командой Windows Live Experience для внутреннего использования. Приобрела большую популярность у системных администраторов в конце 2000-х и начале 2010-х годов, а Microsoft выпускала обновления для него вплоть до 2014 года (последняя доступная версия RDCMan 2.7 ).
После релиза встроенного в Windows MSTSC, а также официального приложения Remote Desktop, Майкрософт заявила, что поддержка RDCMan в скором времени будет прекращена, и компания рекомендовала переходить на использование указанных решений.
В марте 2020 Microsoft заявила, что в RDCMan была обнаружена уязвимость CVE-2020-0765, которая позволяла злоумышленникам похищать данные с компьютеров пользователей и полностью удала страницу загрузки RDCMan.
Утилита является бесплатной и доступна к загрузке на сайте Microsoft. Актуальная версия 2.81
Принцип работы протокола 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. Вот эта галка в свойствах системы
разрешить подключения только с компьютеров, на которых работает удаленный рабочий стол с проверкой подлинности на уровне сети.
Настройка Remote Desktop Connection Manager 2.7
Все установку RDCM 2.7 в Windows 10 я произвел, теперь давайте покажу как его настраивать. открываем утилиту, она должна была создать соответствующий значок на рабочем столе. Если его нет, то поищите его через кнопку «Пуск»
У вас откроется окно программы, по умолчанию тут все будет пусто и вам нужно создать для начала конфигурационный файл.
Делается это через меню File — New либо просто нажатие горячих клавиш Ctrl+N
задаем имя вашего файла, можете называть файлы по принадлежности к различным доменам Active Directory или сайтам.
Так как данная утилита позволяет вам структурировать ваши RDP в иерархическом виде, то правильнее будет создать нужное количество групп, объединяющих сервера по какой-либо сервисной или территориальной принадлежности, так например можно удобно объединять всех участников терминальных ферм. Щелкаем правым кликом по корню и из контекстного меню выбираем пункт «Add group», для добавления группы.
На первом шаге, вас попросят на вкладке Group Settings задать имя группы, советую писать осмысленные названия, дабы потом не путаться, а не просто Windows 2008 R2 или 1012 R2. В своем примере я назвал группу «Контроллеры домена»
Переходим на вкладку «Logon Credentials», на данной вкладке RDCMan попросит вас указать те учетные данные от имени которых будут производиться удаленные подключения. Я задал свои доменные данные, не забудьте нажать кнопку Save, чтобы сохранить их.
Пароли профиля учетных данных области файла зашифрованы в соответствии с настройками шифрования файла. Глобальные профили учетных данных используют настройки группы по умолчанию. Вы должны понимать, что RDCMan не хранит пароли в Windows Credential Manager, а хранит их RDG файле. В версии Remote Desktop Connection Manager v2.81 шифрование стало более стойким
Сохранение позволит вам их использовать потом для других групп созданных в RDCMan 2.7
Теперь ваши учетные данные сохранены, можно переходить на вкладку Connection Settings.
На вкладке Connection Settings вы увидите порт подключения по RDP, по умолчанию это 3389, если конечно вы его не меняли в целях безопасности.
Remote Desktop Connection Manager позволяет поменять стандартный порт RDP, для этого снимите галку «inherit from parent» и у вас активируются поля. Поле «Connect to console» позволит вам произвести подключение как по консоли, если бы вы подключились к монитору и клавиатуре, это полезно делать при подключении к участнику фермы, чтобы не получать ошибку «Подключение к удаленному рабочему столу не удалось подключиться к удаленному компьютеру»
На вкладке Remote Desktop Settings вы можете выбрать необходимое разрешение для экрана, но я вам советую уставить Full screen (Полный экран)
Чтобы у вас не было скролингов и весь ваш экран в RDCMan умещался, то обязательно выставите галку «Scale docked remote desktop to fit window»
Вкладка «local Resources», позволит вам выбрать какие устройства вы хотели бы перенаправлять при удаленном подключении, я оставил только буфер обмена.
Добавляем теперь сервера в нужную группу. Делается это так же через правый клик, но уже по группе, все права группы будут применены к участникам, но вы можете их так же поменять. Как только вы добавили сервера, не забывайте сохранять конфигурационный файл, иначе выйдя из Remote Desktop Connection Manager, вы потеряете все ваши настройки.
У меня в итоге мой скромный, тестовый стенд выглядит вот так. Все выглядит в виде удобных плиток, которые кстати напоминаю, обновляются в реальном времени.
На сервере доступны вот такие операции:
- Connect server — будет произведено обычное подключение от имени той учетной записи, что указана в настройках
- Connect server as — запуск от имени другого человека
- Reconnect server — удобно когда сервер заблокировался
- Send keys — отправка команд клавиатуры
- Disconnect server — отключиться от сервера
- log off server — выход из операционной системы
- Properties — свойства
Еще если у вас есть Hyper-V, то Remote Desktop Connection Manager начиная с версии 2.7 позволяет производить подключение на прямую к виртуальной машине Hyper-V, используя для этого VMConnect. Все, что вам нужно, это выяснить ID виртуальной машины, например так:
Get-VM -Name VM123 | select ID
Теперь зная ID VM вы открываете свойства нужного вам сервера и на вкладке «Server Settings» выставьте галку «VM console connect». В поле «Server name» указываем ваше DNS имя хоста Hyper-V (Или кластера), где находится виртуальная машина, в поле ID указываете нужный номер. Поле «Display Name» заполните на свое усомнение. оно для вашего удобства.
Плюсом такого решения может выступать. что виртуальная машина можете даже не иметь RDP подключения, быть в изолированной сети
Остальные мало полезны.