- Как в freerdp создать общие папки
- Как вывести удалённый рабочий стол на другой монитор
- Как запустить rdp сервер с xrdp
- Как из linux подключиться к другому linux по rdp
- Связанные статьи:
- Как использовать freerdp-shadow для запуска rdp сервера
- Как подключиться к удалённому рабочему столу с rdesktop
- Как подключиться к удалённому столу по rdp в linux
- Как подключиться командой freerdp
- Как пользоваться freerdp
- Как пользоваться rdesktop
- Как установить сервер rdp в linux
- Конфигурирование автоматического выпуска сертификатов
- Опции xfreerdp
- Ошибка freerdp-shadow «client authentication failure: -1»
- Проверка работоспособности
- Создание групповой политики для rdp подключений
- Создание шаблона сертификата rdp в adcs
- Установка своего сертификата для rdp
- Шаг 1.
- Шаг 2.
- Шаг 3.
- Шаг 4.
- Шаг 5.
- Шаг 6.
- Шаг 7.
- Шаг второй. и снова вопросы доверия
- Шаг нулевой. подготовка и вопросы доверия
- Шаг первый. размашисто подписываем файл
Как в freerdp создать общие папки
С удалённым рабочим столом, подключённым по RDP, можно иметь совместные папки. Рассмотрим несколько примеров.
Чтобы подключить все точки монтирования в текущей системе как совместные папки на удалённом рабочем столе используйте опцию drives, например:
xfreerdp /u:Tester /p:1234 /v:192.168.0.101 drives
На скриншоте показан удалённый стол Windows, в котором доступны папки Linux системы, из которой сделано подключение по RDP:
Чтобы подключить только домашнюю папку текущего пользователя Linux в качестве сетевой папки к компьютеру по RDP укажите опцию home-drive:
xfreerdp /u:Tester /p:1234 /v:192.168.0.101 home-drive
В этом случае домашняя папка смонтирована в систему, подключённую по протоколу удалённый рабочий стол:
С опцией /drive:ИМЯ,/ПУТЬ/В/LINUX можно подключить любую папку с любым именем. В качестве /ПУТЬ/В/LINUX должен быть указан путь в текущей системе, а ИМЯ это то имя, которое будет иметь шара в удалённой системе. Например, чтобы подключить корневую папку текущей системы (/) к удалённой с именем root:
xfreerdp /u:Tester /p:1234 /v:192.168.0.101 /drive:root,/
Как вывести удалённый рабочий стол на другой монитор
Если у вас несколько мониторов, то вы можете выбрать, какой из них использовать для удалённой системы. Чтобы вывести список мониторов запустите команду:
xfreerdp monitor-list
Выбранный идентификатор монитора (или нескольких мониторов) укажите с помощью опции /monitors:<id>[,[,…]].
Как запустить rdp сервер с xrdp
Для установки xrdp в Debian, Kali Linux, Linux Mint, Ubuntu и производные выполните команду:
sudo apt install xrdp
Для установки xrdp в Arch Linux и производные выполните команды:
Как из linux подключиться к другому linux по rdp
Каких-то особенностей при подключении с использованием программы xfreerdp нет, достаточно запустить сервер RDP, причём, если вы используете freerdp-shadow, то опции /sam-file:SAM /sec:nla также нужны:
freerdp-shadow-x11 /sam-file:SAM /sec:nla
Либо запустите xrdp-sesman и xrdp.
А затем подключение ничем не отключается от подключению к Windows:
xfreerdp /u:mial /p:2 /v:192.168.0.73
Что касается rdesktop, то её не удалось заставить работать ни с одним из рассмотренных серверов RDP под Linux — если вы знаете, как это сделать, то пишите в комментариях.
Связанные статьи:
Как использовать freerdp-shadow для запуска rdp сервера
Для установки freerdp в Debian, Kali Linux, Linux Mint, Ubuntu и производные выполните команду:
sudo apt install freerdp2-shadow-x11 winpr-utils
Для установки freerdp в Arch Linux и производные выполните команду:
sudo pacman -S freerdp
Исполнимые файлы в разных дистрибутивах называются чуть по-разному. В Debian, Kali Linux, Linux Mint, Ubuntu файл для запуска RDP сервера называется: freerdp-shadow-x11
А в Arch Linux файл для запуска RDP сервера называется: freerdp-shadow-cli
Но по сути это одна программа и опции у них одинаковые.
Чуть выше, говоря о rdesktop, мы уже столкнулись с Network Level Authentication (NLA), то есть проверкой подлинности на уровне сети. Для запуска RDP сервера на Linux вы должны выбрать один из двух вариантов:
- запустить сервер вовсе без аутентификации
- включить NLA и сделать необходимые для неё настройки
Чтобы запустить RDP сервер вовсе без аутентификации используйте опцию -auth:
freerdp-shadow-x11 -auth
Если аутентификация включена, PAM используется с подсистемой X11. Запуск от имени пользователя root не обязателен, однако, если запускать от имени пользователя, только тот же пользователь, который запустил freerdp-shadow, может аутентифицироваться. Предупреждение: если аутентификация отключена, каждый может подключиться.
Любая сетевая служба без аутентификации это беда для безопасности системы. Поэтому рассмотрим, как запустить freerdp-shadow с поддержкой NLA.
Прежде всего для NLA необходимо создать файл, в котором будет строка вида:
ПОЛЬЗОВАТЕЛЬ:::ХЕШ:::
Имя пользователя Linux нам известно, для вычисления хеша нужно выполнить команду вида:
winpr-hash -u ПОЛЬЗОВАТЕЛЬ -p ПАРОЛЬ
К примеру, имя пользователя mial, а пароль цифра 2 тогда команда следующая:
winpr-hash -u mial -p 2
Получен хеш:
8f33e2ebe5960b8738d98a80363786b0
Создаём текстовый файл SAM и в него записываем строку
mial:::8f33e2ebe5960b8738d98a80363786b0:::
Теперь запускаем freerdp-shadow-x11 с двумя опциями:
- /sam-file:ФАЙЛ — указывает на расположение NTLM SAM файла для NLA аутентификации
- /sec:nla — принудительное включение аутентификации по протоколу NLA
Итак, моя команда следующая:
freerdp-shadow-x11 /sam-file:SAM /sec:nla
Для проверки подключаюсь из Windows:
У нас запрашивают пароль — это означает, что на сервере RDP включена аутентификация NLA.
Для того, чтобы делиться не всем экраном, а только его частью, используйте опцию /rect:x,y,w,h. Где:
- x,y — координаты верхнего левого угла прямоугольника
- w — ширина прямоугольника
- h — высота прямоугольника
К примеру, чтобы делиться частью экрана 500×500 пикселей с координатами 200,300:
freerdp-shadow-x11 /sam-file:SAM /sec:nla /rect:200,300,500,500
Как подключиться к удалённому рабочему столу с rdesktop
Для подключения к RDP с rdesktop используйте команду вида:
rdesktop -u ПОЛЬЗОВАТЕЛЬ -p ПАРОЛЬ ХОСТ
Например:
rdesktop -u Tester -p 1234 192.168.0.101
Как обычно, в самом начале возникнет проблема с сертификатом:
Autoselecting keyboard map 'ru' from locale
ATTENTION! The server uses and invalid security certificate which can not be trusted for
the following identified reasons(s);
1. Certificate issuer is not trusted by this system.
Issuer: CN=HackWare-MiAl
Review the following certificate info before you trust it to be added as an exception.
If you do not trust the certificate the connection atempt will be aborted:
Subject: CN=HackWare-MiAl
Issuer: CN=HackWare-MiAl
Valid From: Thu Apr 2 20:56:11 2020
To: Fri Oct 2 20:56:11 2020
Certificate fingerprints:
sha1: 6a4cbe35235f46b5bd37155ef721ec59aac11c3e
sha256: 35368cc1b2ae9e79927bcb8ededed228062de34978aeeeab74bb029ccbc255e9
Do you trust this certificate (yes/no)? yes
Набираем yes.
Затем возникнет ошибка:
Failed to initialize NLA, do you have correct Kerberos TGT initialized ? Failed to connect, CredSSP required by server (check if server has disabled old TLS versions, if yes use -V option).
Как подключиться к удалённому столу по rdp в linux
Клиенты RDP существуют для многих платформ, даже для мобильных телефонов, конечно, имеются клиенты RDP и для Linux
Мы рассмотрим 2 клиента RDP под Linux
- freerdp — бесплатная реализация протокола удалённого рабочего стола (Remote Desktop Protocol (RDP))
- rdesktop — клиент с открытым исходным кодом для служб Windows удалённого рабочего стола
Также имеется клиент VNC и RDP с графическим пользовательским интерфейсом — Remmina. У программы много настроек, в целом она дружественная пользователю за исключением одного недостатка — она не заработала. Тем не менее она присутствует в стандартных репозиториях большинства дистрибутивов, поэтому при желании вы без труда сможете установить и попробовать её.
Как подключиться командой freerdp
Для подключения к удалённому рабочему столу с помощью xfreerdp, запустите команду вида:
xfreerdp /f /u:ИМЯ-ПОЛЬЗОВАТЕЛЯ /p:ПАРОЛЬ /v:ХОСТ[:ПОРТ]
В этой команде:
Например, я хочу открыть удалённый стол компьютера с IP адресом 192.168.0.101, на котором имеется пользователь Tester с паролем 1234, причём я хочу открыть удалённый рабочий стол в полноэкранном режиме, тогда команда следующая:
xfreerdp /f /u:Tester /p:1234 /v:192.168.0.101
Для переключения между полноэкранным режимом и оконным, используется сочетание клавиш Ctrl Alt Enter.
При первом подключении появляется следующее сообщение о проблеме с сертификатом:
Как пользоваться freerdp
Для установки freerdp в Debian, Kali Linux, Linux Mint, Ubuntu и производные выполните команду:
sudo apt install freerdp2-x11 freerdp2-shadow-x11
Если пакеты freerdp2-x11 и freerdp2-shadow-x11 не найдены, то поищите пакет с именем freerdp.
Для установки freerdp в Arch Linux и производные выполните команду:
sudo pacman -S freerdp
Как пользоваться rdesktop
Для установки rdesktop в Debian, Kali Linux, Linux Mint, Ubuntu и производные выполните команду:
sudo apt install rdesktop
Для установки rdesktop в Arch Linux и производные выполните команду:
sudo pacman -S rdesktop
Как установить сервер rdp в linux
Сервер удалённого рабочего стола RDP может работать не только на Windows, но и на Linux. В результате к Linux можно подключиться по протоколу RDP.
В Linux протокол RDP не встроен по умолчанию как в Windows. Также в Linux отсутствуют некоторые другие протоколы, которые используются прозрачно (незаметно) для пользователей Windows, например, для сетевой аутентификации.
Тем не менее существуют сервера RDP которые успешно работают на Linux.
Конфигурирование автоматического выпуска сертификатов
Переходим в Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Public Key Policies и выбираем Certificate Services Client — Auto-Enrollment Включаем автоматический выпуск сертификатов а так же настройки по их автоматическому обновлению:

Опции xfreerdp
У программы xfreerdp множество опций, далее выбраны самые интересные из них:
/v:<СЕРВЕР>[:ПОРТ] Имя хоста сервера с RDP
/u:... Имя пользователя
/p:<ПАРОЛЬ> Пароль
/f Полноэкранный режим (<Ctrl> <Alt> <Enter> переключает полноэкранный режим)
/port:<number> Порт сервера
/size:... Размер экрана
/w:<width> Ширина
/h:<height> Высота
/monitor-list Вывести список обнаруженных мониторов
/monitors:<id>[,[,...]] Выбрать мониторы для использования
-grab-keyboard Отключить захват клавиатуры
-mouse-motion Отключить отправку движений мыши
/log-level:... Установить уровень журналирования по умолчанию, подробности смотрите в wLog(7)
home-drive Сделать домашнюю папку пользователя совместной с удалённым столом
/drive:<ИМЯ>,<ПУТЬ> Подключить директорию <ПУТЬ> как шару с именем <ИМЯ>
drives Включить перенаправление всех точек монтирования как совместных папок
/ipv6 Предпочитать IPv6 AAAA запись, а не IPv4 A запись
/t:<ЗАГОЛОВОК> Заголовок окна
/kbd:0x<id> или <ИМЯ> Раскладка клавиатуры
/kbd-fn-key:<ЗНАЧЕНИЕ> Значение функциональной клавиши
/kbd-list Вывести список раскладок клавиатуры
/kbd-subtype:<id> Подтип клавиатуры
/kbd-type:<id> Тип клавиатурыОшибка freerdp-shadow «client authentication failure: -1»
Если при запуске RDP сервера freerdp-shadow вы получили ошибку:
[11:54:02:458] [1921:1925] [ERROR][com.freerdp.client.shadow] - client authentication failure: -1 [11:54:02:458] [1921:1925] [ERROR][com.freerdp.core.peer] - peer_recv_callback: CONNECTION_STATE_FINALIZATION - peer_recv_pdu() fail [11:54:02:458] [1921:1925] [ERROR][com.freerdp.core.transport] - transport_check_fds: transport->ReceiveCallback() - -1 [11:54:02:458] [1921:1925] [ERROR][com.freerdp.client.shadow] - Failed to check FreeRDP file descriptor
То необходимо создать файл SAM и запустить freerdp-shadow с опциями /sam-file:SAM /sec:nla как это показано выше.
Проверка работоспособности
После применения групповой политики Windows клиенты должны в автоматическом порядке получить сертификат. Если этого не произошло, стоит обратить внимание на:
- Отсутствие в правильной группе безопасности, которая указана в шаблоне;
- Отсутствие к ЦС необходимых сетевых портов от клиента. Напомню, это tcp/135 (RPC) и динамические порты tcp/49152—65535.
Проверить что сертификат был успешно выпущен можно в консоли ADCS:

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

