- Что такое remote desktop gateway?
- Введение
- Добавляем А запись
- Качаем WinAcme
- Открываем 80 порт
- Разрешаем выполнение скриптов
- Устанавливаем сертификат
- Nla и windows xp
- Блокируем подключения по rdp учётным записям с пустым паролем
- Блокируем учетные записи с пустым паролем
- Версии протокола rdp
- Включаем nla – network level authentication
- Включаем require secure rpc communication для rdp
- Включаем и настраиваем кэширование изображений
- Выбираем правильный сертификат для rdp
- Делаем всё красиво – специальный шаблон сертификата для rdp-серверов
- Доверие сертификатам ca из корпоративной сети
- Запрос сертификата для сервера терминала
- Защита rdp соединения при помощи ssl.
- Как включить credssp в xp
- Как включить rdp over tls
- Как подключить сертификат подписанный ad cs к rpd
- Как привязать службу rdp к не-дефолтному порту
- Настраиваем общую логику оптимизации визуальных данных rdp
- Настраиваем шифрование для rdp
- Настройка acl для подключения по rdp
- Настройка режима защиты rdp-сессии
- Настройка сжатия звукового потока
- Оптимизация сжатия rdp
- Оптимизация скорости rdp
- Оптимизация соотношения потоков данных в rdp
- Оптимизируем параметры desktop window manager
- Особенности пакета sp1
- Отключаем desktop composition
- Отключаем редирект неиспользуемых устройств
- Отключите cleartype
- Подключение через шлюз
- Привязываем rdp к конкретному адаптеру и порту
- Режим rdp client compatible encryption
- Режим rdp low encryption
- Смена стандартного порта remote desktop protocol
- Создание политики авторизации подключения и ресурсов
- Уберите wallpaper
- Установка ssl-сертификата
- Установка роли
- Цветность (битовая глубина)
- Заключение
Что такое remote desktop gateway?
Примечание: начиная с Windows Server 2008 R2 все службы удаленных рабочих столов были переименованы. Службы Terminal Services были переименованы в .
Введение
Протокол 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
Приступим.
Добавляем А запись

Просто добавляем A запись и вписываем в неё IP адрес сервера. На этом работа с доменом окончена.
Качаем WinAcme
. Архив лучше всего распаковать туда, куда вы не доберетесь, исполняемые файлы и скрипты вам еще пригодятся в будущем для автоматического обновления сертификата. Лучше всего вытряхнуть архив в C:WinAcme.
Открываем 80 порт

Разрешаем выполнение скриптов
Чтобы WinAcme смог без проблем импортировать новый сертификат, нужно разрешить выполнение скриптов. Для этого переходив в папку /Scripts/
Перед запуском WinAcme нам нужно разрешить выполнение двух скриптов. Для этого двойным кликом запустите PSRDSCerts.bat из папки со скриптами.
Устанавливаем сертификат

