Разное

Rdp сессия – Remote desktop protocol — Википедия

16.03.2019

Содержание

Протокол Remote Desktop. Архитектура и возможности

Протокол Remote Desktop. Архитектура и возможности

Данная статья открывает цикл статей, посвященных устройству и безопасности протокола RDP. В первой статье этого цикла анализируется устройство, использование и основные технологии, заложенные в данный протокол.

Автор: Сергей Рублев
Эксперт по информационной безопасности «Positive Technologies»

Данная статья открывает цикл статей, посвященных устройству и безопасности протокола RDP. В первой статье этого цикла анализируется устройство, использование и основные технологии, заложенные в данный протокол.

В следующих статьях будут подробно рассмотрены следующие вопросы:

  • Работа подсистемы безопасности Remote Desktop
  • Формат обмена служебной информацией в RDP
  • Уязвимые места сервера терминалов и пути их устранения
  • Подбор учетных записей пользователей по RDP протоколу (разработки компании Positive Technologies в данной области)

 

Протокол Remote Desktop создан компанией Microsoft для обеспечения удаленного доступа к серверам и рабочим станциям Windows. Протокол RDP рассчитан на использование ресурсов высокопроизводительного сервера терминалов многими менее производительными рабочими станциями. Впервые сервер терминалов (версия 4.0) появился в 1998 году в составе Windows NT 4.0 Terminal Server, на момент написания статьи (январь 2009 года) последней версией терминального сервера является версия 6.1, включенная в дистрибутивы Windows 2008 Server и Windows Vista SP1. В настоящее время RDP является основным протоколом удаленного доступа для систем семейства Windows, а клиентские приложения существуют как для OC от Microsoft, так и для Linux, FreeBSD, MAC OS X и др.

Говоря об истории появления RDP, нельзя не упомянуть компанию Citrix. Citrix Systems в 1990-х годах специализировалась на многопользовательских системах и технологиях удаленного доступа. После приобретения лицензии на исходные коды Windows NT 3.51 в 1995 году эта компания выпустила многопользовательскую версию Windows NT, известную как WinFrame. В 1997 году Citrix Systems и Microsoft заключили договор, по которому многопользовательская среда Windows NT 4.0 базировалась на технологических разработках Citrix. В свою очередь Citrix Systems отказалась от распространения полноценной операционной системы и получала право на разработку и реализацию расширений для продуктов Microsoft. Данные расширения изначально назывались MetaFrame. Права на ICA (Independent Computing Architecture), прикладной протокол взаимодействия тонких клиентов с сервером приложений Citrix, остались за Citrix Systems, а протокол Microsoft RDP строился на базе ITU T.120.

В настоящее время основная конкурентная борьба между Citrix и Microsoft разгорелась в области серверов приложений для малого и среднего бизнеса. Традиционно решения на базе Terminal Services выигрывают в системах с не очень большим количеством однотипных серверов и схожих конфигураций, в то время как Citrix Systems прочно обосновалась на рынке сложных и высокопроизводительных систем. Конкуренция подогревается выпуском облегченных решений для небольших систем компанией Citrix и постоянным расширением функционала Terminal Services со стороны Microsoft. [11]

Рассмотрим преимущества этих решений.

Сильные стороны Terminal Services:

  • Простота установки приложений для клиентской части сервера приложений
  • Централизованное обслуживание сессий пользователя
  • Необходимость наличия лицензии только на Terminal Services

Сильные стороны решений Citrix:

  • Простота масштабирования
  • Удобство администрирования и мониторинга
  • Политика разграничение доступа
  • Поддержка корпоративных продуктов сторонних разработчиков (IBM WebSphere, BEA WebLogic)

Microsoft предполагает два режима использования протокола RDP:

  • для администрирования (Remote administration mode)
  • для доступа к серверу приложений (Terminal Server mode)

RDP в режиме администрирования

Данный вид соединения используется всеми современными операционными системами Microsoft. Серверные версии Windows поддерживают одновременно два удаленных подключения и один локальный вход в систему, в то время как клиентские — только один вход (локальный или удаленный). Для разрешения удаленных подключений требуется включить удаленный доступ к рабочему столу в свойствах рабочей станции. [5]

RDP в режиме доступа к серверу терминалов

Данный режим доступен только в серверных версиях Windows. Количество удаленных подключений в данном случае не лимитируется, но требуется настройка сервера лицензий (License server) и его последующая активация. Сервер лицензий может быть установлен как на сервер терминалов, так и на отдельный сетевой узел. Возможность удаленного доступа к серверу терминалов открывается только после установки соответствующих лицензий на License server.

При использовании кластера терминальных серверов и балансировки нагрузки требуется установка специализированного сервера подключений (Session Directory Service). Данный сервер индексирует пользовательские сессии, что позволяет выполнять вход, а также повторный вход на терминальные серверы, работающие в распределенной среде. [5]

Remote Desktop является прикладным протоколом, базирующимся на TCP. После установки соединения на транспортном уровне инициализируется RDP- сессия, в рамках которой согласуются различные параметры передачи данных. После успешного завершения фазы инициализации сервер терминалов начинает передавать клиенту графический вывод и ожидает входные данные от клавиатуры и мыши. В качестве графического вывода может выступать как точная копия графического экрана, передаваемая как изображение, так и команды на отрисовку графических примитивов ( прямоугольник, линия, эллипс, текст и др.). Передача вывода с помощью примитивов является приоритетной для протокола RDP, так как значительно экономит трафик; а изображение передается лишь в том случае, если иное невозможно по каким-либо причинам (не удалось согласовать параметры передачи примитивов при установке RDP -сессии). RDP- клиент обрабатывает полученные команды и выводит изображения с помощью своей графической подсистемы. Пользовательский ввод по умолчанию передается при помощи скан-кодов клавиатуры. Сигнал нажатия и отпускания клавиши передается отдельно при помощи специального флага. [1][2]

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

  • использование принтера или последовательного порта
  • перенаправление файловой системы
  • поддержка работы с буфером обмена
  • использование аудио- подсистемы

Характеристики виртуальных каналов согласуются на этапе установки соединения.

Обеспечение безопасности при использовании RDP

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

  • Standard RDP Security (встроенная подсистема безопасности)
  • Enhanced RDP Security (внешняя подсистема безопасности)

При данном подходе аутентификация, шифрование и обеспечение целостности реализуется средствами, заложенными в RDP- протокол. [1]

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

Аутентификация сервера выполняется следующим образом:

  1. При старте системы генерируется пара RSA- ключей
  2. Создается сертификат (Proprietary Certificate) открытого ключа
  3. Сертификат подписывается RSA- ключом, зашитым в операционную систему (любой RDP -клиент содержит открытый ключ данного встроенного RSA- ключа). [12]
  4. Клиент подключается к серверу терминалов и получает Proprietary Certificate
  5. Клиент проверяет сертификат и получает открытый ключ сервера (данный ключ используется в дальнейшем для согласования параметров шифрования)

Аутентификация клиента проводится при вводе имени пользователя и пароля.

Шифрование

В качестве алгоритма шифрования выбран потоковый шифр RC4. В зависимости от версии операционной системы доступны различные длины ключа от 40 до 168 бит.

Максимальная длина ключа для операционных систем Winodws:

  • Windows 2000 Server – 56 бит
  • Windows XP, Windows 2003 Server – 128 бит
  • Windows Vista, Windows 2008 Server – 168 бит

При установке соединения после согласования длины генерируется два различных ключа: для шифрования данных от клиента и от сервера.

Целостность

Целостность сообщения достигается применением алгоритма генерации MAC (Message Authentication Code) на базе алгоритмов MD5 и SHA1.

Начиная с Windows 2003 Server, для обеспечения совместимости с требованиями стандарта FIPS (Federal Information Processing Standard) 140-1 возможно использование алгоритма 3DES для шифрования сообщений и алгоритма генерации MAC, использующего только SHA1, для обеспечения целостности. [15]

В данном подходе используются внешние модули обеспечения безопасности:

Протокол TLS можно использовать, начиная с версии Windows 2003 Server, но только если его поддерживает RDP- клиент. Поддержка TLS добавлена, начиная с RDP -клиента версии 6.0.

При использовании TLS сертификат сервера можно генерировать средствами Terminal Sercives или выбирать существующий сертификат из хранилища Windows. [13][16]

Протокол CredSSP представляет собой совмещение функционала TLS, Kerberos и NTLM.

Рассмотрим основные достоинства протокола CredSSP:

  • Проверка разрешения на вход в удаленную систему до установки полноценного RDP- соединения, что позволяет экономить ресурсы сервера терминалов при большом количестве подключений
  • Надежная аутентификация и шифрование по протоколу TLS
  • Использование однократного входа в систему (Single Sign On ) при помощи Kerberos или NTLM

Возможности CredSSP можно использовать только в операционных системах Windows Vista и Windows 2008 Server. Данный протокол включается флагом Use Network Level Authentication в настройках сервера терминалов (Windows 2008 Server) или в настройках удаленного доступа (Windows Vista). [14]

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

Постоянные клиентские лицензии могут быть установлены на сервер только после прохождения процедуры активации, до ее прохождения возможна выдача временных лицензий, лимитированных по сроку действия. После прохождения активации серверу лицензий предоставляется цифровой сертификат, подтверждающий его принадлежность и подлинность. Используя этот сертификат, сервер лицензий может осуществлять последующие транзакции с базой данных Microsoft Clearinghouse и принимать постоянные клиентские лицензии для сервера терминалов. [6]

Виды клиентских лицензий:

  • временная лицензия  (Temporary Terminal Server CAL)
  • лицензия «на устройство» (Device Terminal Server CAL)
  • лицензия «на пользователя» (User Terminal Server CAL)
  • лицензия для внешних пользователей (External Terminal Server Connector)

