stringtranslate.com

Службы удаленного рабочего стола

Службы удаленного рабочего стола ( RDS ), известные как службы терминалов в Windows Server 2008 и более ранних версиях, [1] являются одним из компонентов Microsoft Windows , которые позволяют пользователю инициировать и контролировать интерактивный сеанс [2] на удаленном компьютере или виртуальной машине через сетевое соединение. RDS был впервые выпущен в 1998 году как сервер терминалов в Windows NT 4.0 Terminal Server Edition , автономном выпуске Windows NT 4.0 Server , который позволял пользователям входить в систему удаленно. Начиная с Windows 2000 , он был интегрирован под названием службы терминалов в качестве дополнительного компонента в серверные выпуски семейства операционных систем Windows NT , [3] получая обновления и улучшения с каждой версией Windows. [4] Затем службы терминалов были переименованы в службы удаленных рабочих столов в Windows Server 2008 R2 [5] в 2009 году.

RDS — это реализация Microsoft архитектуры тонкого клиента , где программное обеспечение Windows и весь рабочий стол компьютера, на котором запущен RDS, становятся доступными для любой удаленной клиентской машины, поддерживающей протокол удаленного рабочего стола (RDP). Пользовательские интерфейсы отображаются с сервера на клиентской системе, а ввод с клиентской системы передается на сервер, где происходит выполнение программного обеспечения. [6] Это отличается от систем потоковой передачи приложений , таких как Microsoft App-V , в которых компьютерные программы передаются клиенту по требованию и выполняются на клиентской машине.

RemoteFX был добавлен в RDS как часть Windows Server 2008 R2 Service Pack 1.

Обзор

Windows включает четыре клиентских компонента, использующих RDS:

  1. Быстрая помощь (Windows 10 и более поздние версии) и удаленный помощник Windows (Windows XP — Windows 8.1)
  2. Подключение к удаленному рабочему столу (RDC)
  3. Быстрое переключение пользователей
  4. Подсистема Windows для Linux (через MSRDC )

Первые две — это отдельные утилиты, которые позволяют пользователю управлять интерактивным сеансом на удаленном компьютере по сети. В случае удаленного помощника удаленному пользователю необходимо получить приглашение, и управление является совместным. Однако в случае RDC удаленный пользователь открывает новый сеанс на удаленном компьютере и имеет все полномочия, предоставленные правами и ограничениями его учетной записи пользователя. [6] [7] [8] Быстрое переключение пользователей позволяет пользователям переключаться между учетными записями пользователей на локальном компьютере без выхода из программы и выхода из системы. Быстрое переключение пользователей является частью Winlogon и использует RDS для реализации своей функции переключения. [9] [10] Сторонние разработчики также создали клиентское программное обеспечение для RDS. Например, rdesktop поддерживает платформы Unix .

Хотя RDS поставляется с большинством редакций всех версий Windows NT, начиная с Windows 2000, [3] его функциональность отличается в каждой версии. Windows XP Home Edition вообще не принимает никаких подключений RDC, резервируя RDS только для быстрого переключения пользователей и удаленной помощи. Другие клиентские версии Windows позволяют подключаться к системе только одному удаленному пользователю за счет отключения пользователя, вошедшего в консоль. Windows Server позволяет подключаться двум пользователям одновременно. Эта схема лицензирования, называемая «Удаленный рабочий стол для администрирования», облегчает администрирование необслуживаемых или безголовых компьютеров . Только приобретя дополнительные лицензии (в дополнение к лицензии Windows), компьютер под управлением Windows Server может обслуживать нескольких удаленных пользователей одновременно и достигать инфраструктуры виртуальных рабочих столов . [5] [9]

Для организации RDS позволяет ИТ-отделу устанавливать приложения на центральном сервере вместо нескольких компьютеров. [11] Удаленные пользователи могут входить в систему и использовать эти приложения по сети. Такая централизация может упростить обслуживание и устранение неполадок. Системы аутентификации RDS и Windows не позволяют неавторизованным пользователям получать доступ к приложениям или данным.

У Microsoft есть давнее соглашение с Citrix , чтобы облегчить обмен технологиями и патентным лицензированием между Microsoft Terminal Services и Citrix XenApp (ранее Citrix MetaFrame и Citrix Presentation Server ). В этом соглашении Citrix имеет доступ к ключевому исходному коду для платформы Windows, что позволяет разработчикам улучшить безопасность и производительность платформы Terminal Services. В конце декабря 2004 года обе компании объявили о пятилетнем продлении этого соглашения для Windows Vista . [12]

Компоненты сервера