Дальше скопируйте строку ниже и введите имя домена, по которому хотите подключатсяь к серверу и выполните команду.
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 криптопровайдера, он её не включает.
Блокируем подключения по 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. Не поленитесь проверить, что это так и есть.
Блокируем учетные записи с пустым паролем
Усилить RDP безопасность можно, запретив windows server подключаться учетным записям с пустым паролем. Для этого нужно включить политику безопасности «Учетные записи: разрешить использование пустых паролей только при консольном входе»:
- Откройте локальную политику безопасности (нажмите Win R и введите команду secpol.msc)
- Перейдите в раздел Локальные политики, Параметры безопасности
- Дважды щелкните на нужной нам политике и убедитесь, что для нее задано значение Включен (рис. 5).
Рис. 5. Включение политики безопасности в Windows 2021 RDP «Учетные записи: разрешить использование пустых паролей только при консольном входе»
Версии протокола rdp
Протокол имеет достаточно длительную историю, начиная с NT 4.0. Исторические детали мы оставим в стороне по простой причине – на данный момент имеет смысл говорить только про версию RDP 7.0, которая есть в Windows Vista SP1 / Windows Server 2008 и бесплатно добавляема в Windows XP установкой SP3 и обновлённого клиента RDP (находится по ссылке на
). Я предполагаю, что у Вас как минимум Windows XP, и что Вы поставили/можете поставить последний Service Pack и не трачу Ваше время на обсуждение преимуществ RDP в Windows 2000 SP2 перед NT 4.0 SP5.
Включаем nla – network level authentication
Функция NLA появляется в NT 6.0, а позже добавляется возможность её частичного использования в предыдущей версии ОС путём установки SP3 для XP.
Суть данной функции достаточно проста. В версиях RDP до 6.0 при подключении по RDP клиенту до аутентификации надо показать окно входа – т.е. вначале показать, а потом уже он попробует зайти в систему.
Это создаёт простую уязвимость – сервер можно перегрузить пачкой запросов “а дай-ка мне попробовать новую сессию начать”, и он будет вынужден на все запросы отвечать созданием сессии и ожиданием входа пользователя. Фактически, это возможность DoS. Как с этим можно бороться?
- Клиент аутентифицируется до инициации терминальной сессии.
- Появляется возможность передать данные локального клиентского SSP на сервер, т.е. начинает работать Single Sign-On.
Реализуется это через новый провайдер безопасности – CredSSP. Почитать его техническую спецификацию можно
, ну, а говоря проще, надо всегда включать данную функцию. Конечно, учитывая, что для её работы нужно, чтобы:
- Клиентская ОС (та, с которой идёт подключение) была Windows XP SP3 и выше.
- Серверная ОС (та, к которой будет подключение) была Windows Server 2008 и выше.
Включаем require secure rpc communication для rdp
Данный параметр действует аналогично настройкам для Secure RPC, которые есть в разделе Security групповой политики и действуют на всю систему, только настраивается проще. Включив этот параметр Вы сделаете обязательным для всех клиентских RPC-запросов шифрование (в зависимости от настроек системы “нижняя планка” шифрования будет разной – RC4/DES или, в случае включения FIPS-140 – 3DES/AES) и использование как минимум NTLMv2 для аутентификации удалённого вызова процедур.
Включаем и настраиваем кэширование изображений
Если на клиенте есть достаточно оперативной памяти, то имеет смысл включить и настроить кэширование битмапов. Это позволит выиграть до 20-50% полосы пропускания. Для установки надо будет зайти в ключ
Выбираем правильный сертификат для rdp
Если у Вас есть возможность пользоваться не-дефолтным сертификатом для RDP, то лучше пользоваться именно им. Это не повлияет на безопасность сессии как таковой, но повлияет на безопасность и удобство подключения. В сертификате, который оптимально использовать, должны быть следующие момент:
Чуть подробнее остановлюсь на выпуске специального сертификата для RDP-сервера.
Делаем всё красиво – специальный шаблон сертификата для rdp-серверов
Идеально будет, если сертификат для RDP сделать не на основе обычного шаблона (типа Web Server) и иметь в поле
Application Policy
(которое в сертификате будет более привычно называться Enchanced Key Usage – EKU) стандартные значения
Client AuthenticationServer Authentication
, а добавить свой шаблон, в котором будет единственное, специальное, не добавляемое стандартными способами значение применения –
Remote Desktop Authentication
. Это значение Application Policy придётся создать вручную, его OID’ом будет
1.3.6.1.4.1.311.54.1.2
Доверие сертификатам ca из корпоративной сети
Помимо настройки клиента Remote Desktop Connection, необходимо убедиться, что рабочая станция доверяет сертификатам, выданным центром сертификации в корпоративной сети. Для этого требуется выполнить следующие действия:
Запрос сертификата для сервера терминала
Прежде чем использовать SSL для соединения с сервером терминала, необходимо запросить соответствующий сертификат из центра сертификации корпоративной сети:
- Открыть оснастку Certificates консоли управления Microsoft Management Console (MMC) на сервере терминалов от имени учетной записи локального компьютера.
- Выбрать Certificates (Local Computer) в корневом каталоге консоли, затем перейти к пункту Options меню View. Выбрать Certificate Purpose в разделе Organize view mode by и нажать кнопку OK.
- Щелкнуть правой кнопкой мыши Server Authentication и выбрать Request new certificate в разделе All tasks.
- Нажать кнопку Next на экране приветствия. Выбрать режим Server Authentication (или Domain Controller Authentication). Установить флажок Advanced и нажать кнопку Next.
- Убедиться, что в качестве поставщика службы шифрования выбран Microsoft RSA SChannel Cryptographic Provider, а длина ключа – 1024. Нажать кнопку Next.
- Перейти к центру сертификации корпоративной сети (если он еще не выбран) и выбрать его. Нажать кнопку Next.
- Ввести понятное имя и описание сертификата. Нажать кнопку Next, а затем Finish.
После этого на экране должно появиться сообщение, что запрос к центру сертификации корпоративной сети был успешным.
Защита rdp соединения при помощи ssl.