Временная лицензия

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

Лицензия «на устройство»

Эта лицензия выдается для каждого физического устройства, подключающегося к серверу приложения. Срок действия лицензии устанавливается случайным образом в промежутке от 52 до 89 дней. За 7 дней до окончания срока действия сервер терминалов пытается обновить лицензию с сервера лицензий при каждом новом подключении клиента.

Лицензия «на пользователя»

Лицензирование «на пользователя» обеспечивает дополнительную гибкость, позволяя пользователям подключаться с различных устройств. В текущей реализации Terminal Services нет средств контроля использования пользовательские лицензий, т.е. количество доступных лицензий на сервере лицензий не уменьшается при подключении новых пользователей. Использование недостаточного количества лицензий для клиентских подключений нарушает лицензионное соглашение с компанией Microsoft. Чтобы одновременно использовать на одном сервере терминалов клиентские лицензии для устройств и для пользователей, сервер должен быть настроен для работы в режиме лицензирования «на пользователя».

Лицензия для внешних пользователей

Это специальный вид лицензии, предназначенный для подключения внешних пользователей к корпоративному серверу терминалов. Данная лицензия не налагает ограничений на количество подключений, однако, согласно пользовательскому соглашению (EULA), сервер терминалов для внешних подключений должен быть выделенным, что не допускает его использования для обслуживания сессий от корпоративных пользователей. Из-за высокой цены данный вид лицензии не получил широкого распространения.

Для сервера лицензий может быть установлена одна из двух ролей:

  • Сервер лицензий для домена или рабочей группы (Domain or Workgroup License server)
  • Сервер лицензий предприятия (Entire Enterprise License Server)

Роли отличаются способом обнаружения сервера лицензий: при использовании роли Enterprise терминальный сервер выполняет поиск сервера лицензии по каталогу ActiveDirectory, в противном случае поиск выполняется при помощи широковещательного NetBIOS- запроса. Каждый найденный сервер проверяется на корректность при помощи RPC -запроса. [8][9]

Решения для серверов приложений активно продвигаются компанией Microsoft, расширяется функционал, вводятся дополнительные модули. Наибольшее развитие получили технологии, упрощающие установку приложений и компоненты, отвечающие за работу сервера терминалов в глобальных сетях. [5]

В Terminal Services для Windows 2008 Server введены следующие возможности:

  • Terminal Services Printing – позволяет использовать принтер клиента для печати из приложений на сервере терминалов.
  • Terminal Services RemoteApp – обеспечивает доступ к любым приложениям через службу терминалов. Для пользователя в данном случае сервер терминалов становится совершенно прозрачным.
  • Terminal Services Web Access – позволяет клиентам подключаться к приложениям RemoteApp при помощи обычного браузера. В роли связующего звена для RemoteApp выступает Web -сервер.
  • Terminal Services Gateway – данная технология организует работу RDP поверх установленного HTTPS- соединения. TS Gateway дает возможность удаленным пользователям подключаться к серверу приложений через региональные сети или Internet с использованием безопасного SSL- туннеля и с минимальной настройкой сетевых устройств.
  • Terminal Services Session Broker – позволяет организовывать подключения пользователей к серверным платформам, использующим балансировку сетевой нагрузки.
  1. Спецификация Microsoft на основные функции RDP
    http://msdn.microsoft.com/en-us/library/cc240445(PROT.10).aspx
  2. Спецификация Microsoft на графические расширения RDP
    http://msdn.microsoft.com/en-us/library/cc241537(PROT.10).aspx
  3. Страничка википедии, посвященная Citrix Systems
    http://en.wikipedia.org/wiki/Citrix_Systems
  4. Вопросы по установке клиентских лицензий
    http://support.microsoft.com/kb/822134/ru
  5. Принцип работы сервера терминалов
    http://technet.microsoft.com/en-us/library/cc755399.aspx
  6. Инструкции по лицензированию Terminal Services
    http://technet.microsoft.com/ru-ru/library/cc787247.aspx
  7. Компоненты, введенные в Terminal Services под управлением Windows 2008 Server
    http://technet.microsoft.com/en-us/library/cc733093.aspx
  8. Описание процесса получения клиентских лицензий (часть 1)
    http://www.msterminalservices.org/articles/Terminal-Services-CAL-Allocation-Process-Part1.html
  9. Описание процесса получения клиентских лицензий (часть 2)
    http://www.msterminalservices.org/articles/Terminal-Services-CAL-Allocation-Process-Part2.html
  10. Полное руководство по терминальным службам Windows Server 2003
    http://citrix.pp.ru/ts2003/index.html
  11. Анализ функциональности, выполненный компанией Citrix Systems
    http://www.citrix.com/%2Fsite%2Fresources%2Fdynamic%2Fsalesdocs%2FCitrix-XenApp5-Terminal-Services-2003-2008-Feature-Analysis.pdf
  12. Исследования на тему RDP- ключей
    http://www.oxid.it/downloads/rdp-gbu.pdf
  13. Настройка SSL в Terminal Services
    http://technet.microsoft.com/en-us/library/cc782610.aspxt
  14. Спецификация протокола CredSSP
    http://download.microsoft.com/download/9/5/E/95EF66AF-9026-4BB0-A41D-A4F81802D92C/%5BMS-CSSP%5D.pdf
  15. Стандарт FIPS 140-1
    http://csrc.nist.gov/publications/fips/fips1401.htm
  16. Спецификация TLS 1.0
    http://www.ietf.org/rfc/rfc2246.txt

Об авторе:
Сергей Рублев закончил МГТУ им. Баумана. Эксперт в области криптографии и протоколов защищенного обмена данными. В компании Positive Technologies специализируется на анилизе уязвимостей в сетевых службах и разработке расширений к сканерам XSpider и MaxPatrol 8.

www.securitylab.ru

Защищаем и оптимизируем RDP

Привет.

Вчера, общаясь с Иваном Никитиным, получил дельный совет осветить работу и настройку протокола RDP. Мысль дельная, дальше – подробнее.

Введение

Протокол RDP – удобное, эффективное и практичное средство для удалённого доступа как для целей администрирования, так и для повседневной работы.
Учитывая, что его реализации есть практически везде (различные платформы и ОС), и их много, нужно хорошо представлять его возможности.
По крайней мере, это будет нужно по ряду причин:

  • Зачастую вместо RDP используется другое решение (VNC, Citrix ICA) по простой причине – предполагается, что “встроенный RDP минимальный и ничего не умеет”.
  • Во многих решениях, связанных с модными сейчас облачными технологиями (перевод офисов на “тонкие клиенты”, да и просто организация терминальных серверов), бытует мнение что “RDP плохой потому что встроенный”.
  • Есть стандартный миф про то, что “RDP нельзя без VPN наружу выставлять, ломанут” (миф имеет под собой обоснование, но уже давно не актуален).
  • Ну, раз уж про мифы заговорили – бытует мнение, что “Перейдя с RDP на Citrix трафик в пару раз падает”. Ведь цитрикс – это дорого, следовательно как минимум на 157% круче.

Все эти мифы – ерунда и смесь устаревших “дельных советов”, актуальных во времена NT 4.0, а так же откровенных вымыслов, не имеющих никаких причин к существованию. Так как IT – это точная наука, надо разобраться. Хорошо настроеный протокол RDP новых версий, с учётом всех новых функциональных возможностей, является достаточно хорошим и надёжным инструментом для организации удалённого доступа.

Поэтому мы займёмся:

  • Кратким упоминанием про версии RDP
  • Настройкой режима защиты RDP-сессии
  • Настройкой шифрования для RDP
  • Привязкой к конкретному адаптеру и порту
    • Меняем стандартный порт на нужный
    • Делаем раздельные настройки RDP для нескольких сетевых адаптеров
  • Включением NLA
    • Как включается NLA со стороны RDP-сервера
    • NLA и Windows XP
    • Как включить CredSSP в XP
  • Выбором правильного сертификата для RDP
  • Блокированием подключений по RDP учётным записям с пустым паролем
  • Настройка ACL для подключения по RDP
  • Оптимизацией скорости RDP
    • Отключаем редирект неиспользуемых устройств
    • Настраиваем общую логику оптимизации визуальных данных RDP
  • Оптимизацией сжатия RDP
    • Настраиваем общее сжатие RDP
    • Настраиваем сжатие аудиопотока RDP
  • Оптимизацией соотношения потоков данных RDP
  • Включением Require secure RPC communication для RDP

Приступим.

Версии протокола RDP

Протокол имеет достаточно длительную историю, начиная с NT 4.0. Исторические детали мы оставим в стороне по простой причине – на данный момент имеет смысл говорить только про версию RDP 7.0, которая есть в Windows Vista SP1 / Windows Server 2008 и бесплатно добавляема в Windows XP установкой SP3 и обновлённого клиента RDP (находится по ссылке на KB 969084). Я предполагаю, что у Вас как минимум Windows XP, и что Вы поставили/можете поставить последний Service Pack и не трачу Ваше время на обсуждение преимуществ RDP в Windows 2000 SP2 перед NT 4.0 SP5.

Настройка режима защиты RDP-сессии

В принципе, это самая простая часть задачи. Суть в следующем. В различных версиях RDP применяется два основных механизма защиты сессии – встроенный в RDP и “заворачивание” сессии в TLS. Встроенный является недостаточно безопасным, и рекомендация “RDP можно наружу только в VPN” – про него. Поэтому всегда включайте поддержку TLS. Это тот минимум, с которого Вы должны начать. Ограничениями будут разве что версия сервера не ниже Windows Server 2003 SP1 и клиент RDP 5.2 и выше, но, думается, это в конце 2011 года вполне решаемо.