Ключевым серверным компонентом RDS является терминальный сервер ( termdd.sys), который прослушивает TCP-порт 3389. Когда клиент протокола удаленного рабочего стола (RDP) подключается к этому порту, он помечается уникальным идентификатором сеанса и связывается с только что созданным сеансом консоли (сеанс 0, только клавиатура, мышь и пользовательский интерфейс в символьном режиме). Затем инициируются подсистема входа в систему (winlogon.exe) и графическая подсистема GDI , которые выполняют задачу аутентификации пользователя и представления графического интерфейса. Эти исполняемые файлы загружаются в новом сеансе, а не в консольном сеансе. При создании нового сеанса драйверы графических устройств и устройств клавиатуры/мыши заменяются драйверами, специфичными для RDP: RdpDD.sysи RdpWD.sys. Это RdpDD.sysдрайвер устройства, который захватывает вызовы рендеринга пользовательского интерфейса в формат, передаваемый по RDP. RdpWD.sysдействует как драйвер клавиатуры и мыши; он получает ввод с клавиатуры и мыши по TCP-соединению и представляет их как ввод с клавиатуры или мыши. Он также позволяет создавать виртуальные каналы , которые позволяют перенаправлять другие устройства, такие как диск, аудио, принтеры и COM-порты, т. е. каналы действуют как замена для этих устройств. Каналы подключаются к клиенту через TCP-соединение; когда каналы доступны для данных, клиент информируется о запросе, который затем передается через TCP-соединение в приложение. Вся эта процедура выполняется терминальным сервером и клиентом, при этом RDP выступает посредником в правильной передаче, и полностью прозрачна для приложений. [13] RDP-коммуникации шифруются с использованием 128-битного шифрования RC4 . Начиная с Windows Server 2003, он может использовать схему шифрования, совместимую с FIPS 140 , или шифровать коммуникации с использованием стандарта Transport Layer Security . [6] [14]

Как только клиент инициирует соединение и получает информацию об успешном вызове стека терминальных служб на сервере, он загружает устройство, а также драйверы клавиатуры/мыши. Данные пользовательского интерфейса, полученные по RDP, декодируются и отображаются как пользовательский интерфейс, тогда как ввод с клавиатуры и мыши в окно, в котором размещен пользовательский интерфейс, перехватывается драйверами и передается по RDP на сервер. Он также создает другие виртуальные каналы и устанавливает перенаправление. Связь RDP может быть зашифрована; с использованием низкого, среднего или высокого шифрования. При низком шифровании пользовательский ввод (исходящие данные) шифруется с использованием слабого (40-битного RC4) шифра. При среднем шифровании пакеты пользовательского интерфейса (входящие данные) также шифруются с использованием этого слабого шифра. Настройка «Высокое шифрование (не экспорт)» использует 128-битное шифрование RC4, а «Высокое шифрование (экспорт)» использует 40-битное шифрование RC4. [15] При установке уровня безопасности на «SSL (TLS 1.0)» доступна безопасность транспортного уровня до версии 1.2. [16]

Терминальный сервер

Terminal Server — это серверный компонент служб терминалов. Он выполняет работу по аутентификации клиентов, а также делает приложения доступными удаленно. Ему также поручена работа по ограничению клиентов в соответствии с уровнем их доступа. Terminal Server соблюдает настроенные политики ограничения программного обеспечения, чтобы ограничить доступность определенного программного обеспечения только определенной группе пользователей. Информация об удаленном сеансе хранится в специализированных каталогах, называемых Session Directory , которые хранятся на сервере. Каталоги сеансов используются для хранения информации о состоянии сеанса и могут использоваться для возобновления прерванных сеансов. Терминальный сервер также должен управлять этими каталогами. Терминальные серверы также могут использоваться в кластере . [6]

В Windows Server 2008 он был значительно переработан. При входе в систему, если пользователь вошел в локальную систему с помощью учетной записи домена Windows Server , учетные данные из того же входа могут использоваться для аутентификации удаленного сеанса. Однако для этого требуется, чтобы Windows Server 2008 была ОС сервера терминалов, в то время как клиентская ОС ограничена Windows Server 2008, Windows Vista и Windows 7. Кроме того, сервер терминалов может быть настроен на разрешение подключения к отдельным программам, а не ко всему рабочему столу, с помощью функции RemoteApp. Веб-доступ к службам терминалов (TS Web Access) делает сеанс RemoteApp вызываемым из веб-браузера . Он включает элемент управления веб-частью TS Web Access, который поддерживает список развернутых на сервере удаленных приложений RemoteApp и поддерживает его в актуальном состоянии. Сервер терминалов также может интегрироваться с диспетчером системных ресурсов Windows для регулирования использования ресурсов удаленными приложениями. [4]