Создание групповой политики для rdp подключений
Непосредственно сама конфигурация Windows машин будет централизовано выполнятся с помощью групповой политики. Я рекомендую создать отдельный экземпляр политики, в котором будет следующее:
- Задание имени шаблона сертификата для использования в RDP подключениях;
- Задание типа шифрования RDP подключений;
- Конфигурирование автоматического выпуска сертификатов.
Создание шаблона сертификата rdp в adcs
Первый шаг состоит в создании шаблона сертификата, с помощью которого Windows клиенты будут автоматически генерировать сертификаты используемые в RDP подключениях. Для этого в оснастке ADCS переходим к управлению шаблонами сертификатов:

Дублируем сертификат Computer

Задаем имя будущего шаблона:

Указываем настройки совместимости:

В Extensions, необходимо задать правильные Application Policies для поддержки TLS в RDP протоколе

Для этого удаляем Client Authentication и Server Authentication и добавляем Remote Desktop Authentication с OID 1.3.6.1.4.1.311.54.1.2, как показано на скриншоте:

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

Завершающим шагом будет его выпуск на выдающем корпоративном ЦС:

Установка своего сертификата для rdp
Чисто для себя заметка
Можно ли каким-то образом, в клиентской винде не входящей в AD, для сервера удалённых рабочих столов установить свой сертификат?
Немного подробнее:
После запуска службы (или если она у вас запущена, то после установки соответствующей галки на вкладке “Удалённый доступ” ) “Службы удаленных рабочих столов” создаётся самоподписанный сертификат (который помещается в хранилище Удалённый рабочий стол > Сертификаты) – хотелось бы его заменить на свой.
Чего только не перепробовал, но после удаления сертификата и перезапуска “Службы удаленных рабочих столов” создаётся новый самоподписанный сертификат, а все мои игнорируются.
1. Идем (gpedit.msc) по пути PC ConfigurationAdministrative TemplatesWindows ComponentsRemote Desktop ServicesRemote Desktop Session HostSecurity: Require use of specific security layer for remote (RDP) connections выбираем SSL (TLS 1.0).
2. Импортируем сертификат в “Сертификаты (локальный компьютер)PersonalRegistryCertificates. Сертификат должен быть в формате PKCS12 (.p12). Выбираем, щелчок – All Tasks – Manage Private Keys… Добавляем NETWORK SERVICE (права Чтение). Сохраняем.
3. Идем в реестр “HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp”, добавляем Binary Value (Value name: SSLCertificateSHA1Hash ; Value data: <отпечаток сертификата/certificate thumbprint>). Сохраняем.
4. Идем в “Сертификаты (локальный компьютер)”Remote DesktopRegistryCertificates. Удаляем сертификат ПК. Перезагружаем ПК. (Сертификат ПК создастся заново автоматом (после рестарта компьютера), но использоваться уже не будет).
Собственно все!
terasto
Спасибище!
Цитата:
Добавляем NETWORK SERVICE (права Чтение).
Про это я не знал!
Цитата:
Идем в реестр … добавляем Binary Value (Value name: SSLCertificateSHA1Hash ; Value data: <отпечаток сертификата/certificate thumbprint>).
Для этого дела есть скрипт – запускать с такими параметрами:
Код:
cscript rdconfig.js <thumbprint of your certificate>
(если лень пробелы их хеша убирать, то можно в кавычки его)
§
Чисто для себя заметка
Можно ли каким-то образом, в клиентской винде не входящей в AD, для сервера удалённых рабочих столов установить свой сертификат?
Немного подробнее:
После запуска службы (или если она у вас запущена, то после установки соответствующей галки на вкладке “Удалённый доступ” ) “Службы удаленных рабочих столов” создаётся самоподписанный сертификат (который помещается в хранилище Удалённый рабочий стол > Сертификаты) – хотелось бы его заменить на свой.
Чего только не перепробовал, но после удаления сертификата и перезапуска “Службы удаленных рабочих столов” создаётся новый самоподписанный сертификат, а все мои игнорируются.
1. Идем (gpedit.msc) по пути PC ConfigurationAdministrative TemplatesWindows ComponentsRemote Desktop ServicesRemote Desktop Session HostSecurity: Require use of specific security layer for remote (RDP) connections выбираем SSL (TLS 1.0).
2. Импортируем сертификат в “Сертификаты (локальный компьютер)PersonalRegistryCertificates. Сертификат должен быть в формате PKCS12 (.p12). Выбираем, щелчок – All Tasks – Manage Private Keys… Добавляем NETWORK SERVICE (права Чтение). Сохраняем.
3. Идем в реестр “HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp”, добавляем Binary Value (Value name: SSLCertificateSHA1Hash ; Value data: <отпечаток сертификата/certificate thumbprint>). Сохраняем.
4. Идем в “Сертификаты (локальный компьютер)”Remote DesktopRegistryCertificates. Удаляем сертификат ПК. Перезагружаем ПК. (Сертификат ПК создастся заново автоматом (после рестарта компьютера), но использоваться уже не будет).
Собственно все!
terasto
Спасибище!
Цитата:
Добавляем NETWORK SERVICE (права Чтение).
Про это я не знал!
Цитата:
Идем в реестр … добавляем Binary Value (Value name: SSLCertificateSHA1Hash ; Value data: <отпечаток сертификата/certificate thumbprint>).
Для этого дела есть скрипт – запускать с такими параметрами:
Код:
cscript rdconfig.js <thumbprint of your certificate>
(если лень пробелы их хеша убирать, то можно в кавычки его)
§
Чисто для себя заметка
Можно ли каким-то образом, в клиентской винде не входящей в AD, для сервера удалённых рабочих столов установить свой сертификат?
Немного подробнее:
После запуска службы (или если она у вас запущена, то после установки соответствующей галки на вкладке “Удалённый доступ” ) “Службы удаленных рабочих столов” создаётся самоподписанный сертификат (который помещается в хранилище Удалённый рабочий стол > Сертификаты) – хотелось бы его заменить на свой.
Чего только не перепробовал, но после удаления сертификата и перезапуска “Службы удаленных рабочих столов” создаётся новый самоподписанный сертификат, а все мои игнорируются.
1. Идем (gpedit.msc) по пути PC ConfigurationAdministrative TemplatesWindows ComponentsRemote Desktop ServicesRemote Desktop Session HostSecurity: Require use of specific security layer for remote (RDP) connections выбираем SSL (TLS 1.0).
2. Импортируем сертификат в “Сертификаты (локальный компьютер)PersonalRegistryCertificates. Сертификат должен быть в формате PKCS12 (.p12). Выбираем, щелчок – All Tasks – Manage Private Keys… Добавляем NETWORK SERVICE (права Чтение). Сохраняем.
3. Идем в реестр “HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp”, добавляем Binary Value (Value name: SSLCertificateSHA1Hash ; Value data: <отпечаток сертификата/certificate thumbprint>). Сохраняем.
4. Идем в “Сертификаты (локальный компьютер)”Remote DesktopRegistryCertificates. Удаляем сертификат ПК. Перезагружаем ПК. (Сертификат ПК создастся заново автоматом (после рестарта компьютера), но использоваться уже не будет).
Собственно все!
terasto
Спасибище!
Цитата:
Добавляем NETWORK SERVICE (права Чтение).
Про это я не знал!
Цитата:
Идем в реестр … добавляем Binary Value (Value name: SSLCertificateSHA1Hash ; Value data: <отпечаток сертификата/certificate thumbprint>).
Для этого дела есть скрипт – запускать с такими параметрами:
Код:
cscript rdconfig.js <thumbprint of your certificate>
(если лень пробелы их хеша убирать, то можно в кавычки его)
Шаг 1.
Открываем терминал.
Шаг 2.
Становимся суперпользователем
sudo su
Шаг 3.
Установим и запустим RDP-сервер.
apt -y install xrdp xorgxrdp systemctl enable xrdp systemctl start xrdp
Шаг 4.
Для того, чтобы можно было подключаться к серверу, откроем в сетевом экране порт 3389/tcp.
ufw allow 3389/tcp ufw reload
Шаг 5.
А теперь немного магии. 🙂
Если во время работы RDP-клиента сессия будет случайно или специально прервана, то при новом подключении откроется НОВАЯ сессия, а СТАРАЯ сессия со всеми открытыми программами так и останется висеть в памяти сервера, что, возможно, будет мешать работе.
cp /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini.old sed -i 's/fork=true/fork=false/' /etc/xrdp/xrdp.ini
Шаг 6.
Далее в файле /etc/xrdp/xrdp.ini комментируем секцию [Xvnc] , а секцию [Xorg] наоборот, – раскомментируем.
cp /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini.old2 mcedit /etc/xrdp/xrdp.ini
При помощи редактора приведите всё примерно к такому виду:
Шаг 7.
Решение проблемы с переключением языка клавиатуры при подключении из Windows.
ВАЖНО!!! Выполнять только при необходимости!!!
Если будут проблемы с переключением раскладки, откройте файл /etc/xrdp/xrdp_keyboard.ini
cp /etc/xrdp/xrdp_keyboard.ini /etc/xrdp/xrdp_keyboard.ini.old mcedit /etc/xrdp/xrdp_keyboard.ini
И добавьте в конец файла:
[layouts_map_ru] rdp_layout_us=ru,us rdp_layout_ru=ru,us [rdp_keyboard_ru] keyboard_type=4 keyboard_type=7 keyboard_subtype=1 options=grp:alt_shift_toggle rdp_layouts=default_rdp_layouts layouts_map=layouts_map_ru
В данной конфигурации раскладка переключается сочетанием клавиш Alt Shift.
Для применения настроек перезагрузите сервер xrdp:
systemctl restart xrdp
Если и это не поможет, то google | yandex вам в помощь.
PS.
Иногда после перезагрузки сервера RDP не работает. Помогает обычный перезапуск службы
systemctl restart xrdp
В причинах пока не разобрался.
Шаг второй. и снова вопросы доверия
Для избавления от этого сообщения нам снова понадобится групповая политика. На этот раз дорога лежит в раздел Конфигурация компьютера — Политики — Административные шаблоны — Компоненты Windows — Службы удаленных рабочих столов — Клиент подключения к удаленному рабочему столу — Указать отпечатки SHA1 сертификатов, представляющих доверенных издателей RDP.
Нужная нам политика.
В политике достаточно добавить уже знакомый нам отпечаток с предыдущего шага.
Стоит отметить, что эта политика перекрывает политику «Разрешать RDP-файлы от допустимых издателей и пользовательские параметры RDP, заданные по умолчанию».
Настроенная политика.
Шаг нулевой. подготовка и вопросы доверия
Итак, наш пользователь тыкает на сохраненный файл с расширением .rdp и получает такой вот запрос:
«Зловредное» подключение.
Для избавления от этого окна используется специальная утилита под названием RDPSign.exe. Полная документация доступна, как обычно, на официальном сайте, а мы разберем пример использования.
Для начала нам нужно взять сертификат для подписывания файла. Он может быть:
Самое главное, чтобы сертификат имел возможность подписывать (да, можно отобратьу бухгалтеров ЭЦП), а клиентские ПК ему доверяли. Здесь я буду использовать самоподписанный сертификат.
Напомню, что доверие самоподписанному сертификату можно организовать при помощи групповых политик. Чуть больше подробностей — под спойлером.
Если проблемы с доверием решены, переходим непосредственно к вопросу подписи.
Шаг первый. размашисто подписываем файл
Сертификат есть, теперь нужно узнать его отпечаток. Просто откроем его в оснастке «Сертификаты» и скопируем на вкладке «Состав».
Нужный нам отпечаток.
Лучше сразу его привести к должному виду — только большие буквы и без пробелов, если они есть. Это удобно сделать в консоли PowerShell командой:
("6b142d74ca7eb9f3d34a2fe16d1b949839dba8fa").ToUpper().Replace(" ","")
Получив отпечаток в нужном формате, можно смело подписывать файл rdp:
rdpsign.exe /sha256 6B142D74CA7EB9F3D34A2FE16D1B949839DBA8FA .contoso.rdp
Где .contoso.rdp — абсолютный или относительный путь к нашему файлу.
После того как файл подписан, уже не получится изменить часть параметров через графический интерфейс вроде имени сервера (действительно, иначе смысл подписывать?) А если поменять настройки текстовым редактором, то подпись «слетает».
Теперь при двойном клике по ярлыку сообщение будет другим:
Новое сообщение. Цвет менее опасный, уже прогресс.
Избавимся же и от него.