Как включить RDP over TLS

Вариантов, как всегда, несколько. Первый – включение через групповую политику. Для этого надо зайти в целевой объект групповой политики (ну или локально на своей домашней рабочей станции запустить gpedit.msc) и там последовательно выбрать “Computer Configuration” -> “Administrative Templates” -> “Windows Components” -> “Remote Desktop Session Host” -> “Security” и там включить параметр Require use of specific security layer for remote connections, выбрав в нём SSL (TLS 1.0) only. Можно выбрать и более мягкий Negotiate, но я бы не рекомендовал, т.к. на данный момент это банально ниже приемлемого уровня безопасности. Как человек, создававший private cloud’ы с достаточно высоким уровнем безопасности, я могу сказать, что смысл выносить особо ценные данные в датацентр под Лондоном и ходить туда дефолтным RDP – нулевой и является поиском неприятностей.

Можно и проще – откройте оснастку Remote Desktop Session Host Configuration (найдёте в mmc или готовую в меню Administrative Tools -> Remote Desktop Connections), выберите из списка Connections нужное подключение (обычно оно одно и называется RDP-Tcp), и откройте Properties, после – вкладку General и там выбрать нужный Security Layer.

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

Настраиваем шифрование для RDP

Для конфигурирования будет доступно 4 варианта шифрования. Рассмотрим каждый из них.

Режим RDP Low Encryption

Самый “никакой” режим. Наследие страшных времён и версий RDP 5.x. Может согласовать шифрование на базе 56ти битового DES или 40ка битового RC2, что на текущий момент является несерьёзным. Не нужен и опасен. Например, если включить его, то не включится TLS, т.к. TLS уже откажется согласовывать такие слабые шифры, которые предлагает этот вариант.

Режим RDP Client Compatible Encryption

Второй “никакой” режим. Наследие страшных времён и версий RDP 5.x. Попробует до 128 бит RC4, но сразу согласится на DES/RC2. Не нужен и опасен. Тоже не совместим с TLS.

Режим RDP High Encryption

Минимально допустимый режим. Потребует хотя бы 128ми битовый RC4. Работает со всеми серверами, начиная с Windows 2000 Server w/HEP.

Режим RDP FIPS140-1 Encryption

То, что нужно. Будет поддерживать современные симметричные алгоритмы и в явном виде не будет поддерживать RC2, RC4, одиночный DES, а также будет заставлять использовать для вычисления целостности (Message Authentication Code – MAC) алгоритм SHA-1, а не MD5. Включайте этот вариант всегда, найти сервер, который не умеет 3DES, AES или SHA-1 практически нереально.

Где делается эта настройка? Откройте оснастку Remote Desktop Session Host Configuration (найдёте в mmc или готовую в меню Administrative Tools -> Remote Desktop Connections), выберите из списка Connections нужное подключение (обычно оно одно и называется RDP-Tcp), и откройте Properties, после – вкладку General и там выберите нужный Encryption Level.

Привязываем RDP к конкретному адаптеру и порту

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

Как привязать службу RDP к конкретному сетевому адаптеру или сделать несколько RDP с разными настройками для разных адаптеров

Откройте оснастку Remote Desktop Session Host Configuration (найдёте в mmc или готовую в меню Administrative Tools -> Remote Desktop Connections), выберите из списка Connections нужное подключение (обычно оно одно и называется RDP-Tcp), и откройте Properties, после – вкладку Network Interfaces. В ней Вы сможете выбрать один конкретный интерфейс, на котором надо ожидать подключения, плюс ограничить количество параллельных сессий.

Если у Вас много интерфейсов, и Вам надо, допустим, чтобы можно было подключаться через 2 из 5 доступных, то Вам надо будет привязать существующий по-умолчанию RDP-Tcp к одному адаптеру, после зайти в меню Action и там выбрать Create New Connection. Подключение может слушать либо на всех интерфейсах, либо на одном, и в случае, когда надо, чтобы оно слушало на N интерфейсах, придётся создать N подключений.

Соответственно, если у Вас есть задача “Чтобы на одном интерфейсе RDP слушал на одном порту, а на другом – на другом”, она решаема так же – отвязываете дефолтный RDP-Tcp от всех адаптеров и привязываете к конкретному, после – создаёте новое RDP-подключение и тоже привязываете к нужному сетевому интерфейсу.

Как привязать службу RDP к не-дефолтному порту

Порт по умолчанию – 3389 TCP. Кстати, не забудьте разрешить его в пакетном фильтре. Ну а если хотите другой – надо зайти в ключ реестра

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

и поправить в нём значение PortNumber. Учитывайте, что отслеживание конфликтов в плане занятости портов – на Вашей совести, сам он, обнаружив, что назначенный Вами порт занят, “перепрыгнуть” никуда не сможет.

Включаем NLA – Network Level Authentication

Функция NLA появляется в NT 6.0, а позже добавляется возможность её частичного использования в предыдущей версии ОС путём установки SP3 для XP.
Суть данной функции достаточно проста. В версиях RDP до 6.0 при подключении по RDP клиенту до аутентификации надо показать окно входа – т.е. вначале показать, а потом уже он попробует зайти в систему. Это создаёт простую уязвимость – сервер можно перегрузить пачкой запросов “а дай-ка мне попробовать новую сессию начать”, и он будет вынужден на все запросы отвечать созданием сессии и ожиданием входа пользователя. Фактически, это возможность DoS. Как с этим можно бороться? Логично, что надо придумать схему, целью которой будет как можно раньше запросить у клиента учётные данные. Оптимально – чтобы было что-то типа как kerberos в домене. Это и было сделано. NLA решает две задачи:

  • Клиент аутентифицируется до инициации терминальной сессии.
  • Появляется возможность передать данные локального клиентского SSP на сервер, т.е. начинает работать Single Sign-On.

Реализуется это через новый провайдер безопасности – CredSSP. Почитать его техническую спецификацию можно тут, ну, а говоря проще, надо всегда включать данную функцию. Конечно, учитывая, что для её работы нужно, чтобы:

  • Клиентская ОС (та, с которой идёт подключение) была Windows XP SP3 и выше.
  • Серверная ОС (та, к которой будет подключение) была Windows Server 2008 и выше.

Как включается NLA со стороны RDP-сервера

Лучше всего включить NLA на всех серверах через групповую политику. Для этого надо зайти в целевой объект групповой политики и там последовательно выбрать “Computer Configuration” -> “Administrative Templates” -> “Windows Components” -> “Remote Desktop Session Host” -> “Security” и там включить параметр Require user authentication for remote connections by using Network Layer Authentication.

Можно включить и локально. Это делается путём вызова подменю Properties (стандартное подменю у Computer) и выбора там вкладки Remote, в которой будет выбор из трёх вариантов – запрещать подключения по RDP к данному хосту, разрешать подключения по любому RDP, разрешать только с NLA. Всегда включайте вариант с NLA, это в первую очередь защищает сервер.

NLA и Windows XP

В случае, если у Вас Windows XP, то Вы также можете воспользоваться данной функцией. Распространённое утверждение “Для NLA нужна как минимум виста, это Microsoft сделал чтобы апгрейдились” ложно. В Service Pack 3 добавляется реализация CredSSP, позволяющая делегировать клиентские credentials’ы, которыми обладает местный SSP, на сервер. Т.е., говоря проще, это специально сделано, чтобы с Windows XP можно было подключаться на системы с NT 6.0+. На саму Windows XP SP3 с данной функцией подключаться не получится, поддержка NLA будет частичной (поэтому RDP сервер с поддержкой подключения клиентов с использованием NLA из Windows XP сделать штатными способами не получится, Windows XP будет только NLA-совместимым клиентом).

Включать данный функционал нужно в явном виде, так как несмотря на то, что Service Pack 3 добавляет приносит новую dll криптопровайдера, он её не включает.

Как включить CredSSP в XP

Ещё раз – данная операция проводится строго после установки Service Pack 3 на Windows XP и в контексте нашего разговора нужна для того, чтобы было возможно подключение к другим серверам по RDP 6.1 с использованием NLA.

Шаг первый – расширяем перечень Security Packages.
Для этого мы откроем ключ реестра

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa

и найдём в нём значение Security Packages. Нажмём правую кнопку и выберем “Modify” (не Modify Binary Data, а просто Modify). Там будет список вида “название package на каждой строке”. Нам надо добавить туда tspkg. Остальное надо оставить. Место добавления некритично.

Второй шаг – подцепляем библиотеку.
Ключ будет другим:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders

В нём надо будет найти значение SecurityProviders (заметьте, как и в предыдущем случае, это не subkey, а значение), и модифицировать его по аналогии, только добавив credssp.dll. Остальное в списке, опять же, трогать не надо.

Теперь редактор реестра можно закрыть. После этих операций систему надо будет обязательно перезагрузить, т.к. криптопровайдеры – штука такая, которая на ходу точно не подцепится, и это скорее хорошо, чем плохо.

Выбираем правильный сертификат для RDP

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

  • Имя (в subject или SAN), посимвольно совпадающее с тем именем, которое вводит клиент, подключающийся к серверу.
  • Нормальное расширение CDP, указывающее на рабочий CRL (желательно хотя бы на два – OCSP и статический).
  • Желательный размер ключа – 2048 бит. Можно и больше, но помните об ограничениях CAPI2 в XP/2003.
  • Не экспериментируйте с алгоритмами подписи/хэширования, если Вам нужны подключения со стороны XP/2003. Чуть больше информации про это в статье про настройку TLS, но вкратце – выберите SHA-1, этого вполне достаточно.