Terminal Server управляется оснасткой Terminal Server Manager Microsoft Management Console . Его можно использовать для настройки требований входа, а также для принудительного использования одного экземпляра удаленного сеанса. Его также можно настроить с помощью групповой политики или инструментария управления Windows . Однако он недоступен в клиентских версиях ОС Windows, где сервер предварительно настроен на разрешение только одного сеанса и принудительное использование прав учетной записи пользователя в удаленном сеансе без какой-либо настройки. [6]

Шлюз удаленного рабочего стола

Компонент службы Remote Desktop Gateway , также известный как RD Gateway , может туннелировать сеанс RDP с использованием канала HTTPS . [17] Это повышает безопасность RDS за счет инкапсуляции сеанса с помощью Transport Layer Security (TLS). [18] Это также позволяет использовать Internet Explorer в качестве клиента RDP. Официальный клиент MS RDP для macOS поддерживает RD Gateway, начиная с версии 8. Он также доступен для iOS и Android.

Эта функция была представлена ​​в продуктах Windows Server 2008 и Windows Home Server .

В октябре 2021 года компания Thincast, основной участник проекта FreeRDP, опубликовала первое решение Remote Desktop Gateway, работающее на Linux. [19]

Роли

Шлюз удаленного рабочего стола
Позволяет авторизованным пользователям подключаться к виртуальным рабочим столам, программам Remote-App и сеансовым рабочим столам через частную сеть или Интернет.
Роль посредника подключений к удаленному рабочему столу
Позволяет пользователям повторно подключаться к существующим виртуальным рабочим столам, программам RemoteApp и рабочим столам на основе сеансов. Позволяет равномерно распределять нагрузку по серверам RD Session Host в коллекции сеансов или по объединенным виртуальным рабочим столам в объединенной коллекции виртуальных рабочих столов и обеспечивает доступ к виртуальным рабочим столам в коллекции виртуальных рабочих столов.
Хост сеанса удаленного рабочего стола
Позволяет серверу размещать программы RemoteApp в качестве сеансовых рабочих столов. Пользователи могут подключаться к серверам RD Session Host в коллекции сеансов для запуска программ, сохранения файлов и использования ресурсов на этих серверах. Пользователи могут получать доступ к серверу Remote Desktop Session Host с помощью клиента Remote Desktop Connection или с помощью программ RemoteApp.
Узел виртуализации удаленного рабочего стола
Позволяет пользователям подключаться к виртуальным рабочим столам с помощью RemoteApp и Desktop Connection.
Веб-доступ к удаленному рабочему столу
Позволяет пользователям получать доступ к RemoteApp и Desktop Connection через меню «Пуск» или через веб-браузер. RemoteApp и Desktop Connection предоставляет пользователям настраиваемый вид программ RemoteApp, сеансовых рабочих столов и виртуальных рабочих столов.
Лицензирование удаленного рабочего стола
Позволяет серверу управлять лицензиями клиентского доступа RDS (RDS CAL), которые требуются для каждого устройства или пользователя для подключения к серверу Remote Desktop Session Host. RDS CAL управляются с помощью приложения Remote Desktop Licensing Manager. [20]

RemoteApp

RemoteApp (или TS RemoteApp ) — это специальный режим RDS, доступный в Windows Server 2008 R2 и более поздних версиях, в котором конфигурация удаленного сеанса интегрирована в клиентскую операционную систему. Клиент RDP 6.1 поставляется с Windows XP SP3, KB952155 для пользователей Windows XP SP2, [21] Windows Vista SP1 и Windows Server 2008. Пользовательский интерфейс для RemoteApp отображается в окне поверх локального рабочего стола и управляется так же, как и любое другое окно для локальных приложений. Конечным результатом этого является то, что удаленные приложения ведут себя во многом как локальные приложения. Задача установления удаленного сеанса, а также перенаправления локальных ресурсов в удаленное приложение прозрачна для конечного пользователя. [22] Несколько приложений могут быть запущены в одном сеансе RemoteApp, каждое со своими собственными окнами. [23]

RemoteApp может быть упакован как .rdpфайл или распространяться через пакет .msi установщика Windows . При упаковке в виде .rdpфайла (который содержит адрес сервера RemoteApp, схемы аутентификации, которые будут использоваться, и другие параметры) RemoteApp может быть запущен двойным щелчком по файлу. Он вызовет клиент Remote Desktop Connection, который подключится к серверу и отобразит пользовательский интерфейс. RemoteApp также может быть упакован в базу данных установщика Windows , установка которой может зарегистрировать RemoteApp в меню «Пуск», а также создать ярлыки для его запуска. RemoteApp также может быть зарегистрирован как обработчик для типов файлов или URI. Открытие файла, зарегистрированного с помощью RemoteApp, сначала вызовет Remote Desktop Connection, который подключится к терминальному серверу, а затем откроет файл. Любое приложение, к которому можно получить доступ через удаленный рабочий стол, может обслуживаться как RemoteApp. [22]

