- Добавляем А запись
- Качаем WinAcme
- Открываем 80 порт
- Разрешаем выполнение скриптов
- Устанавливаем сертификат
- Dmitriy poberezhniy it technology
- Запуск rdp соединения с неподписанного .rdp файла
- Настройка групповой политики для выдачи rdp сертификатов
- Подписываем rdp файл и добавляем отпечаток доверенного rdp сертификата
- Предупреждение о самоподписанном сертификате rdp
- Создаем шаблон rdp сертификата в центре сертификации (ca)
- Шаг нулевой. подготовка и вопросы доверия
- Шаг первый. размашисто подписываем файл
Добавляем А запись
Просто добавляем A запись и вписываем в неё IP адрес сервера. На этом работа с доменом окончена.
Качаем WinAcme
. Архив лучше всего распаковать туда, куда вы не доберетесь, исполняемые файлы и скрипты вам еще пригодятся в будущем для автоматического обновления сертификата. Лучше всего вытряхнуть архив в C:WinAcme.
Открываем 80 порт
Разрешаем выполнение скриптов
Чтобы WinAcme смог без проблем импортировать новый сертификат, нужно разрешить выполнение скриптов. Для этого переходив в папку /Scripts/
Перед запуском WinAcme нам нужно разрешить выполнение двух скриптов. Для этого двойным кликом запустите PSRDSCerts.bat из папки со скриптами.
Устанавливаем сертификат
Дальше скопируйте строку ниже и введите имя домена, по которому хотите подключатсяь к серверу и выполните команду.
Dmitriy poberezhniy it technology
При настройке RemoteApp многие системные администраторы игнорируют возможность подписать RDP-файлы с помощью сертификата выданным доверенным центром сертификации. Какие положительные моменты мы сможем получить, если подпишем RDP-файл? Ответ очень прост: сертификат позволяет пользователям распознавать ресурсы организации и доверять им. Так же системный администратор может запретить выполнение не подписанных RDP-файлов, и запретить выполнение RDP-файлов которые подписаны сертификатами выданные не “доверенными” центрами сертификации.
И так начнемс…
Шаг 1:
Выдаем сертификат для нашего RemoteApp приложения (приложений) доверенным ЦС:
Открываем оснастку Сертификаты – Учетной записи компьютера:
Далее Личное – Сертификаты – Действие – Все задачи – Запросить новый сертификат. Следуя мастеру, запрашиваем сертификат.
Шаг 2:
Открываем диспетчер удаленных приложений RemoteApp (remoteprograms.msc). Изменяем параметры цифровой подписи, указываем сертификат, который мы получили пунктом выше.
Шаг 3:
Создадим RDP-файл, который будет использовать в качестве цифровой подписи сертификат.
Шаг 4:
Переходим настройке групповых политик. Мы будем редактировать следующие Компоненты Windows – Службы удаленных рабочих столов – Клиент подключения к удаленному рабочему столу – Разрешить RDP-файлы от неизвестных издателей и Компоненты Windows – Службы удаленных рабочих столов – Клиент подключения к удаленному рабочему столу –Указать отпечатки SHA1 сертификатов. Эти групповые политики доступны как в разделе Конфигурация Компьютера, так и Конфигурация Пользователя
Указываем отпечаток нашего сертификата
в групповой политике «Указать отпечатки SHA1 сертификатов»
Если этого не сделать, то при запуске приложения мы получим сообщение о том, что нужно проверить издателя приложения
Ипараметр «Разрешить RDP-файлы от неизвестных издателей» зададим «Отключить».
Подводим итоги:
Запуск rdp соединения с неподписанного .rdp файла
По ряду причин удобно поднимать соединение командой
mstsc <имя_конфигурации.rdp> /w <ширина окна в пикселах> /h <высота окна в пикселах>.
У меня для особо одаренных юзеров такой .rdp файл генерируется на компьютере пользователя автоматически, в него включаются такие плюшки, как:
screen mode id:i:2 – открывать соединение в окне (иначе пользователь в кнопках “пуск” запутается)
username:s:<имя_пользователя> – автоматически подставить нужное имя (нужно ввести только пароль)
redirectprinters:i:1 – принтеры можно будет использовать через EasyPrint
connection type:i:6 – Тип соединения – LAN (:1 – модем на 56К)
Однако при запуске – вылезает сообщение
Можно вручную отметить нужный список необходимых устройств и поставить галочку “не спрашивать” (ага, у пары сотен пользователей), но это не наш путь.
Отметим, что при установке галочки в реестре по адресу
HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server ClientLocalDevices
создается ключ
“имя сервера”=dword:00000044
0x00000044 (=68 dec)- это бигмак битмап разрешенных устройств.
Экспериментально установил, что
04 – буфер обмена
40 – принтеры клиента
Остальные значения мне недоступны (где-то там звук, COM порты, локальные диски клиента, смарткарты, USB).
В некоторых источниках фигурирует dword:00000005 (буфер есть, принтеров нет) и dword:0000006f (все включено).
Можно автоматизировать создание этого ключа реестра (кусок vbscript из hta пользователького интерфейса) –
===
Const rdp_ip1 = “192.168.x.y1”
Const rdp_ip2 = “192.168.x.y2”
Set oReg=GetObject( _
“winmgmts:{impersonationLevel=impersonate}!\” & _
strComputer & “rootdefault:StdRegProv”)
Dim strKeyPath
strKeyPath = “SoftwareMicrosoftTerminal Server Client”
strKeyPath = strKeyPath & “LocalDevices”
oReg.CreateKey HKEY_CURRENT_USER, strKeyPath
oReg.SetDWORDValue HKEY_CURRENT_USER, strKeyPath, rdp_ip1, “68” ‘ 68 dec == 44 hex
oReg.SetDWORDValue HKEY_CURRENT_USER, strKeyPath, rdp_ip2, “68”
===
Бонус – набор ключей для rdp файла – http://www.donkz.nl/files/rdpsettings.html
Настройка групповой политики для выдачи rdp сертификатов
Теперь нужно настроить доменную политику, которая будет автоматически назначать RDP сертификат компьютерам/серверам согласно настроенного шаблона.
Подписываем rdp файл и добавляем отпечаток доверенного rdp сертификата
Если у вас отсутствует CA, но вы хотите, чтобы при подключении к RDP/RDS серверу у пользователей не появлялось предупреждения, вы можете добавить сертификат в доверенные на компьютерах пользователей.
Как описано выше получите значение отпечатка (Thumbprint) RDP сертификата:
Get-WmiObject -Class “Win32_TSGeneralSetting” -Namespace rootcimv2terminalservices|select|select SSLCertificateSHA1Hash
Используйте этот отпечаток для подписывания .RDP файла с помощью RDPSign.exe:
Предупреждение о самоподписанном сертификате rdp
По умолчанию в Windows для защиты RDP сессии генерируется самоподписанный
сертификат. В результате при первом подключении к RDP/RDS серверу через клиента mstsc.exe, у пользователя появляется предупреждение:
Не удалось проверить подлинность удаленного компьютер из-за проблем с сертификатом безопасности. Ошибка сертификата: сертификат выдан не имеющим доверия центром сертификации.
Чтобы продолжить установление RDP подключении пользователь должен нажать кнопку Да. Чтобы RDP предупреждение не появлялось каждый раз, можно включить опцию “Больше не выводить запрос о подключениях к этому компьютеру».
Создаем шаблон rdp сертификата в центре сертификации (ca)
Попробуем использовать для защиты RDP подключений доверенный SSL/TLS сертификат, выданный корпоративным центром сертификации. С помощью такого сертификата пользователь может выполнить проверку подлинности RDP сервера при подключении. Предположим, что у вас в домене уже развернут корпоративной центр сертификации (Microsoft Certificate Authority), в этом случае вы можете настроить автоматическую выдачу и подключение сертификатов всем компьютерам и серверам Windows в домене.
Н на вашем CA нужно создать новый тип шаблона сертификата для RDP/RDS серверов.
- Запустите консоль Certificate Authority и перейдите в секцию Certificate Templates;
- Сделайте копию шаблона сертификата Computer (Certificate Templates -> Manage -> Computer -> Duplicate);
- На вкладке General укажите имя нового шаблона сертификата – RDPTemplate. Убедитесь, что значение поля Template Name полностью совпадает с Template display name;
- На вкладке Compatibility укажите минимальную версию клиентов в вашем домене (например, Windows Server 2008 R2 для CA и Windows 7 для клиентов). Тем самым будут использоваться более стойкие алгоритмы шифрования;
- Теперь на вкладке Extensions в политике приложений (Application policy) нужно ограничить область использования такого сертификата только для Remote Desktop Authentication (укажите следующий object identifier — 1.3.6.1.4.1.311.54.1.2). Нажмите Add -> New, создайте новую политику и выберите ее;
- В настройках шаблона сертификата (Application Policies Extension) удалите все политики кроме Remote Desktop Authentication;
- Чтобы использовать данный шаблон RDP сертификатов на контролерах домена, откройте вкладку Security, добавьте группу Domain Controllers и включите для нее опцию Enroll и Autoenroll;
- Сохраните шаблон сертификата;
- Теперь в оснастке Certificate Authority, щёлкните по папке Certificate Templates, выберите New ->Certificate Template to Issue -> выберите созданный шаблон RDPTemplate.
Шаг нулевой. подготовка и вопросы доверия
Итак, наш пользователь тыкает на сохраненный файл с расширением .rdp и получает такой вот запрос:
«Зловредное» подключение.
Для избавления от этого окна используется специальная утилита под названием RDPSign.exe. Полная документация доступна, как обычно, на официальном сайте, а мы разберем пример использования.
Для начала нам нужно взять сертификат для подписывания файла. Он может быть:
- Публичным.
- Выданным внутренней службой Certificate Authority.
- Вовсе самоподписанным.
Самое главное, чтобы сертификат имел возможность подписывать (да, можно отобратьу бухгалтеров ЭЦП), а клиентские ПК ему доверяли. Здесь я буду использовать самоподписанный сертификат.
Напомню, что доверие самоподписанному сертификату можно организовать при помощи групповых политик. Чуть больше подробностей — под спойлером.
Если проблемы с доверием решены, переходим непосредственно к вопросу подписи.
Шаг первый. размашисто подписываем файл
Сертификат есть, теперь нужно узнать его отпечаток. Просто откроем его в оснастке «Сертификаты» и скопируем на вкладке «Состав».
Нужный нам отпечаток.
Лучше сразу его привести к должному виду — только большие буквы и без пробелов, если они есть. Это удобно сделать в консоли PowerShell командой:
("6b142d74ca7eb9f3d34a2fe16d1b949839dba8fa").ToUpper().Replace(" ","")
Получив отпечаток в нужном формате, можно смело подписывать файл rdp:
rdpsign.exe /sha256 6B142D74CA7EB9F3D34A2FE16D1B949839DBA8FA .contoso.rdp
Где .contoso.rdp — абсолютный или относительный путь к нашему файлу.
После того как файл подписан, уже не получится изменить часть параметров через графический интерфейс вроде имени сервера (действительно, иначе смысл подписывать?) А если поменять настройки текстовым редактором, то подпись «слетает».
Теперь при двойном клике по ярлыку сообщение будет другим:
Новое сообщение. Цвет менее опасный, уже прогресс.
Избавимся же и от него.