Чуть подробнее остановлюсь на выпуске специального сертификата для RDP-сервера.

Делаем всё красиво – специальный шаблон сертификата для RDP-серверов

Идеально будет, если сертификат для RDP сделать не на основе обычного шаблона (типа Web Server) и иметь в поле Application Policy (которое в сертификате будет более привычно называться Enchanced Key Usage – EKU) стандартные значения Client Authentication и Server Authentication, а добавить свой шаблон, в котором будет единственное, специальное, не добавляемое стандартными способами значение применения – Remote Desktop Authentication. Это значение Application Policy придётся создать вручную, его OID’ом будет 1.3.6.1.4.1.311.54.1.2, ну а после – уже можно сделать новый шаблон сертификата, на основании которого и выпустить сертификат, адресно “заточеный” под RDP Server.

Чтобы полностью автоматизировать эту операцию, сделайте у нового шаблона предсказуемое название – например, “RDPServerCert” – и зайдите в объект групповой политики, а там откройте Computer Configuration -> Policies -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Security. Выберите параметр Server Authentication Certificate Template и включите его, а в поле значения введите название – мы сделали RDPServerCert. Теперь все доменные хосты, подпадающие под эту политику, будут в случае включения на них RDP сами идти к Certification Authority, запрашивать в случае отсутствия себе сертификат на основе указанного шаблона, и автоматически делать его дефолтным для защиты подключений по RDP. Просто, удобно, эффективно.

Блокируем подключения по RDP учётным записям с пустым паролем

Мелочь, а забывать про неё не нужно.
Для блокировки подключения учёток без паролей к RDP надо зайти в настройку объекта групповой политики: Computer Configuration -> Windows Settings -> Security Settings -> Local Policies -> Security Options и установить “Accounts: Limit local account use of blank passwords to console logon only” в Enabled. Не поленитесь проверить, что это так и есть.

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

По умолчанию для подключения к RDP-серверу необходимо иметь явное разрешение User Access или Guest Access.
Это разрешение есть у локальных групп Administrators и Remote Desktop Users. Лучше всего использовать для управления доступом к RDP-серверу группу Remote Desktop Users, добавляя в неё нужные доменные группы, а не отдельных пользователей. Модицифируйте содержимое вкладки Security в настройках Properties у RDP-Tcp только в крайних случаях, лучше всего – добавляя группу “имя хоста RDP Blocked”, которой явно запрещен доступ по RDP к указанному узлу.

Оптимизация скорости RDP

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

Цветность (битовая глубина)

В RDP 7.0 и выше доступны варианты 32,16 и 8 бит. Если речь идёт о работе, то для неё будет достаточно 16 бит. Это ощутимо снизит нагрузку на канал, притом иногда больше, чем в 2 раза, что удивительно, но факт. 8 бит, конечно, тоже можно, но уж больно страшно оно будет выглядеть. 16 бит же вполне приемлемы.

Включите на сервере параметр Limit Maximum Color Depth, либо сделайте аналогичное действие в настройках RDP client.

Отключите ClearType

Когда у Вас выключен ClearType, протокол RDP передаёт не картинку, а команды по отрисовке символов. Когда включен – рендерит картинку со стороны сервера, сжимает и пересылает клиенту. Это с гарантией в разы менее эффективно, поэтому отключение ClearType значительно ускорит процесс работы и уменьшит время отклика. Сами удивитесь, насколько.

Это можно сделать как на уровне настроек клиента, так и на стороне сервера (параметр Do not allow font smoothing в разделе Remote Session Enviroment в Computer Configuration -> Policies -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host).

Уберите wallpaper

Параметр Enforce removal of RD Wallpaper в разделе Remote Session Enviroment в Computer Configuration -> Policies -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host резко улучшит ситуацию с перерисовкой экрана терминальной сессии. Пользователи без котиков на десктопе выживают нормально, проверено.

Включаем и настраиваем кэширование изображений

Если на клиенте есть достаточно оперативной памяти, то имеет смысл включить и настроить кэширование битмапов. Это позволит выиграть до 20-50% полосы пропускания. Для установки надо будет зайти в ключ

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Terminal Server Client\

и создать там параметры BitmapPersistCacheSize и BitmapCacheSize, оба типа DWORD 32.
Параметр BitmapPersistCacheSize обозначает размер в килобайтах дискового кэша. Значение по умолчанию – 10. Имеет смысл увеличить этот параметр хотя бы до 1000.
Параметр BitmapCacheSize обозначает размер в килобайтах кэша в RAM. Значение по умолчанию – 1500. Имеет смысл увеличить этот параметр хотя бы до 5000. Это будет всего 5 мегабайт на клиентскую сессию, при современных масштабах оперативной памяти это несущественно, и даже если приведёт к выигрышу 10% производительности, уже себя окупит. Кстати, этот же параметр можно поправить и в .rdp-файле; если сохранить своё RDP-подключение, а после открыть файл блокнотом, то среди параметров можно добавить что-то вида bitmapcachesize:i:5000, где 5000 – это 5МБ кэша.

Отключаем Desktop Composition

Desktop Composition привносит всякие “красивости” типа Aero и его друзей и ощутимо кушает полосу пропускания. Для работы это не нужно и вредно. Параметр Allow desktop composition for RDP Sessions в разделе Remote Session Enviroment в Computer Configuration -> Policies -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host необходимо выставить в параметр Disabled.

Оптимизируем параметры Desktop Window Manager

Параметры, находящиеся в разделе Remote Session Enviroment в Computer Configuration -> Policies -> Administrative Templates -> Windows Components -> Desktop Window Manager, будут управлять “красивым” отображением плавно выезжающих меню и подобного. Их три – Do not allow window animations, Do not allow desktop compositions и Do not allow Flip3D invocation. Все их надо переключить в режим Enabled, т.е. по сути – отключить все эти функции.

Отключаем редирект неиспользуемых устройств

Если у Вас не планируется подключение определённых классов устройств (например, COM и LPT-портов), или аудио, имеет смысл отключить возможность их перенаправления со стороны сервера. Чтобы клиенты с дефолтными настройками RDP Client не тратили время подключения на согласование неиспользуемого функционала. Это делается там же, где и остальные настройки сервера, в Properties у RDP-Tcp, вкладка Client Settings (там же, где мы делали настройки с глубиной цвета), раздел Redirection.

Настраиваем общую логику оптимизации визуальных данных RDP

Параметр, называющийся Optimize visual experience for RDP sessions, находящийся в разделе Remote Session Enviroment в Computer Configuration -> Policies -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Remote Session Enviroment, будет управлять тем, как RDP будет воспринимает визуальные данные – как мультимедийные или как текстовые. Это, грубо говоря, “подсказка” алгоритму сжатия, как грамотнее себя вести. Соответственно, для работы надо будет выставить этот параметр в Text, а если хочется много красивых flash-баннеров, HTML5 и просматривать видеоклипы – лучше вариант Rich Multimedia.

Оптимизация сжатия RDP

Сжатие в RDP прошло долгий путь развития. По RDP 5.2 включительно была подсистема сжатия (“компрессор”), имеющий внутреннее название “Version 1” – самый простой и лёгкий вариант с точки зрения загрузки процессора клиента, но самый плохой с точки зрения нагрузки сети трафиком. В RDP 6.0 сделали “Version 2”, который был незначительно, но улучшен по параметру эффективности сжатия. Нам интересен “Version 3”, который работает только при подключении к серверам Windows Server 2008 и старше. Он сжимает лучше всех, а затраты процессорного времени с учётом мощностей современных компьютеров несуществены.

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

Как включить оптимальное сжатие в RDP

Это – клиентская настройка. Откройте в нужном объекте групповой политики Computer Configuration -> Policies -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Remote Session Enviroment, выберите там параметр Set compression algoritm for RDP data, включите его и выберите значение Optimize to use less network bandwidth.

Настройка сжатия звукового потока

RDP 7.0 приносит отличную возможность регулировать качество сжатия входящего звукового потока (т.е. звука, который идёт с сервера на клиента). Это достаточно полезно – например, если идёт работа на терминальном сервере, то кроме всяких служебных звуков вида “пришло сообщение в ICQ” другие особо как не планируются. Нет смысла передавать с сервера несжатый звук CD-качества, если для работы это не нужно. Соответственно, нужно настроить уровень сжатия звукового потока.
Данный параметр будет называться Limit audio playback quality и находиться в разделе Device and Resource Redirection в Computer Configuration -> Policies -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host. Вариантов будет три:

  • High – звук будет идти без сжатия. Вообще. То есть, он будет подпадать под общее сжатие протокола RDP, но специфическое сжатие звука (с потерей качества) производиться не будет.
  • Medium – сжатие будет адаптироваться под канал так, чтобы не увеличивать задержку при передаче данных.
  • Dynamic – сжатие будет динамически адаптироваться под канал так, чтобы задержка не превышала 150ms.

Выберите подходящий. Как понятно, для офисной работы лучше выбрать Dynamic.

Оптимизация соотношения потоков данных в RDP

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

На взаимное соотношение этих потоков и логику его (соотношения) вычисления (этакий локальный QoS) можно влиять. Для этого надо со стороны сервера зайти в ключ реестра

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermDD

и создать там для начала (если их там нет) четыре ключа:

  • FlowControlDisable
  • FlowControlDisplayBandwidth
  • FlowControlChannelBandwidth
  • FlowControlChargePostCompression