Windows 7 включает встроенную поддержку публикации RemoteApp, но ее необходимо включить вручную в реестре, поскольку в клиентских версиях Microsoft Windows отсутствует консоль управления RemoteApp. [24]

Общий доступ к рабочему столу Windows

В Windows Vista и более поздних версиях Terminal Services также включает возможность совместного использования рабочего стола несколькими участниками, известную как Windows Desktop Sharing . В отличие от Terminal Services, которая создает новый сеанс пользователя для каждого подключения RDP, Windows Desktop Sharing может размещать удаленный сеанс в контексте текущего вошедшего в систему пользователя без создания нового сеанса и делать рабочий стол или его подмножество доступным через RDP. [25] Windows Desktop Sharing может использоваться для совместного использования всего рабочего стола, определенной области или определенного приложения. [26] Windows Desktop Sharing также может использоваться для совместного использования рабочих столов с несколькими мониторами. При совместном использовании приложений по отдельности (а не всего рабочего стола) окна управляются (независимо от того, свернуты они или развернуты) независимо на стороне сервера и клиента. [26]

Функциональность предоставляется только через общедоступный API , который может использоваться любым приложением для предоставления функциональности общего доступа к экрану. API общего доступа к рабочему столу Windows предоставляет два объекта: RDPSessionдля сеанса общего доступа и RDPViewerдля зрителя. Для одного объекта сеанса можно создать несколько объектов зрителя. Зритель может быть либо пассивным зрителем, который может просто смотреть приложение как скринкаст , либо интерактивным зрителем, который может взаимодействовать в реальном времени с удаленным приложением. [25] Объект RDPSessionсодержит все общие приложения, представленные в виде Applicationобъектов, каждое из которых имеет Windowобъекты, представляющие их экранные окна. Фильтры для каждого приложения захватывают окна приложения и упаковывают их как Windowобъекты. [27] Зритель должен аутентифицировать себя, прежде чем он сможет подключиться к сеансу общего доступа. Это делается путем создания Invitationс помощью RDPSession. Он содержит билет аутентификации и пароль. Объект сериализуется и отправляется зрителям, которым необходимо предоставить Invitationпри подключении. [25] [27]

API общего доступа к рабочему столу Windows используется Windows Meeting Space и Windows Remote Assistance для предоставления функциональности общего доступа к приложениям между сетевыми партнерами . [26]

Аутентификация на уровне сети

Аутентификация на уровне сети ( NLA ) — это функция RDP-сервера или подключения к удаленному рабочему столу (RDP-клиента), которая требует от подключающегося пользователя пройти аутентификацию перед установлением сеанса с сервером.

Первоначально, если пользователь открывал сеанс RDP (удаленный рабочий стол) на сервере, он загружал экран входа с сервера для пользователя. Это использовало ресурсы на сервере и было потенциальной областью для атак типа «отказ в обслуживании» , а также атак удаленного выполнения кода (см. BlueKeep ). Аутентификация на уровне сети делегирует учетные данные пользователя от клиента через поставщика поддержки безопасности на стороне клиента и предлагает пользователю пройти аутентификацию перед установлением сеанса на сервере.

Проверка подлинности на уровне сети была введена в RDP 6.0 и изначально поддерживалась в Windows Vista . Она использует нового поставщика поддержки безопасности CredSSP, который доступен через SSPI в Windows Vista. С Windows XP Service Pack 3 CredSSP был введен на этой платформе, а включенный клиент RDP 6.1 поддерживает NLA; однако сначала CredSSP необходимо включить в реестре. [28] [29]

Преимущества

Преимущества аутентификации на уровне сети:

Недостатки

Клиентское программное обеспечение

Remote Desktop Connection — основной клиент для Remote Desktop Services. RDC представляет интерфейс рабочего стола (или графический интерфейс приложения) удаленной системы, как если бы к нему осуществлялся локальный доступ. [32] Microsoft Remote Desktop был создан в 2012 году корпорацией Microsoft как клиент с сенсорным интерфейсом. Кроме того, существует несколько клиентов, не принадлежащих Microsoft .

Смотрите также

