29 November 2019

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

Сервер Молл corporate blogSystem administration
Tutorial


Не так давно внедряли мы решение на терминальном сервере Windows. Как водится, кинули на рабочие столы сотрудникам ярлыки для подключения, и сказали — работайте. Но пользователи оказались зашуганными по части КиберБезопасности. И при подключении к серверу, видя сообщения типа: «Вы доверяете этому серверу? Точно-точно?», пугались и обращались к нам — а все ли хорошо, можно нажимать на ОК? Тогда и было решено сделать все красиво, чтобы никаких вопросов и паники.


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


Шаг нулевой. Подготовка и вопросы доверия


Итак, наш пользователь тыкает на сохраненный файл с расширением .rdp и получает такой вот запрос:



«Зловредное» подключение.


Для избавления от этого окна используется специальная утилита под названием RDPSign.exe. Полная документация доступна, как обычно, на официальном сайте, а мы разберем пример использования.


Для начала нам нужно взять сертификат для подписывания файла. Он может быть:


  • Публичным.
  • Выданным внутренней службой Certificate Authority.
  • Вовсе самоподписанным.

Самое главное, чтобы сертификат имел возможность подписывать (да, можно отобрать
у бухгалтеров ЭЦП), а клиентские ПК ему доверяли. Здесь я буду использовать самоподписанный сертификат.


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


Как сделать сертификат доверенным при помощи магии GPO

Для начала нужно взять имеющийся сертификат без закрытого ключа в формате .cer (это можно сделать, экспортировав сертификат из оснастки «Сертификаты») и положить его в сетевую папку, доступную пользователям для чтения. После этого можно настроить групповую политику.


Импорт сертификата настраивается в разделе: Конфигурация компьютера — Политики — Конфигурация Windows — Параметры безопасности — Политики открытого ключа — Доверенные корневые центры сертификации. Далее правой кнопкой мыши импортируем сертификат.



Настроенная политика.


Теперь клиентские ПК будут доверять самоподписанному сертификату.


Если проблемы с доверием решены, переходим непосредственно к вопросу подписи.


Шаг первый. Размашисто подписываем файл


Сертификат есть, теперь нужно узнать его отпечаток. Просто откроем его в оснастке «Сертификаты» и скопируем на вкладке «Состав».



Нужный нам отпечаток.


Лучше сразу его привести к должному виду — только большие буквы и без пробелов, если они есть. Это удобно сделать в консоли PowerShell командой:


("6b142d74ca7eb9f3d34a2fe16d1b949839dba8fa").ToUpper().Replace(" ","")

Получив отпечаток в нужном формате, можно смело подписывать файл rdp:


rdpsign.exe /sha256 6B142D74CA7EB9F3D34A2FE16D1B949839DBA8FA .\contoso.rdp

Где .\contoso.rdp — абсолютный или относительный путь к нашему файлу.


После того как файл подписан, уже не получится изменить часть параметров через графический интерфейс вроде имени сервера (действительно, иначе смысл подписывать?) А если поменять настройки текстовым редактором, то подпись «слетает».

Теперь при двойном клике по ярлыку сообщение будет другим:



Новое сообщение. Цвет менее опасный, уже прогресс.


Избавимся же и от него.


Шаг второй. И снова вопросы доверия


Для избавления от этого сообщения нам снова понадобится групповая политика. На этот раз дорога лежит в раздел Конфигурация компьютера — Политики — Административные шаблоны — Компоненты Windows — Службы удаленных рабочих столов — Клиент подключения к удаленному рабочему столу — Указать отпечатки SHA1 сертификатов, представляющих доверенных издателей RDP.



Нужная нам политика.


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


Стоит отметить, что эта политика перекрывает политику «Разрешать RDP-файлы от допустимых издателей и пользовательские параметры RDP, заданные по умолчанию».


Настроенная политика.


Вуаля, теперь никаких странных вопросов — только запрос логина-пароля. Хм…


Шаг третий. Прозрачный вход на сервер


Действительно, если мы уже авторизовались при входе на доменный компьютер, то зачем нам вводить повторно тот же логин и пароль? Передадим же учетные данные на сервер «прозрачно». В случае с простым RDP (без использования RDS Gateway) на помощь нам придет… Правильно, групповая политика.


Идем в раздел: Конфигурация компьютера — Политики — Административные шаблоны — Система — Передача учетных данных — Разрешить передачу учетных данных, установленных по умолчанию.


Здесь в список можно добавить нужные серверы или использовать wildcard. Выглядеть это будет как TERMSRV/trm.contoso.com или TERMSRV/*.contoso.com.



Настроенная политика.


Теперь, если посмотреть на наш ярлык, то выглядеть он будет примерно так:



Имя пользователя не поменять.


В случае если используется RDS Gateway, понадобится еще и разрешить на нем передачу данных. Для этого в диспетчере IIS нужно в «Методах проверки подлинности» отключить анонимную проверку и включить проверку подлинности Windows.



Настроенный IIS.


Не забываем по завершении перезапустить веб-сервисы командой:


iisreset /noforce

Вот теперь все хорошо, никаких вопросов и запросов.

Only registered users can participate in poll. Log in, please.
Расскажите, а вы подписываете ярлыки RDP своим пользователям?
43.96% Не, они приучены жать на «ОК» в сообщениях не читая, некоторые даже сами галки ставят «Больше не спрашивать». 40
28.57% Сам аккуратно руками кладу ярлычок и первый вход на сервер делаю вместе с каждым пользователем. 26
8.79% Конечно, я люблю во всем порядок. 8
18.68% Не использую терминальные серверы. 17
91 user voted. 17 users abstained.
Tags:windowsсистемное администрированиесертификатытерминальный сервер
Hubs: Сервер Молл corporate blog System administration
+12
11.1k 107
Comments 13
Top of the last 24 hours