Тип у всех – DWORD 32. Функционал у ключей будет следующим.
Ключ FlowControlDisable будет определять, используется ли приоритезация вообще. Если задать единицу, то приоритезация будет выключена, если нуль – включена. Включите её.
Ключи FlowControlDisplayBandwidth и FlowControlChannelBandwidth будут определять взаимное соотношение двух потоков данных:

  • Поток взаимодействия с пользователем (изображение+устройства ввода)
  • Прочие данные (блочные устройства, буфер обмена и всё остальное)

Сами значения этих ключей не критичны; критично то, как они соотносятся. То есть, если Вы сделаете FlowControlDisplayBandwidth равным единице, а FlowControlChannelBandwidth – четырём, то соотношение будет 1:4, и на поток взаимодействия с пользователем будет выделяться 20% полосы пропускания, а на остальное – 80%. Если сделаете 15 и 60 – результат будет идентичным, так как соотношение то же самое.

www.atraining.ru

Настройка лимитов (таймаутов) RDP-сессий на терминальном сервере Windows

В инструкции описан процесс настройки лимитов RDP-сессий с помощью групповых политик на виртуальных серверах с операционной системой семейства Windows Server.

Что это такое?

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

Установка службы

Чтобы установить Службу удаленных рабочих столов, откройте панель управления сервером и нажмите Add roles and features.

Выберете Remote Desktop Services Installation.

Примечание: по умолчанию эта служба не установлена на сервер.

Для того чтобы установить службу на ваш локальный VPS выберете опцию MultiPoint Services.

Выберете ваш сервер из пула и нажмите Next.

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

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

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

Настройка групповых политик

Чтобы выполнить настройку групповых политик необходимо открыть консоль GPMC, это можно сделать с помощью команды gpmc.msc.

Перейдите по следующему пути \Конфигурация компьютера\Политики\Административные шаблоны\Компоненты Windows\Службы удаленных рабочих столов\Узел сеансов удаленных рабочих столов\Ограничение сеансов по времени
(Computer Configuration\Policies\Administrative Templates\Windows Components\Remote Desktop Services\Remote Desktop Session Host\Session Time Limits)

Следующие параметры необходимо перевести в состояние Enabled (Включено):

  • End session when time limits are reached (Завершать сеанс при достижении ограничения по времени) — опция запрещает или разрешает таймауты.
  • Set time limit for active but idle Terminal Services sessions (Задать ограничение по времени для активных, но бездействующих сеансов служб удаленных рабочих столов) — опция задает таймаут для неактивных сеансов.
  • Set time limit for disconnected sessions (Задать ограничение по времени для отключенных сеансов) — опция задает таймаут для завершенных сеансов.

Чтобы изменить состояние опции, выберете нужную и с помощью правой кнопки мыши выберете пункт Edit.

В открывшемся окне выберете Enabled и требуемое время, нажмите Apply.

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

На этом настройка завершена.

 

P. S. Другие инструкции:

Поделиться в соцсетях:

Спасибо за Вашу оценку! К сожалению, проголосовать не получилось. Попробуйте позже

ru

191014 Санкт-Петербург ул. Кирочная, 9

+7(812)313-88-33 235 70 1cloud ltd 2018-12-07 Настройка таймаутов RDP-сессий на сервере Windows

191014 Санкт-Петербург ул. Кирочная, 9

+7(812)313-88-33 235 70 1cloud ltd 2018-12-07 Настройка таймаутов RDP-сессий на сервере Windows 600 auto

1cloud.ru

Несколько одновременных RDP сессий в Windows 10 / 7

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

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

В английской версии предупреждение такое:

Another user is signed in. If you continue, they’ll be disconnected. Do you want to sign in anyway?

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

  1. Поддержка RDP доступа имеется только в старших редакциях Windows (Professional и выше), а в домашних редакциях (Home) этот функционал отключен.
  2. Возможно только одно удаленного RDP подключения. При попытке открыть вторую RDP-сессию, пользователю предлагается завершить существующее подключение.
  3. В том случае, есть пользователь работает за консолью компьютера (локально), при удаленном подключении RDP, его сеанс будет отключен (заблокирован). Правильно и обратное утверждение: удаленный RDP сеанс принудительно завершается, если пользователь авторизуется на консоле системы

По сути, ограничение на количество одновременных rdp подключений является не техническим, а скорее лицензионным, запрещающее создавать на базе рабочей станции терминальный RDP сервер для работы нескольких пользователей. Хотя с технической точки зрения любая редакция Windows при наличии достаточного количества памяти может поддерживать одновременную работу нескольких десятков удаленных пользователей (в среднем на одну сессию пользователя без учета запускаемых приложений требуется 150-200 Мб памяти). Т.е. максимальное количество одновременных сессий в теории ограничивается только ресурсами компьютера.

Мы рассмотрим два способа отключить ограничение на количество одновременных RDP подключений к Windows 10:

  • RDP Wrapper Library
  • Модификация файла termsrv.dll

Важно. Изначально в самой первой версии статьи основным рабочим вариантом, позволяющим снять ограничение на количество одновременных RDP подключений пользователей был способ модификации и подмены файла termsrv.dll в папке %SystemRoot%\System32. Однако при установке нового билда Windows 10 или некоторых обновлений безопасности, этот файл обновляется. В результате приходится каждый раз редактировать этот файл Hex редактором, что довольно утомительно. Поэтому в качестве основного способа организации бесплатного терминального сервера на клиентской Windows 10 стоит считать утилиту RDP Wrapper Library.

Примечание. Модификации системы, описанные в этой статье, вероятно, будут считаться нарушением лицензионного соглашения на Windows со всеми вытекающими последствиями.

RDP Wrapper Library

Альтернативой модификации файла termsrv.dll  является использование  проекта RDP Wrapper Library. Эта программа работает в качестве прослойки между менеджером управления службами (SCM- Service Control Manager) и службой терминалов (Terminal Services) и позволяет включить не только поддержку нескольких одновременных RDP сессии, но и активировать поддержку RDP Host на домашних редакциях Windows 10. RDP Wrapper не вносит никаких изменений в файл termsrv.dll, просто подгружая termsrv с изменёнными параметрами.

Таким образом, это решение будет работать даже при обновлении версии файла termsrv.dll, что позволяет не опасаться обновлений Windows.

Важно. Перед установкой RDP Wrapper: важно, чтобы у вас использовалась оригинальная (непропатченная) версия файл termsrv.dll. В противном случае RDP Wrapper может работать не стабильно, или вообще не запускаться.

Скачать RDP Wrapper можно с репозитория GitHub: https://github.com/binarymaster/rdpwrap/releases (последняя доступная версия RDP Wrapper Library v1.6.2 вышла относительно недавно – 28 декабря 2017 года). Судя по информации на странице разработчика, поддерживаются все версии Windows. Windows 10 поддержиывается вплость до версии Insider Preview build 10.0.17063.1000 от 13 декабря 2017 года.

Совет. Кстати говоря, доступны исходники RDP Wrapper Library, что позволяет при желании самому собрать исполняемые файлы.

Архив RDPWrap-v1.6.2.zip содержит несколько файлов:

  • RDPWinst.exe —программа установки/удаления RDP Wrapper Library
  • RDPConf.exe — утилита настройки RDP Wrapper
  • RDPCheck.exe — Local RDP Checker — утилита проверки RDP
  • install.bat, uninstall.bat, update.bat — пакетные файлы для установки, удаления и обновления RDP Wrapper

Чтобы установить утилиту, запускам файл install.bat с правами администратора.

После окончания установки запускаем RDPConfig.exe. И удостоверяемся, что в секции Diagnostics все элементы окрашены в зеленый цвет.

Примечание. В моем случае, т.к. на компьютере отсутствует доступ в интернет, программа не смогла получить с Github актуальную версию INI файла с настройками под мою версию Windows. Поэтому в статусе указано [not supported]. Скачайте файл rdpwrap.ini с ресурса разработки и поместите его в каталог установки. Перезапустите службу и убедитесь, что надпись [not supported] сменилась на [fully supported].

Из интересных особенностей новой версии RDP Wrapper:

  • опция Hide users on logon screen – позволяет скрыть список пользователей на экране приветствия.
  • При отключении опции Single session per user — будут разрешены несколько одновременных RDP сессий под одной учетной записью (устанавливается ключ реестра fSingleSessionPerUser = 0 в ветке HKLM\SYSTEM\ CurrentControlSet\Control\Terminal Server\fSingleSessionPerUser).

В том случае, если после обновления версии Windows, RDP Wrapper не работает, проверьте, что в секции Diagnostics присутствует надпись Listener state: Not listening.

Попробуйте обновить ini файл скриптом update.bat, либо вручную и переустановить службу

rdpwinst.exe -u
rdpwinst.exe -i

Пытаемся открыть вторую RDP сессию. Все получилось! Теперь наша Windows 10 позволяет одновременно подключаться по RDP сразу двум удаленным пользователям.

Утилита должна работать на всех поддерживаемых на данный момент редакциях Windows : Windows Vista, Windows 7, Windows 8, Windows 8.1 и Windows 10. Таким образом из любой клиентской версии Windows можно сделать сервер терминалов.

Модификация файла termsrv.dll

Примечание. Данный способ применим только к RTM версии Windows 10 x64 (10240).

Убрать ограничение на количество RDP подключений можно с помощью модификации файла termsrv.dll (файл библиотеки, используемый службой Remote Desktop Services). Файл находится в каталоге C:\Windows\System32).

Перед модификацией файла termsrv.dll желательно создать его резервную копию (в случае необходимости можно будет вернуться к первоначальной версии файла):

copy c:\Windows\System32\termsrv.dll termsrv.dll_backup

Перед правкой файла termsrv.dll нужно стать его владельцем и предоставить группе администраторов полные права на него (все операции выполняются аналогично описанным в статье Убираем ограничение на количество RDP сессий в Windows 8). Затем остановите службу Remote Desktop service (TermService) из консоли services.msc или из командной строки:

Net stop TermService

Для редакции Windows 10 x64 RTM (версия файла termsrv.dll  — 10.0.10240.16384): Откройте файл termsrv.dll  с помощью любого HEX редактора (к примеру, Tiny Hexer)

Найдите строку:

39 81 3C 06 00 00 0F 84 73 42 02 00

И замените ее на:

B8 00 01 00 00 89 81 38 06 00 00 90

Сохраните файл и запустите службу TermService.

Готовый пропатченный файл termsrv.dll для Windows 10 Pro x64 можно скачать здесь: termsrv_windows_10_x64_10240.zip

winitpro.ru

Настраиваем RDP (remote desktop protocol)

Настраиваем RDP (remote desktop protocol) — удаленный рабочий стол

Если у Вас профессиональная или максимальная версия — Вы можете настроить вход на свой ПК через удаленный рабочий стол. Для этого нужно сделать несколько вещей.

  • разрешить вход через удаленный рабочий стол (для младших версий этого меню нет)
       
  • добавить пользователей, которые имеют право работать через удаленный рабочий стол (обычно Windows добавляет текущего пользователя автоматически)

Как запустить  Удаленный рабочий стол в Windows 7?

Через кнопку «Пуск»:

Набираем в поисковой строке «Подключение к удаленному рабочему столу» (смешно — именно так,  через строку «Поиск» рекомендует MicroSoft -> откроется в новой вкладке) или «mstsc.exe» — собственно сама программа так называется

 

Или через папку «Стандартные» в программах. Не во всех версиях Windows есть, например в Windows 7 Started (да, та самая с программным ограничением ОЗУ в 2 Гб) такой папки нет.

Можно и через проводник 🙂

Смотрим список сетевых ресурсов, кликаем правой клавишей мыши на нужной машине

После запуска получаем форму настроек удаленного рабочего стола, нам нужен развернутый вариант (с параметрами)

На общей вкладке настраиваем:

Компьютер — или IP-адрес или название компьютера

Пользователь — юзер, под которым будем входить на удаленный ПК

Можно сохранить как ярлык на рабочем столе (еще рано, смотрим другие вкладки)

На вкладке «Локальные ресурсы» выбираем, будут ли нам доступны принтеры основного компьютера и буфер обмена.

Если у Вас все ПК в местной локальной сети (т.е. скорость сети не критична) — можно на вкладке «Дополнительно» использовать фоновый рисунок рабочего стола удаленного ПК.

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

Результат 🙁

Основные причины такой ситуации:

  • удаленный компьютер имеет IP-адрес, назначенный ему роутером через DHCP, он периодически меняется. Необходимо в свойства адаптера прописать фиксированный IP-адрес
  • забыли разрешить удаленный доступ через «Свойства» компьютера
  • удаленный доступ разрешили, но забыли указать пользователя, которому можно входить
  • запрещает брендмаузер Windows, необходимо добавить «удаленный рабочий стол» в исключения
  • Вы сделали удаленную перезагрузку ПК и до входа локального пользователя удаленный рабочий стол не будет работать

В большинстве случаев Windows 7 всё это должна сделать сама (добавить текущего пользователя, разрешить в брендмаузере и пр.), но не всегда это работает. Т.е. например, «Удаленный рабочий стол»  в список программ в бредмаузере добавлен, но галочка не установлена 🙁

Надо всё самому проверять.

Дополнительные настройки удаленного рабочего стола.

1. Есть необходимость перезагружать ПК через удаленный рабочий стол. Сама перезагрука — это не проблема — либо через диспетчер задач либо через Alt F4. (в кнопке «Пуск» этой возможности не будет). Но до входа локального пользователя удаленный рабочий стол подключаться не будет. А если ПК стоит в темной комнате, где нет никаких локальных пользователей?

Тут сюрприз — необходимо создавать ярлык для удаленного рабочего стола через командную строку с параметром /admin

Вот так: mstsc.exe  /admin

Визуально настройка ярлыка будет такая же — но система будет пускать через удаленный рабочий стол после перезагрузки удаленного ПК.

Вот полный список параметров запуска удаленного рабочего стола из командной строки

2. При необходимости разрешить вход без пароля (крайне не рекомендуется для корпоративного сегмента)

меню «Пуск» — выполнить — gpedit.msc (редактор политик) — «конфигурация компьютера» — «конфигурация windows»- «локальные политики» —  «параметры безопасности» — «ограничить использование пустых паролей…..» — «отключен»

Да, на младших версиях Windows, конечно, gpedit.msc не запускается (нет этой настройки)

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

3. Автоматический вход с сохраненным логином и паролем

Есть волшебная галочка «Разрешить мне сохранять учетные данные». Если запустить изменение еще раз — галочка сменится на «Всегда запрашивать учетные данные»

 

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

А если учетные данные не сохраняются (в Windows 7 и старше)?

Или получаем предупреждение «Системный администратор запретил использовать сохраненные учетные данные для входа в систему удаленного компьютера, так как его подлинность проверена не полностью. Введите новые учетные данные.»

Что делать?

Дело в том, что в последних версиях Windows пароль хранится не в rdp-файле, а в отдельном хранилище (Credential Manager — Диспетчер учетных данных). Как минимум — в групповых политиках должны быть отключены следующие параметры:

  • Конфигурация пользователя — Административные шаблоны — Компоненты Windows — Службы удаленных рабочих столов — Клиент подключения к удаленному рабочему столу — Запретить сохранение паролей;
  • Конфигурация компьютера — Административные шаблоны — Компоненты Windows — Службы удаленных рабочих столов — Клиент подключения к удаленному рабочему столу — Запретить сохранение паролей.

Вот можно почитать подробнее (откроется в новом окне)

4. Иногда при подключении Вы видите такую картину — «не удается проверить подлинность удаленного компьютера»

Проверка подлинности была добавлена, начиная с Windows XP SP3. Но она там отключена по умолчанию (на Wibdows Vista уже включена).

Как включить проверку подлинности удаленного компьютера на Window XP SP3?

Идем в реестр regedit.exe (Выполнить)

Ветка HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa

Открываем параметр Security Packages и ищем там слово tspkg. Если его нет, добавляем к уже существующим параметрам.

Ветка HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders

Открываем параметр SecurityProviders и добавляем к уже существующим провайдерам credssp.dll, если таковой отсутствует.

Закрываем редактор реестра. Перезагружаемся.

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

Подключение к удаленному рабочему столу
Ошибка при проверке подлинности(код 0×507)

5. При подключении появляется предупреждение системы безопасности Windows

«Не удается определить издателя этого удаленного подключения»

Это означает, что файл rdp не защищен подписанным сертификатом. Для локальной сети ничего страшного тут нет, можно поставить галочку «Больше не выводить запрос…»

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

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

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

Поддерживается: Не ниже Windows Vista с пакетом обновления 1 (SP1)

Registry HiveHKEY_LOCAL_MACHINE
Registry PathSOFTWARE\Policies\Microsoft\Windows NT\Terminal Services
Value NameAllowUnsignedFiles
Value TypeREG_DWORD
Enabled Value1
Disabled Value0

Файл Default.rdp

Собственно — это именно файл, а не ярлык удаленного рабочего стола. Данный настроенный файл можно переслать другому пользователю, он его сохранит —  и всё будет работать.

Более того — это простой текстовый файл, в котором хранятся все настройки удаленного подключения и этот файл можно открыть Блокнотом. Кстати, часть параметров не редактируется через стандартные настройки, их можно вписать руками.

screen mode id:i: — 1 — удаленный сеанс выполняется в оконном режиме, 2 — в полноэкранном. Редактируется на вкладке ”Экран” окна ”Параметры” средства ”Подключение к удаленному рабочему столу”.

use multimon:i: — 0 — запрет поддержки нескольких мониторов, 1 — разрешение поддержки нескольких мониторов. Может использоваться в Windows 7 /Windows Server 2008 и более поздних версиях.

desktopwidth:i: — ширина рабочего стола. Выбирается на вкладке ”Экран” окна ”Параметры” средства ”Подключение к удаленному рабочему столу”.

desktopheight:i: — высота рабочего стола. Выбирается на вкладке ”Экран” окна ”Параметры” средства ”Подключение к удаленному рабочему столу”.

session bpp:i: — глубина цвета. Выбирается в группе ”Цвета” на вкладке ”Экран” окна ”Параметры” средства ”Подключение к удаленному рабочему столу”.

winposstr:s: — позиция и размеры окна в формате WINDOWPOS

compression:i: — 0 — не использовать сжатие данных, 1 — использовать.

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

audiocapturemode:i: — Определяет, где воспроизводится звук. Значение этого параметра соответствует настройкам ”Удаленный звук” на вкладке ”Локальные ресурсы” окна ”Параметры” средства ”Подключение к удаленному рабочему столу”. 0 — на клиентском компьютере. 1 — на удаленном компьютере. 2 — звук не воспроизводится.

videoplaybackmode:i: — 0 — не использовать RDP efficient multimedia streaming при воспроизведении видео. 1 — использовать.

connection type:i: 2 — тип соединения для достижения максимального быстродействия. Соответствует настройкам ”Быстродействие” на вкладке ”Дополнительно” окна ”Параметры” средства ”Подключение к удаленному рабочему столу” Определяется типом выбранной скорости соединения.

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

disable wallpaper:i: — запрет отображения фонового рисунка удаленного рабочего стола. Соответствует настройкам в группе ”Быстродействие”- флажок ”Фоновый рисунок рабочего стола” на вкладке ”Дополнительно” окна ”Параметры” средства ”Подключение к удаленному рабочему столу”. 0 — отображать фоновый рисунок. 1 — не отображать фоновый рисунок.