Ссылки

  1. ^ "Обзор служб удаленных рабочих столов Windows" . Получено 2010-11-18 .
  2. ^ QuinnRadich (19 августа 2020 г.). «Сеансы удаленного рабочего стола — приложения Win32». docs.microsoft.com . Получено 09.07.2022 .
  3. ^ ab "Подключение к удаленному рабочему столу". PC World . IDG . 17 августа 2011 г.
  4. ^ ab "Что нового в службах терминалов в Windows Server 2008" . Получено 2007-07-23 .
  5. ^ ab Russel, Charlie; Zacker, Craig (2009). "4: Remote Desktop Services and VDI: Centralizing Desktop and Application Management" (PDF) . Знакомство с Windows Server 2008 R2 . Redmond, WA : Microsoft Press . Архивировано из оригинала (PDF) 29 августа 2017 г. . Получено 11 января 2014 г. .
  6. ^ abcde "Технический обзор служб терминалов в Windows Server 2003". Microsoft . Архивировано из оригинала 2003-01-26 . Получено 2007-07-23 .
  7. ^ "Как изменить порт прослушивания для удаленного рабочего стола" . Получено 2010-11-18 .
  8. ^ "Часто задаваемые вопросы об удаленном рабочем столе". Microsoft . Получено 2007-07-23 .
  9. ^ ab Руссинович, Марк ; Соломон, Дэвид А.; Ионеску, Алекс (2012). Windows Internals (6-е изд.). Редмонд, Вашингтон : Microsoft Press . С. 20–21. ISBN 978-0-7356-4873-9.
  10. ^ "Архитектура быстрого переключения пользователей". Поддержка . Microsoft . 15 января 2006 г. Получено 11 января 2014 г.
  11. ^ "Удаленные услуги". Войти 123 .
  12. ^ "Citrix и Microsoft подписывают соглашение о технологическом сотрудничестве и лицензировании". Citrix . 21.12.2004. Архивировано из оригинала 05.07.2011 . Получено 13.04.2012 .
  13. ^ "Как работают службы терминалов". Microsoft. 2003-03-28 . Получено 2007-07-23 .
  14. ^ «Настройка аутентификации и шифрования: службы терминалов». 8 октября 2009 г.
  15. ^ "Конфигурация подключения на терминальном сервере". Поддержка (ред. 5.0). Microsoft . 22 июня 2014 г.
  16. ^ «Отображается неверный TLS — Windows Server». 5 июня 2024 г.
  17. ^ "Шлюз служб терминалов (TS Gateway)". Microsoft TechNet . Получено 2009-09-10 .
  18. ^ "Протокол удаленного рабочего стола". Microsoft Developer Network (MSDN) . Получено 2009-09-10 .
  19. ^ "RD Gateway Documentation". Thincast . Получено 2021-10-17 .
  20. ^ TechNet: Лицензирование удаленного рабочего стола
  21. ^ "Описание обновления клиента Remote Desktop Connection 6.1 для служб терминалов в Windows XP Service Pack 2" . Получено 2010-11-18 .
  22. ^ ab "Terminal Services RemoteApp (TS RemoteApp)" . Получено 2007-07-23 .
  23. ^ "Логика завершения сеанса RemoteApp служб терминалов" . Получено 2007-10-02 .
  24. ^ "Как включить RemoteApp (через RDP 7.0) в VirtualBox или VMWare под управлением Windows 7, Vista SP1+ или Windows XP SP3" . Получено 18.11.2010 .
  25. ^ abc "Windows Desktop Sharing" . Получено 2007-10-11 .
  26. ^ abc "Windows Desktop Sharing API" . Получено 2007-10-11 .
  27. ^ ab "О совместном доступе к рабочему столу Windows" . Получено 2007-10-11 .
  28. ^ "Описание поставщика поддержки безопасности учетных данных (CredSSP) в Windows XP Service Pack 3". Архивировано из оригинала 2017-09-18.
  29. ^ «Описание обновления клиента Remote Desktop Connection 6.1 для служб терминалов». Microsoft . 2011-09-23 . Получено 2020-05-07 .
  30. ^ Саймон Поуп (2019-05-14). «Предотвратите появление червя, обновив службы удаленных рабочих столов (CVE-2019-0708)». Центр реагирования на безопасность Microsoft . Получено 2020-05-07 .
  31. ^ «Настройка проверки подлинности на уровне сети для подключений к службам удаленных рабочих столов». Microsoft TechNet . 2009-11-17 . Получено 2020-05-07 .
  32. ^ "Технический обзор служб терминалов в Windows Server 2003". Microsoft . Архивировано из оригинала 2003-01-26 . Получено 2007-07-23 .

Внешние ссылки