Какие преимущества дает нам защита RDP при помощи SSL? Во первых надежное шифрование канала, проверку подлинности сервера на основании сертификата и проверку подлинности пользователя на уровне сети. Последняя возможность доступна начиная с Windows Server 2008.
Проверка подлинности на уровне сети производится до подключения к удаленному рабочему столу и отображения экрана входа в систему, это снижает нагрузку на сервер и значительно увеличивает его защиту от злоумышленников и вредоносных программ, а также снижает вероятность атак типа “отказ в обслуживании”.
Для полноценного использования всех возможностей RDP через SSL клиентские ПК должны работать под управлением Windows XP SP3, Windows Vista или Windows 7 и использовать RDP клиент версии 6.0 или более поздней.
При использовании Windows Server 2003 SP1 и более поздних версий, будут доступны шифрование канала при помощи SSL (TLS 1.0) и проверка подлинности сервера, клиентские ПК должны иметь версию RDP клиента 5.2 или более позднюю.
В нашей статье мы будем рассматривать настройку терминального сервера на базе Windows Server 2008 R2, однако все сказанное будет справедливо и для Windows Server 2003 (за исключением отсутствующих возможностей).
Для успешной реализации данного решения в вашей сети должен находиться работающий центр сертификации, настройку которого мы рассматривали в предыдущей статье. Для доверия сертификатам выданным данным ЦС на терминальный сервер необходимо установить сертификат ЦС (или цепочку сертификатов) в хранилище Доверенные корневые центры сертификации.
Затем следует выполнить запрос сертификата подлинности сервера со следующими параметрами:
Как включить credssp в xp
Ещё раз – данная операция проводится строго
после
установки Service Pack 3 на Windows XP и в контексте нашего разговора нужна для того, чтобы было возможно подключение к другим серверам по RDP 6.1 с использованием NLA.
Шаг первый – расширяем перечень Security Packages.
Для этого мы откроем ключ реестра
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsa
и найдём в нём значение
Security Packages
. Нажмём правую кнопку и выберем “Modify” (не Modify Binary Data, а просто Modify). Там будет список вида “название package на каждой строке”. Нам надо добавить туда
tspkg
. Остальное надо оставить. Место добавления некритично.
Второй шаг – подцепляем библиотеку.
Ключ будет другим:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProviders
В нём надо будет найти значение
SecurityProviders
(заметьте, как и в предыдущем случае, это не subkey, а значение), и модифицировать его по аналогии, только добавив
credssp.dll
. Остальное в списке, опять же, трогать не надо.
Теперь редактор реестра можно закрыть. После этих операций систему надо будет обязательно перезагрузить, т.к. криптопровайдеры – штука такая, которая на ходу точно не подцепится, и это скорее хорошо, чем плохо.
Как включить rdp over tls
Вариантов, как всегда, несколько. Первый – включение через групповую политику. Для этого надо зайти в целевой объект групповой политики (ну или локально на своей домашней рабочей станции запустить
gpedit.msc
Как подключить сертификат подписанный ad cs к rpd
Привет. При подключении по RDP как правило выскакивает сообщение о том, что сертификат, который используется для проверки подлинности сервера – не заслуживает доверия из-за того, что он самоподписанный. Наверняка вы задавались вопросом – как сделать так, чтобы за место самоподписанного сертификата был сертификат, выданный вашим центром сертификации, ну или не вашим… В общем что бы был полноценный сертификат. Сегодня хочу показать, как это можно сделать.
Тут можно пойти двумя путями:
- Если у вас есть AD CS и нет особых требований к именам, указываемым в сертификате. В этом случае можно сделать полностью автоматическую выдачу сертификатов и их подключение. Это простой способ.
- Если у вас в домене нет центра сертификации Active Directory, или если у вас есть особые требования к Subject Name или Subject Alternative Name. В этом случае придется получать и подключать сертификат вручную. Понадобится подобный сценарий вам может, если, например вы выдаете сертификат для компьютера, находящегося в отказоустойчивом кластере, и соответственно вам нужно будет указать в качестве SAN или SN как имя кластера так и имя хоста.
Начнем с более простого сценария.
У вас уже должен быть установлен и настроен AD CS. Идем на компьютер где он установлен и создаем шаблон для сертификата, который будет использоваться при подключении по RDP. Для этого заходим в консоль Certification Authority и щелкаем правой кнопкой мыши на Ceritificate Templates, выбираем Manage.

В открывшемся окне щелкаем правой кнопкой мыши по шаблону компьютера и выбираем Duplicate Template.
В Compatibility, выбираем уровень CA и получателей, в зависимости от ваших нужд, я поставлю уровень CA и Certificate Recipient на уровень 2008R2.

Во вкладке General задаёмR понятное имя сертификату, например RDPTmpl, так же если хотите можете изменить время жизни и обновления сертификата, а также разрешить публикацию в AD. Я эти опции оставил как есть.

Во вкладке Subject Name по желанию можно выбрать Subject name format, например Common Name, так же обязательно оставьте, что бы публиковалось DNS имя в alternate subject name.

Идем во вкладку Sucurity – тут разрешаем Enroll и Autoenroll для группы компьютеров, для которых должен будет получаться сертификат.

Далее переходим во вкладку Extensions, выбираем Application Policy и жмем Edit.

Здесь нужно удалить Client Authorization, а так же по желанию можно заменить Server Authorization на политику для проверки подлинности RDP. Для этого жмем Add, далее New, в Object identifier вводим 1.3.6.1.4.1.311.54.1.2 и даем понятное имя политике, например Remote Desktop Authentication.

Выбираем созданную политику и удаляем из шаблона Client и Server Authorization.

Жмем ОК и закрываем консоль с шаблонами. Возвращаемся в консоль Certification Authority и снова жмем правой кнопкой по Certificate Templates и выбираем New -> Certificate Template to issue.

Выбираем созданный нами шаблон и жмем ОК.

Теперь идем в редактор групповой политики, создаем или правим существующий объект групповой политики, который прилинкован к OU в которой находятся компьютеры, которым необходимо получить сертификат. Идем в Computer configuration -> Administrative Templates -> Windows components -> Remote Desktop Services -> Security. Тут нам нужен параметр Server authentication certificate template.

Включаем его и указываем имя нашего шаблона (RDPTmpl).

Что бы сертификаты продлялись автоматически, идем в Computer configuration -> Windows settings -> Security Settings -> Public Key Policies. Тут включаем параметр Certificate Services Client – Auto-Enrollment Properties.

Всё дожидаемся, пока обновится групповая политика или обновляем ее сами (gpupdate /force), сервер должен будет получить сертификат, и при подключении по RDP будет использоваться именно этот сертификат. Проверить это можно подключившись к серверу не по доменному имени, а по IP адресу, например.

Если что, хранится этот сертификат в сертификатах компьютера, в личных сертификатах.

Теперь расскажу про то, что делать во втором случае. В общем и целом, сперва нам так, как и с первым случаем необходимо создать шаблон для сертификата. Тут всё точно так же, как и с первым случаем, за исключением вкладки Subject Name. В этот раз нужно выбрать Supply in the request. Так же, думаю лучше поставить галку, что бы при продлении бралась информация из существующего сертификата.

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

Щелкаем правой кнопкой по Личное и выбираем – запросить новый сертификат. На приветственном окне жмем далее. В окне выбора политики регистрации сертификатов оставляем Политику регистрации Active Direcotory.

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

Во вкладке объект указываем полное имя DN в качестве Subject Name (например CN = CL01.test.loc) и разные dns имена в качестве Alternate Subject Name.

Жмем далее, точнее кнопку Заявка, и дожидаемся окончания процесса.

Теперь нам необходимо каким-то образом подключить полученный сертификат к RDP. Тут опять же есть несколько способов.
Первый способ, на мой взгляд менее удобный, но он должен работать на всех системах:
Смотрим отпечаток в свойствах только что полученного сертификата.
![]()
Для упрощения его копирования можно воспользоваться командой powershell:
ls Cert:LocalMachineMy
Копируем нужный отпечаток, далее выполняем команду:
wmic /namespace:\rootCIMV2TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash=”thumbprint”
Где thumbprint – ваш скопированный отпечаток.
Посмотреть отпечаток подключенного сертификата можно командой:
wmic /namespace:\rootCIMV2TerminalServices PATH Win32_TSGeneralSetting Get SSLCertificateSHA1Hash

В случае, если у вас используется старая версия ОС, например Windows 2008R то можно воспользоваться более наглядным способом подключения. Это же касается и случаев, если у вас версия системы выше, чем 2021, и при этом установлены роли RDS.
Устанавливаем фичу Remote Desktop Services Tools. Если что она находится в Remote Server Administration Kit, Role Administration Tools.

Устанавливаем эти компоненты, после установки нужно будет перезагрузить сервер. После перезагрузки идем в Пуск – Администрирование – Службы удаленных рабочих столов – Конфигурация узла сеансов удаленных рабочих столов.

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


Всё. Теперь при подключении по RDP будет использоваться правильный сертификат.

Как привязать службу rdp к не-дефолтному порту
Порт по умолчанию – 3389 TCP. Кстати, не забудьте разрешить его в пакетном фильтре. Ну а если хотите другой – надо зайти в ключ реестра
HKEY_LOCAL_MACHINESystemCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp
и поправить в нём значение
PortNumber
. Учитывайте, что отслеживание конфликтов в плане занятости портов – на Вашей совести, сам он, обнаружив, что назначенный Вами порт занят, “перепрыгнуть” никуда не сможет.
Настраиваем общую логику оптимизации визуальных данных rdp
Параметр, называющийся
Optimize visual experience for RDP sessions
, находящийся в разделе
Remote Session Enviroment
Настраиваем шифрование для rdp
Для конфигурирования будет доступно 4 варианта шифрования. Рассмотрим каждый из них.
Настройка acl для подключения по rdp
По умолчанию для подключения к RDP-серверу необходимо иметь явное разрешение
Настройка режима защиты rdp-сессии
В принципе, это самая простая часть задачи. Суть в следующем. В различных версиях RDP применяется два основных механизма защиты сессии – встроенный в RDP и “заворачивание” сессии в TLS. Встроенный является недостаточно безопасным, и рекомендация “RDP можно наружу только в VPN” – про него.
Настройка сжатия звукового потока
RDP 7.0 приносит отличную возможность регулировать качество сжатия входящего звукового потока (т.е. звука, который идёт с сервера на клиента). Это достаточно полезно – например, если идёт работа на терминальном сервере, то кроме всяких служебных звуков вида “пришло сообщение в ICQ” другие особо как не планируются.
Limit audio playback quality
и находиться в разделе
Device and Resource Redirection
Оптимизация сжатия rdp
Сжатие в RDP прошло долгий путь развития. По RDP 5.2 включительно была подсистема сжатия (“компрессор”), имеющий внутреннее название “Version 1” – самый простой и лёгкий вариант с точки зрения загрузки процессора клиента, но самый плохой с точки зрения нагрузки сети трафиком. В RDP 6.
0 сделали “Version 2”, который был незначительно, но улучшен по параметру эффективности сжатия. Нам интересен “Version 3”, который работает только при подключении к серверам Windows Server 2008 и старше. Он сжимает лучше всех, а затраты процессорного времени с учётом мощностей современных компьютеров несуществены.
Выигрыш при включении V3 может, судя по тестам, достигать 60% и, в общем-то, и без тестов ощутимо заметен на глаз.
Оптимизация скорости rdp
Оптимизация скорости RDP – достаточно обширная тема, поэтому я разделю её на части. В этой будут те способы, которые будут уменьшать нагрузку на протокол до сжатия и до оптимизации сетевого уровня.
Оптимизация соотношения потоков данных в rdp
Трафик RDP-сессии не является чем-то монолитным. Наоборот, он достаточно чётко разделён на потоки данных перенаправляемых устройств (например, копирования файла с локального хоста на терминальный сервер), аудиопоток, поток команд примитивов отрисовки (RDP старается передавать команды примитивов отрисовки, и передаёт битмапы в крайнем случае), а также потоки устройств ввода (мышка и клавиатура).
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTermDD
и создать там для начала (если их там нет) четыре ключа:
- FlowControlDisable
- FlowControlDisplayBandwidth
- FlowControlChannelBandwidth
- FlowControlChargePostCompression
Тип у всех – DWORD 32. Функционал у ключей будет следующим.
Ключ
FlowControlDisable
будет определять, используется ли приоритезация вообще. Если задать единицу, то приоритезация будет выключена, если нуль – включена. Включите её.
Ключи
FlowControlDisplayBandwidthFlowControlChannelBandwidth
будут определять взаимное соотношение двух потоков данных:
- Поток взаимодействия с пользователем (изображение устройства ввода)
- Прочие данные (блочные устройства, буфер обмена и всё остальное)
Сами значения этих ключей не критичны; критично то, как они соотносятся. То есть, если Вы сделаете
FlowControlDisplayBandwidth
равным единице, а
FlowControlChannelBandwidth
– четырём, то соотношение будет 1:4, и на поток взаимодействия с пользователем будет выделяться 20% полосы пропускания, а на остальное – 80%. Если сделаете 15 и 60 – результат будет идентичным, так как соотношение то же самое.
Ключ
FlowControlChargePostCompression
будет определять, когда считается это соотношение – до сжатия или после. Нуль – это до сжатия, единица – после.
Я рекомендую для использования вида “наш удалённый сервак далеко и к нему все по RDP подключаются и в офисе и 1С работают” ставить соотношение 1:
1 и считать его после сжатия. По опыту это может реально помочь в ситуации “печать большого документа с терминального сервера на локальный принтер”. Но это не догма – пробуйте, главный инструмент – знание, как это считается и работает – у Вас уже есть.
Оптимизируем параметры desktop window manager
Параметры, находящиеся в разделе
Remote Session Enviroment
Особенности пакета sp1
RDP — фирменный протокол Microsoft для службы Windows Terminal Services. Сквозное шифрование RDP with SSL обеспечивает дополнительный уровень шифрования для конфиденциальных данных и позволяет клиентам проверить подлинность сервера, предотвращая атаки, в ходе которых мошенник вклинивается между клиентом и сервером (man-in-the-middle).
Отключаем desktop composition
Desktop Composition привносит всякие “красивости” типа Aero и его друзей и ощутимо кушает полосу пропускания. Для работы это не нужно и вредно. Параметр
Allow desktop composition for RDP Sessions
Отключаем редирект неиспользуемых устройств
Если у Вас не планируется подключение определённых классов устройств (например, COM и LPT-портов), или аудио, имеет смысл отключить возможность их перенаправления со стороны сервера. Чтобы клиенты с дефолтными настройками RDP Client не тратили время подключения на согласование неиспользуемого функционала.
Отключите cleartype
Когда у Вас выключен ClearType, протокол RDP передаёт не картинку, а команды по отрисовке символов. Когда включен – рендерит картинку со стороны сервера, сжимает и пересылает клиенту. Это с гарантией в разы менее эффективно, поэтому отключение ClearType значительно ускорит процесс работы и уменьшит время отклика. Сами удивитесь, насколько.
Это можно сделать как на уровне настроек клиента, так и на стороне сервера (параметр
Do not allow font smoothing
Подключение через шлюз
Для подключения откройте стандартное приложение Windows Подключение к удаленному рабочему столу (mstsc.exe). На вкладке Дополнительно нажмите на кнопку Параметры.
В открывшемся окне выберите Использовать следующие параметры сервера шлюза удаленных рабочих столов. Введите имя сервера в следующем формате и нажмите OK:rdgateway.<ваш домен>:<порт>
На вкладке Общие в поле Компьютер введите домен, в поле Пользователь имя пользователя и нажмите Подключить. При необходимости можете сохранить параметры входа.
Примечание: пользователь должен иметь права подключения через шлюз, которые были настроены ранее.
Введите пароль от учетной записи.
В результате будет произведено подключение к удаленному рабочему столу через шлюз RD Gateway. Это можно проверить с помощью команды tracert:
Из вывода видно, что трассировка идет через шлюз.
Привязываем rdp к конкретному адаптеру и порту
Для того, чтобы сервер работал безопасно и предсказуемо (например, не начинал принимать подключения с нового, свежедобавленного сетевого адаптера), необходимо в явном виде указать, на каких интерфейсах служба RDP-сервера должна принимать подключения.
Плюс, достаточно часто бывает полезным переключить порт, на котором сервер слушает подключения. Конечно, можно это сделать и публикуя сервер с RDP через какой-нибудь шлюз, но можно и без этого. Такие, казалось бы, базовые действия в реальности ощутимо снизят процент дураков-скрипткиддисов, которые очередной “мощной тулзой” проверяют wellknown-порты.
Режим rdp client compatible encryption
Второй “никакой” режим. Наследие страшных времён и версий RDP 5.x. Попробует до 128 бит RC4, но сразу согласится на DES/RC2. Не нужен и опасен. Тоже не совместим с TLS.
Режим rdp low encryption
Самый “никакой” режим. Наследие страшных времён и версий RDP 5.x. Может согласовать шифрование на базе 56ти битового DES или 40ка битового RC2, что на текущий момент является несерьёзным. Не нужен и опасен. Например, если включить его, то не включится TLS, т.к. TLS уже откажется согласовывать такие слабые шифры, которые предлагает этот вариант.
Смена стандартного порта remote desktop protocol
Начнем со стандартной меры — смены стандартного порта Windows 2021 RDP, что позволит предотвратить атаку всем известных портов (well-known ports).Настройку порта можно осуществить с помощью реестра — HKEY_LOCAL_MACHINESystemCurrentControlSetControlTerminalServerWinStationsRDP-TcpPortNumber.
Рис. 1. Смена порта RDP в Windows Server 2021 с помощью редактора реестра
После этого запустите Брандмауэр Windows и на боковой панели слева выберите Дополнительные параметры. Далее — Правила для входящих соединений и нажмите кнопку Создать правило (на панели справа)
Рис. 2. Правила для входящих подключений
В появившемся окне выберите Для порта и нажмите кнопку Далее. Затем выберите Определенные локальные порты и введите порт, указанный при редактировании реестра (рис. 3). В следующем окне мастера нужно выбрать Разрешить подключение(рис. 4).
Рис. 3. Задаем новый порт
Рис. 4. Разрешаем подключение
Собственно, на этом настройка завершена. Отключитесь от сервера и установите новое соединение. Не забудьте в настройках RDP-клиента Windows Server 2021 указать новый порт: IP-адрес_сервера: порт.
Создание политики авторизации подключения и ресурсов
Чтобы открыть Remote Desktop Gateway Manager, в Диспетчере серверов выберите Tools и в открывшемся списке Remote Desktop Services → Remote Desktop Gateway Manager
Перед вами откроется менеджер шлюза.
Для создания политик авторизации в древовидной структуре откройте RD Gateway Manager → <Имя сервера> → Policies → Connection Authorization Policies. В вертикальном меню Actions справа выберите Create New Policy → Wizard.
В открывшемся окне выберите Create RD CAP and RD RAP (recommended), чтобы с помощью одного процесса настроить обе политики.
Введите удобное имя для политики авторизации подключения.
На следующем шаге выберите наиболее удобный метод аутентификации: пароль или smartcard. Далее добавьте группы пользователей которые смогут подключаться к этому RD Gateway серверу, для это нажмите Add Group.
Выберите нужную группу, например администраторов домена или контроллеры домена. Выполнить поиск можно с помощью кнопки Check Names.
После добавления групп можно переходить к следующему действию.
Выберите устройства и ресурсы удаленной сессии, которые будут доступны клиентам использующие шлюз.
Выберите нужные для вас значения таймаутов: времени простоя и времени работы сессии.
Перепроверьте выбранные настройки.
Далее вы перейдете к настройке политики авторизации ресурсов. Введите удобное имя политики.
Также добавьте группы пользователей, которые смогут подключаться к сетевым ресурсам.
Выберите группу, содержащую серверы, на которых указанные группы пользователей могли бы работать с удаленным рабочим столом. Для этого нажмите Browse.
В этом примере используется встроенная группа под названием Domain Controllers. Вы можете создавать дополнительные группы, содержащие серверы, которые связаны или принадлежат к определенным отделам или сотрудникам. Таким образом, на предыдущих шагах вы можете назначать группы на основе потребностей пользователей и разрешать им доступ только к определенным серверам.
Убедитесь, что добавлена нужная группа.
Если порт по умолчанию удаленного рабочего стола на серверах был изменен, используйте эту страницу для указания порта. В противном случае выберите разрешение подключения только к порту 3389.
Проверьте указанные настройки для политики.
Далее отобразится результат создания политик.
После создания политик менеджер будет выглядеть следующим образом.
Уберите wallpaper
Параметр
Enforce removal of RD Wallpaper
Установка ssl-сертификата
Для шлюза удаленного рабочего стола должен быть установлен SSL-сертификат. Чтобы установить SSL-сертификат, щелкните имя сервера удаленного рабочего стола в консоли управления удаленным рабочим столом и выберите View or modify certificate properties.
Возможно 3 способа импорта сертификатов:
- создание самоподписанного сертификата и его импорт;
- импорт ранее загруженного сертификата (самоподписанного или стороннего);
- загрузка стороннего сертификата (например, Comodo) и его импорт;
Выберите подходящий вам способ, в нашем примере мы рассмотрим первый случай с генерацией и импортом самоподписанного сертификата.
Введите имя сертификата и его расположение на сервере. Нажмите OK.
Сертификат будет сгенерирован.
В результате отобразится – кому, кем и до какого числа выдан ssl-сертификат. Нажмите Apply для сохранения изменений.
Теперь самоподписанный SSL-сертификат успешно установлен на TCP-порт 443 (порт SSL по умолчанию).
В целях безопасности рекомендуется изменить порт SSL для шлюза удаленных рабочих столов на другой номер. Обычно компании делают это, чтобы попытаться обмануть хакеров, которые могут ориентироваться на стандартный порт 443.
Чтобы изменить номер порта для шлюза RD, щелкните правой кнопкой мыши имя сервера и выберите свойства в консоли управления удаленным рабочим столом (Action →Properties).
Установка роли
Откройте Диспетчер серверов и выберите пункт .
В качестве типа установки укажите Role-based or feature-based installation.
Выберите ваш сервер из пула.
В следующем окне отметьте .
Далее вы увидите краткую информацию о роли.
Далее добавьте сервис .
Для работы этого сервиса необходимо веб-сервер IIS и дополнительные административные инструменты, они будут предложены автоматически, если не были установлены ранее.
Добавьте данные функции.
Установите все выбранные компоненты на VPS с помощью кнопки Install.
Цветность (битовая глубина)
В RDP 7.0 и выше доступны варианты 32,16 и 8 бит. Если речь идёт о работе, то для неё будет достаточно 16 бит. Это ощутимо снизит нагрузку на канал, притом иногда больше, чем в 2 раза, что удивительно, но факт. 8 бит, конечно, тоже можно, но уж больно страшно оно будет выглядеть. 16 бит же вполне приемлемы.
Включите на сервере параметр Limit Maximum Color Depth, либо сделайте аналогичное действие в настройках RDP client.
Заключение
Так как все уже давно вытащили сервера на внешние площадки за бугром, то этот материал является