allow font smoothing:i:— разрешение сглаживания шрифтов. Соответствует настройкам в группе ”Быстродействие”- флажок ”Сглаживание шрифтов” на вкладке ”Дополнительно” окна ”Параметры” средства ”Подключение к удаленному рабочему столу”. 0 — не использовать сглаживание. 1 — использовать.

allow desktop composition:i: 0 — Соответствует настройкам в группе ”Быстродействие”- флажок ”Сглаживание шрифтов” на вкладке ”Дополнительно” окна ”Параметры” средства ”Подключение к удаленному рабочему столу”. 0 — не использовать сглаживание. 1 — использовать.

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

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

disable themes:i: — запрет использования тем. 0 — использовать темы. 1 — не использовать темы.

disable cursor setting:i:0 — запрет настроек курсора. 0 — настройка курсора разрешена. 1 — запрещена.

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

full address:s: — имя или IP-адрес удаленного компьютера, к которому выполняется подключение по RDP. При необходимости, можно указать номер используемого TCP порта.

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

redirectprinters:i: — использование принтеров во время удаленного сеанса. Значение этого параметра соответствует состоянию флажка ”Принтеры” на вкладке ”Локальные ресурсы” окна ”Параметры”. 0 — не использовать локальные принтеры во время удаленного сеанса. 1 — использовать автоматическое подключение принтеров.

redirectcomports:i: — использование последовательных портов локального компьютера при подключении к удаленному рабочему столу. 0 — не использовать. 1 — использовать.

redirectsmartcards:i: — использование смарт-карт локального компьютера при подключении к удаленному рабочему столу. 0 — не использовать. 1 — использовать.

redirectclipboard:i: — использовать общий буфер обмена для локального и удаленного компьютера. Значение этого параметра соответствует состоянию флажка ”Буфер обмена” на вкладке ”Локальные ресурсы” окна ”Параметры”. 0 — не использовать общий буфер обмена. 1 — использовать.

redirectposdevices:i: — перенаправления устройств, которые используют Microsoft Point of Service (POS). 0 — не использовать перенаправление. 1 — использовать.

redirectdirectx:i: — перенаправление DirectX. 0 — не использовать перенаправление DirectX. 1 — использовать.

autoreconnection enabled:i:1 — автоматическое подключение при разрыве соединения с удаленным компьютером. Значение этого параметра соответствует состоянию флажка ”Восстановить соединение при разрыве” на вкладке ”Дополнительно” окна ”Параметры”. 0 — не использовать автоматическое восстановление соединения. 1 — использовать.

authentication level:i: — уровень проверки подлинности для удаленного подключения. Определяет действия в случае, когда не удается подтвердить подлинность удаленного компьютера. Определяется настройкой группы ”Проверка подлинности сервера” на вкладке ”Подключение”. В Windows 10 – вкладке ”Подключение” соответствует вкладка ”Взаимодействие”. 0 — если не удалось подтвердить подлинность терминального сервера, то подключаться без предупреждения. 1 — не подключаться. 2 — подключаться с предупреждением.

prompt for credentials:i: — запрос пользователю на подтверждение учетных данных в случае, если они были сохранены ранее. 0 — не запрашивать учетные данные, если они были предварительно сохранены. 1 — всегда запрашивать учетные данные.

negotiate security layer:i: — уровень шифрования сессии RDP. 0 — сессия с шифрованием TLS 1.0 (SSL) будет использоваться в случае поддержки клиентом. Если клиент его не поддерживает, будет использоваться стандартное встроенное шифрование RDP. 1 — удаленная сессия будет использовать шифрование x.224

remoteapplicationmode:i: — режим работы с удаленным приложением. 0 — режим работы с удаленным рабочим столом. 1 — режим работы с удаленным приложением.

alternate shell:s: — имя альтернативной оболочки пользователя.

shell working directory:s: — рабочий каталог оболочки пользователя.

gatewayhostname:s: — имя сервера шлюза удаленных рабочих столов. Значения параметров сервера шлюза определяется группой ”Подключение из любого места” на вкладке ”Подключение” (для Windows 10 – на вкладке ”Дополнительно”).

gatewayusagemethod:i:4 — метод использования сервера шлюза удаленных рабочих столов. 0 — никогда не использовать сервер шлюза удаленных рабочих столов. 1 — всегда использовать сервер шлюза удаленных рабочих столов. 2 — не использовать сервер шлюза удаленных рабочих столов для локальных клиентов. 3 — использовать настройки по умолчанию сервера шлюза удаленных рабочих столов. 4 — не использовать сервер шлюза удаленных рабочих столов, но в настройке ”Подключение из любого места” – ”Параметры” включен флажок ”Не использовать сервер шлюза удаленных рабочих столов для локальных адресов”

gatewaycredentialssource:i:4 — используемый метод авторизации пользователя. 0 — использовать NTLM (запрос пароля) . Соответствует выбору параметра ”Метод входа” – ”Запрашивать пароль (NTLM)” в настройках ”Подключение из любого места” – ”Параметры”. 1 — использовать смарт-карты. Параметры, определяющие использование сервера шлюза удаленных рабочих столов и параметры входа и параметры подключения взаимосвязаны, и изменение одного из них, может вызвать изменение другого.

drivestoredirect:s: — перенаправление дисковых устройств локального компьютера. Значение определяется настройками на вкладке ”Локальные ресурсы” – ”Подробнее”

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

Борьба с «крестиком» терминального сеанса.

Вот он вредитель (на панели подключений при работе на полном экране) — сисадмины поймут всю боль

Проблема в том, что «крестик» только закрывает «Удаленный рабочий стол» на ПК пользователя, но оставляет на сервере открытую терминальную сессию. Если пользователей много — то все их сессии остаются на сервере открытыми и занимают память.

Варианты решений.

  1. Вообще убрать панель от пользователя — в настройках при создании удаленного рабочего стола (выход только через завершение сеанса)

2. Убрать сам «крестик» (выход только через завершение сеанса)

Есть специальная программа, которая крестик убирает. Смотреть здесь.

И будет вот так 🙂

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

Вот мечта всех админов — при закрытии (нажатии на крестик) происходит и закрытие рабочего стола и закрытие терминальной сессии на сервере. Смотреть на support Miscosoft (в новом окне)

 

Еще почитать:

Сеть

    Еще почитать:


IP-адрес и маска подсети

IP-адрес — уникальный сетевой адрес узла в компьютерной сети, построенной на основе стека протоколов TCP/IP. В сети Интернет требуется глобальная уникальность адреса; в случае работы в локальной сети требуется уникальность адреса в пределах сети. В версии прото…

Загадочные SMB и SAMBA

Вот такой зверь. Этот вопрос актуален для сетевого доступа к дисками из разных операционных система. Отдельный диск в сети (или NAS) как правило на Lunix, а к файлам надо обратиться или из под Windows (ПК) или из под Android (Смарт, телевизор)….

Как расшарить диск по локальной сети?

Хочется сделать диск/папку общей по локальной сети. Это в Windows XP было просто — разрешить общий доступ, указать букву — ОК. И вторую галочку «Разрешить изменения файлов по сети» тоже надо поставить, иначе будет только чтение. Все работает. Дл…

Как удаленно выключить компьютер в локальной сети

Будем выключать ПК пользователя в локальной сети. В Windows 7 данная процедура предусмотрена. Начнем с простого. Как выключить свой ПК с помощью командной строки? Выключение компьютера через командную строку производится с помощью команды …

Как удалить несуществующий сетевой диск?

Да, встречается такая ситуация — сетевой диск удален, но остался в проводнике. При попытке его удалить из проводника стандартными средствами — получаем сообщение «сетевое подключение отсутствует». Вот так это выглядит в проводнике При попытке откл…

Как установить постоянный IP-адрес для устройства

Разберемся, как в локальной сети сделать для устройства постоянный IP-адрес. Присваиваем постоянный IP-адрес через настройки Windows 7. Идем в изменение параметров адаптера. потом в свойства нужного соединение, там выбираем протокол Интернета вер…

Подключаем RDP Windows XP из Windows 7

Будет интересно. Основная статья по настройке удаленного рабочего стола . Простая задача — есть Windows XP, мы к ней хотим подключиться из Windows 7 через удаленный рабочий стол. Вроде все оно просто — но есть небольшое количество грабелек, разложенн…

Распиновка POE

Как сделать из патч-корда POE и что это такое? И что за загадочные устройства на картинке? Зачем какое-то питание подключать в витую пару? А это как раз и есть POE. Power  over  Ethernet  (PoE ) — технология, позволяющая передавать удалённому уст…

Распиновка патч-корда

Звучит-то как красиво :) Патч  – корд  (коммутационный шнур) представляет из себя электрический или оптоволоконный кабель для подключения или соединения между собой электрических устройств. Электрический патч-корд обычно бывает на базе витой пары. …

comphome.ru

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

Добрый день! Уважаемые читатели и гости IT портала Pyatilistnik.org. Вчера я вас научил определять номер и ID сеанса пользователя на RDS ферме или терминальном сервере. Там я вам рассказывал, что это нужно в случаях, когда вам необходимо завершить сессию пользователя, по ряду причин, одна из таких, это просто ее зависание. После чего человек и подключиться не может заново и не может выйти из своего сеанса. Вы как администратор, должны уметь решать проблему с зависшими RDP сессиями, ниже я покажу свои методы и алгоритмы.

Описание проблемы

Есть RDS ферма из 15 хостов подключений на Windows Server 2012 R2. Сервера на то они и сервера, что работают постоянно. Если у вас на ферме не настроены тайм ауты времени беспрерывной работы, то пользователи могут неделями или месяцами висеть в авторизованных подключениях. Логично предположить, что это не очень хорошо и ведет к различным последствиям, одно из которых, это полное зависание сеанса, при котором человек не может подключиться к терминальному серверу и видит сообщение «Работает служба профилей пользователей» или еще вариант «Не удается завершить требуемую операцию», я уже не говорю про повреждение пользовательского профиля. В результате того, что RDS брокеры видят. что пользователь уже залогинен, они не дают ему переподключиться к другому Session Host серверу, даже если вы закроете на текущем новые подключения. Пока вы не сделаете выход пользователя из системы для этой сессии, она так и будет мешать. Давайте разбираться, как это делать.

Методы завершения сессии пользователя не терминале

Существует несколько методов позволяющие выкинуть пользователя с сервера.

  • Завершить сессию пользователя (Сделать log off) вы можете из оснастки управления RDS фермой
  • Разлогинить пользователя можно и на самом терминальном сервере из диспетчера задач
  • Выход пользователя можно выполнить из утилиты командной строки rwinsta
  • Утилита командной строки log off
  •  Утилита reset session
  • * Командлет Stop-TSSession

Как выкинуть пользователя из оснастки управления RDS

И так, у меня есть мой любимый, тестовый пользователь в Active Directory, по имени Барбоскин Геннадий Викторович. Предположим, что он зашел на терминальный стол и нам по причине зависания его сессии, нужно сделать ему выход. Первый метод, это использование оснастки по управлению RDS фермой, я вам рассказывал, как ее собирать. Открываем раздел с вашей коллекцией RDS фермы. В поисковом фильтре указываем логин или фамилию нужного сотрудника. В результате получаем хост, где он работает.

Щелкаем по нему правым кликом. В контекстном меню будет пункт «Выйти», это и соответствует завершению сессии (Log off). Так же есть пункт «Отключиться», если выберите его, то пользователь будет выброшен с терминального сервера, но его сессия останется на нем, данная операция равносильна тому, если пользователь просто нажал в окне с названием терминального сервера крестик.

После того, как вы выбрали пункт «Выйти», начнется корректное завершение сессии пользователя на RDS ферме. Сам пользователь увидит сообщение «Работает служба профилей пользователей» и у него закроется окно без ошибки.

Второй метод разлогинить пользователя на терминальном сервере

Второй метод, похож на первый, за исключением того, что нам необходимо залогиниться на нужный сервер, открыть оснастку «Диспетчер задач» и уже из него произвести выход пользователя. Сказано сделано, о том, как вам попадать на нужного участника RDS фермы я рассказывал. Далее щелкаем правым кликом по области пуска и из контекстного меню выбираем пункт «Диспетчер задач». Кстати, вызвать «Диспетчер задач» можно и через сочетание клавиш CTRL+SHIFT+ESC.

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

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

Использование утилиты RWINSTA

Если вы попали в ситуацию, когда графические методы не позволяют вам произвести выход пользователя из системы, а это необходимо, то вам на помощь придут утилиты из командной строки. RWINSTA — это встроенная в Windows утилита, которая позволяет сбрасывать сессии, по ID и имени сеанса. Первым делом вам нужно вычислить или ID сессии или ее имя, я вам рассказывал, о всех известных мне методах. можете ознакомиться. Я выберу утилиту qwinsta. Пишем команду:

qwinsta | findstr barboskin.g (Локально)

или удаленно qwinsta /server:имя сервера | findstr barboskin.g

В моем примере имя сеанса rdp-tcp#172 и ее ID 515. Пишем команду:

rwinsta rdp-tcp#172 /server:localhost или rwinsta 515 /server:localhost

И в первом и во втором случае, пользователь будет разлогинен с данного сервера. Данную команду можно запускать удаленно, со своего рабочего места, главное, чтобы были права на log off. Данный метод меня ни раз выручал в моей практике, например случай с зависшей сессией на Windows Server 2016, где вместо логина пользователя было имя (4).

Как отключить пользователя через reset session

Завершить сессию пользователя можно и с помощью утилиты командной строки Reset Session. В текущем примере у моего Барбоскина Геннадия Викторовича имя сеанса rdp-tcp#16 с его ID 11. Данную утилиту можно применять как локально на самом терминальном сервере, так и на своей рабочей станции, тут так же есть ключ /server.

reset session rdp-tcp#16 или reset session 11

Подробнее про утилиту reset session вы можете почитать на сайте Microsoft — https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/reset-session

Как отключить пользователя через logoff

Разлогинить пользовательскую учетную запись и даже зависшую, можно и через утилиту командной строки «LogOff». В данном примере у Геннадия Барбоскина имя сессии rdp-tcp#43. В командной строке от имени администратора введите:

logoff rdp-tcp#43 /server:localhost (Имя сервера можно менять) или logoff 54 /server:localhost

Выход пользователя через командлет Stop-TSSession

Есть такой замечательный командлет Stop-TSSession. Посмотрим на сервере ID и имя сеанса, для этого в открытой оболочке PowerShell введите:

В итоге я вижу, что у пользователя barboskin.g SessionID 3. Далее пишем

Stop-TSSession 3 или принудительно Stop-TSSession 3 -Force

Соглашаемся с тем, что будет производиться log off для данного пользователя. Проверяем, что сессия завершена. Можно вот таким простеньким скриптом из планировщика задач, разлогинивать сессии:

Import-Module PSTerminalServices
Get-TSSession -ComputerName SERVER_NAME -filter {$_.sessionID -ne 0 -AND $_.sessionID -ne 1 -AND $_.sessionID -ne 65536}| Stop-TSSession –Force

Выход пользователя через командлет Stop-TerminalSession

Данный командлет устанавливается отдельно, совместно с пакетом Pscx. Первым делом посмотрим локально или удаленно идентификаторы сессии пользователя, для которого мы хотим сделать log off. Выполняем команду:

Get-TerminalSession -ComputerName имя сервера

Нужный мне ID сеанса 427. Далее воспользуемся командлетом Stop-TerminalSession, чтобы выкинуть пользователя и завершить его сессию.

Stop-TerminalSession -ComputerName имя сервера -Id 427 -Force

Как видите сессия 427 больше не существует, и у нас с помощью командлета Stop-TerminalSession получилось выкинуть пользователя из RDS сеанса. На этом у меня все. Остались вопросы, то пишите их в комментариях. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.

pyatilistnik.org

Инструкция по установке таймаутов для RDP-сессий

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

Устанавливаем Службу удаленных рабочих столов. Для этого открываем “Панель управления сервером”. В открывшемся окне выбираем второй пункт — “Добавить роли и компоненты”.

В окне мастера установки ролей приводится общий ознакомительный материал. Данный текст будет появляться при каждой попытке добавить роли или компонент сервера. Чтобы  эта информация не появлялась вновь, рекомендуем установить галочку “Пропускать эту страницу по умолчанию”. Нажимаем кнопку “Далее”.

Следующим шагом выбираем тип установки — “Установка служб удаленных рабочих столов”. Нажимаем “Далее”.

На следующем этапе выбираем тип развертывания — “Службы Multipoint”. Обычно этот параметр установлен по умолчанию. Кликаем по кнопке “Далее”.

Следующим шагом выбираем сервер для которого выполняется установка. В нашем случае сервер уже добавлен, так как рассматриваем установку на единичный сервер не добавленный в домен. Нажимаем “Далее”.

Следующим шагом подтверждаем выбор. Установим галку, которая позволит системе перезагрузить сервер автоматически в случае необходимости. Нажимаем кнопку “Развернуть”.

Важно! В ходе установки могут быть закрыты все RDP-соединения, а также сервер может быть несколько раз перезагружен без дополнительного уведомления об этом.

Дожидаемся окончания процесса установки.

В окне трижды написано “Успешно”. Закрываем окно установки.

Приступаем к настройке групповых политик.

Для настройки групповых политик запускаем соответствующую консоль. В программе выполнить (Windows + R) вводим “gpedit.msc”. Нажимаем кнопку “OK” или Enter.

В открывшемся окне следуем по пути Конфигурация компьютера → Административные шаблоны → Компоненты Windows → Службы удаленных рабочих столов → Узел сеансов удаленных рабочих столов → Ограничение сеансов по времени.

Следующим параметрам необходимо установить значение “Включено”:

  • Завершать сеанс при достижении ограничения по времени — Установка данного параметра разрешает или запрещает использовать таймауты.
  • Задать ограничение по времени для активных, но бездействующих сеансов служб удаленных рабочих столов — параметр определяет задержку для неактивных сеансов, когда пользователь бездействует.
  • Задать ограничение по времени для отключенных сеансов — параметр задает таймаут для завершенных сеансов, когда сеанс завершен, но в фоновом режиме запущены некоторые процессы.

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

В открывшемся окне устанавливаем состояние как “Включено”. Затем устанавливаем временные рамки. По окончании нажимаем кнопку “OK”.

Выбор временных диапазонов остается на усмотрение системного администратора.

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

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

На этом настройка окончена.

Облачные VPS/VDS

Создайте сервер всего за 1 минуту!

от8 руб/месяц

Подобрать сервер

Средняя оценка: 5.0 оценили: 1

220140 Минск ул. Домбровская, д. 9

+375 17 388-72-49 700 300 ООО «ИТГЛОБАЛКОМ БЕЛ»

220140 Минск ул. Домбровская, д. 9

+375 17 388-72-49 700 300 ООО «ИТГЛОБАЛКОМ БЕЛ» 700 300

serverspace.by

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *