Не удается определить издателя удаленного приложения remoteapp
Не все знают, что в дополнение к службе удаленных рабочих столов, в Windows Server 2008 R2 есть очень удобная служба удаленных приложений RemoteApp. Суть RemoteApp в том, что к любым приложениям, установленным на данном сервере, можно получить удаленный доступ с любого компьютера подключенного к сети. В этом случае, выполняться программа будет на сервере, но её окно будет прорисовываться так, если бы пользователь запустил программу с локального компьютера. Возможно сворачивать и разворачивать окно программы запущенной через RemoteApp, изменять его размеры и запускать сразу несколько программ вместе со своими локальными приложениями. Это очень удобный механизм, который может существенно облегчить администрирование некоторых программ и сократить расходы на их покупку.
Ниже я расскажу как настроить Удаленные приложения RemoteApp в Windows Server 2008 R2 на примере программы 1с:Предприятие 7.7.
0. Оглавление
1. Что понадобится
- Компьютер с Windows Server 2008 R2 (об установке можно прочитать здесь)
- Запущенный сервер терминалов на данном компьютере (об установке сервера терминалов читайте здесь)
- Также, на этом компьютере должно быть установлено и настроено приложение, которое мы будем добавлять в RemoteApp, в моем случае это 1С:Предприятие 7.7 (об особенностях установки 1С:Предприятие 7.7 я писал здесь)
2. Создание RDP-файла или установщика для удаленной программы
После ввода данных увидим окно 1С:Предприятие так, как будто мы запустили его с локальной машины.
3. Настройка пользователей
Если приложение будут запускать несколько пользователей с одинаковыми настройками, то необязательно добавлять каждого на сервер. Достаточно создать только одного пользователя, скажем User_1C (о том как создать пользователя можно прочитать здесь), настроить все параметры (список баз, принтеры пр.) для этого пользователя и разрешить множественные сеансы.
На этом настройка закончена. Мы выполнили ее таким образом, что несколько человек одновременно могут работать с программой 1С:Предприятие 7.7 под одной учетной записью (для удобства работы можно создать несколько учетных записей, например, User_1c_Buh, User_1C_Operator, User_1C_Sklad и т. д. или же отдельную учетную запись для каждого пользователя).
Смотрите также:
Здесь будет рассказано как изменить политику паролей в Windows Server 2008. По умолчанию все пароли в Windows должны отвечать политике безопасности, а именно: Не содержать имени учетной записи пользователя…
Ниже будет рассказано о том, как добавить новое правило в Брандмауэр Windows Server 2008 R2. А конкретнее, будем добавлять разрешающее правило для порта 1433, который использует Microsoft SQL Server 2008 R2 или, как…
Иногда, при установке или запуске некоторых (часто устаревших) программ в Windows Server 2008 (справедливо и для Windows 7), можно наткнуться на ошибку вида: "Версия этого файла несовместима с используемой версией…
В данной статье пойдет речь о том, как убрать предупреждение "Не удается определить издателя" при запуске RemoteApp.
Текст ошибки
Не удается определить издателя удаленного приложения RemoteApp. Подключиться для запуска приложения?
Это удаленное приложение RemoteApp может нанести вред локальному или удаленному компьютеру. Не подключайтесь для запуска этого приложения, если издатель данного приложения неизвестен или оно не использовалось ранее
Для того, чтобы избавиться от этого, необходимо:
- При создании RDP файла для RemoteApp использовать цифровую подпись.
- Настроить соответствующим образом политику (локальную или в домене).
Процесс создания сертификата мы упустим, т.к. это не тема этой статьи. Считаем, что вы уже сгенерировали сертификат и подписали им опубликованное приложение, создав RDP файл вашего приложения. Далее нам необходимо открыть сертификат и получить из него так называемый "Отпечаток". Сделать это можно следующим образом:
Добавить или удалить оснастку > Сертификаты > Добавить:
В итоге получаем такое: Это и есть наш сертификат, который вы уже сгенерировали ранее.
Теперь нам нужно посмотреть его "Отпечаток". Для этого необходимо дважды щелкнуть мышкой на нужном сертификате:
Полученная последовательность символов и есть "Отпечаток".
Удаляем из нее все пробелы, чтобы строка приняла вид:
Далее в "Конфигурация компьютера/Политика/Административные шаблоны/Компоненты Windows/Службы удаленных рабочих столов/Клиент подключения к удаленному рабочему столу" включаем параметр "Указать отпечатки SHA1 сертификатов, представляющих доверенных издателей RDP" и вписываем туда нашу строку с "Отпечатком" без пробелов. В случае, если в "Отпечатке" содержится два нуля, т.е. 00, их необходимо удалить.
После применения политики на нужном компьютере, этого предупреждения не должно выскакивать.
Для RDP-файлов, используемых для подключений RemoteApp к серверу Узел сеансов удаленных рабочих столов, можно использовать цифровую подпись. К ним относятся RDP-файлы, используемые для подключения через Веб-доступ к удаленным рабочим столам к программы RemoteApp, а также к рабочему столу сервера Узел сеансов удаленных рабочих столов.
Чтобы подключиться к программа RemoteApp с помощью RDP-файла, имеющего цифровую подпись, на клиентском компьютере должен быть запущен клиент удаленного рабочего стола (RDC) версии 6.1 или выше. (Клиент RDC 6.1 поддерживает протокол удаленного рабочего стола 6.1.)
Если используется цифровой сертификат, криптографическая подпись на файле подключения предоставляет проверяемые сведения об удостоверении пользователя как лица, его опубликовавшего. Она помогает клиентам распознавать организацию как источник программа RemoteApp или подключения к удаленному рабочему столу, а также содержит более полные сведения, необходимые при принятии решения о доверии при запуске подключения. Это обеспечивает защиту от использования подозрительных RDP-файлов.
Можно подписывать RDP-файлы, используемые для подключений RemoteApp, с помощью сертификата проверки подлинности сервера (SSL-сертификат), сертификата подписи кода или специально определенного сертификата подписи протокола удаленного рабочего стола (RDP). Получить сертификаты подписи кода и протокола SSL можно в общественных центрах сертификации (CA) или в центре сертификации предприятия в иерархии инфраструктуры открытых ключей. Перед использованием сертификата подписи RDP необходимо настроить центр сертификации на предприятии для выпуска сертификатов подписи RDP.
Если для сервера Узел сеансов удаленных рабочих столов или подключений Шлюз удаленных рабочих столов уже используется SSL-сертификат, его также можно использовать и для подписи RDP-файлов. Однако если пользователи будут подключаться к программы RemoteApp с общественных или домашних компьютеров, необходимо использовать один из следующих сертификатов.
На сервере узла сеансов удаленных рабочих столов откройте диспетчер удаленных приложений RemoteApp. Чтобы открыть диспетчер удаленных приложений RemoteApp, нажмите кнопку Пуск, затем последовательно выберите пункты Администрирование, Службы удаленных рабочих столов и Диспетчер удаленных приложений RemoteApp.
В области Действия Диспетчер удаленных приложений RemoteApp нажмите кнопку Параметры цифровой подписи. (Или в области Обзор, рядом с Параметры цифровой подписи, щелкните Сменить.)
Установите флажок Подписать с цифровым сертификатом.
В списке Сведения о цифровом сертификате выберите Сменить.
В диалоговом окне Выбор сертификата выберите сертификат, который необходимо использовать, а затем нажмите кнопку ОК.
Диалоговое окно Выбор сертификата содержит сертификаты, расположенные в хранилище сертификатов локального компьютера или в личном хранилище сертификатов. Сертификат, который необходимо использовать, должен находиться в одном из этих хранилищ.
Использование параметров групповой политики для управления поведением клиента при открытии RDP-файла, имеющего цифровую подпись.
С помощью групповой политики можно задать, чтобы клиенты всегда распознавали программы RemoteApp определенного издателя как доверенные. Также можно указать, будут ли клиенты блокировать программы RemoteApp и подключения к удаленному рабочему столу из внешних или неизвестных источников. Используя параметры политики, можно сократить количество и понизить сложность решений, касающихся безопасности, с которыми сталкиваются пользователи. Это сократит возможность непреднамеренных действий пользователей, которые могут привести к уязвимости.
Соответствующие параметры групповой политики.
-
Указать SHA1-отпечатки сертификатов, отражающие доверенных RDP-издателей.
Эти параметры групповой политики расположены в папках Конфигурация компьютера\Политики\Административные шаблоны\Компоненты Windows\Службы удаленных рабочих столов\Клиент подключения к удаленному рабочему столу и Конфигурация пользователя\Политики\Административные шаблоны\Компоненты Windows\Службы удаленных рабочих столов\Клиент подключения к удаленному рабочему столу.
Для настройки этих параметров групповой политики можно использовать редактор локальных групповых политик или консоль управления групповыми политиками.
Если ваши пользователи все еще приходят к вам с подобными страхами, и вам надоело ставить галочку «Больше не спрашивать» — добро пожаловать под кат.
Итак, наш пользователь тыкает на сохраненный файл с расширением .rdp и получает такой вот запрос:
Для избавления от этого окна используется специальная утилита под названием RDPSign.exe. Полная документация доступна, как обычно, на официальном сайте, а мы разберем пример использования.
Для начала нам нужно взять сертификат для подписывания файла. Он может быть:
- Публичным.
- Выданным внутренней службой Certificate Authority.
- Вовсе самоподписанным.
Самое главное, чтобы сертификат имел возможность подписывать (да, можно отобрать
у бухгалтеров ЭЦП), а клиентские ПК ему доверяли. Здесь я буду использовать самоподписанный сертификат.
Напомню, что доверие самоподписанному сертификату можно организовать при помощи групповых политик. Чуть больше подробностей — под спойлером.
Как сделать сертификат доверенным при помощи магии GPOДля начала нужно взять имеющийся сертификат без закрытого ключа в формате .cer (это можно сделать, экспортировав сертификат из оснастки «Сертификаты») и положить его в сетевую папку, доступную пользователям для чтения. После этого можно настроить групповую политику.
Импорт сертификата настраивается в разделе: Конфигурация компьютера — Политики — Конфигурация Windows — Параметры безопасности — Политики открытого ключа — Доверенные корневые центры сертификации. Далее правой кнопкой мыши импортируем сертификат.
Теперь клиентские ПК будут доверять самоподписанному сертификату.
Если проблемы с доверием решены, переходим непосредственно к вопросу подписи.
Сертификат есть, теперь нужно узнать его отпечаток. Просто откроем его в оснастке «Сертификаты» и скопируем на вкладке «Состав».
Нужный нам отпечаток.
Лучше сразу его привести к должному виду — только большие буквы и без пробелов, если они есть. Это удобно сделать в консоли PowerShell командой:
Получив отпечаток в нужном формате, можно смело подписывать файл rdp:
Где .\contoso.rdp — абсолютный или относительный путь к нашему файлу.
После того как файл подписан, уже не получится изменить часть параметров через графический интерфейс вроде имени сервера (действительно, иначе смысл подписывать?) А если поменять настройки текстовым редактором, то подпись «слетает».
Избавимся же и от него.
Нужная нам политика.
В политике достаточно добавить уже знакомый нам отпечаток с предыдущего шага.
Стоит отметить, что эта политика перекрывает политику «Разрешать RDP-файлы от допустимых издателей и пользовательские параметры RDP, заданные по умолчанию».
Вуаля, теперь никаких странных вопросов — только запрос логина-пароля. Хм…
Действительно, если мы уже авторизовались при входе на доменный компьютер, то зачем нам вводить повторно тот же логин и пароль? Передадим же учетные данные на сервер «прозрачно». В случае с простым RDP (без использования RDS Gateway) на помощь нам придет… Правильно, групповая политика.
Идем в раздел: Конфигурация компьютера — Политики — Административные шаблоны — Система — Передача учетных данных — Разрешить передачу учетных данных, установленных по умолчанию.
Теперь, если посмотреть на наш ярлык, то выглядеть он будет примерно так:
Имя пользователя не поменять.
В случае если используется RDS Gateway, понадобится еще и разрешить на нем передачу данных. Для этого в диспетчере IIS нужно в «Методах проверки подлинности» отключить анонимную проверку и включить проверку подлинности Windows.
Удаленные приложения RemoteApp служб терминалов Windows Server 2008, часть 2
Использование шлюза TS Gateway
Рассмотрим по порядку, как удалённый клиент, используя RDP-подключение, получает доступ к ресурсам сети.
Работу шлюза мы продемонстрируем на примере сети следующей конфигурации:
Начнём с сервера терминалов TS1. На нём необходимо будет добавить роль сервера терминалов, установить и настроить приложения и сконфигурировать шлюз. Открываем Диспетчер сервера, переходим в левом окне в раздел Роли, в правом окне щёлкаем ссылку Добавить роли, нажимаем кнопку Далее. Отмечаем флажок Службы терминалов, два раза нажимаем кнопки Далее. Устанавливаем флажок Сервер терминалов(процесс лицензирования сервера терминалов, как и в первом примере, рассматривать не будем), нажимаем Далее два раза. Устанавливаем необходимый режим проверки подлинности на уровне сети (я поставил переключатель в положение Не требовать проверку подлинности), нажимаем Далее. Указываем тип лицензирования - Настроить позже, нажимаем Далее. Указываем, кто сможет подключаться к серверу терминалов (Пользователи домена), нажимаем Далее и Установить. Ждём, когда работа мастера будет закончена, перезагружаем сервер, и дожидаемся окончания процесса конфигурирования.
На странице создания политик проверки подлинности переведём переключатель в положение Позднее (мы также настроим их чуть позже) и нажимаем Далее два раза. На странице выбора служб ролей убедитесь, что флажок Сервер политики сети установлен. Нажимаем три раза кнопку Далее, переходим к странице подтверждения и щёлкаем кнопку Установить для завершения процесса установки.
Установим сертификат, который будет использоваться веб-службами для установления SSL-подключений. В оснастке Администрирование выберите Диспетчер служб IIS. В левой панели щёлкните строку с именем шлюза, затем в центральном окне дважды щёлкните значок Сертификаты сервера, расположенный в группе IIS. Если в сети существует внутренний центр сертификации, можно использовать выданный им сертификат, или указать сертификат, выданный одним из доверенных общедоступных центров сертификации (для тестирования сети вполне подойдёт и вариант с созданием самозаверяющего сертификата). Мы установим сертификат, выданный центром сертификации предприятия, который расположен на DC1. Для этого в панели Действия выбираем команду Создать сертификат домена.
Указываем на первой странице мастера необходимые данные (в строке Полное имя укажите DNS-имя шлюза сервера терминалов, в нашем примере это tg1.tstest.local) и нажимаем Далее. Указываем расположение ЦС (для рассматриваемой сети это tstestcertcenter\dc1.tstest.local), вводим имя для сертификата, нажимаем Готово. Сертификат должен появиться в списке веб-сервера.
В открывшемся окне на вкладке Сертификат SSL нажимаем кнопку Обзор сертификатов, выбираем сертификат, полученный на предыдущем шаге для веб-сервера и нажимаем кнопку Установить. Центральное окно диспетчера должно стать таким:
Похожие действия выполняем и для политики TS RAP, указывая группы пользователей, к которым она будет применяться, и задав ресурсы, к которым они смогут получить доступ (для доступа ко всем сетевым ресурсам выберите Разрешить подключение к любому сетевому ресурсу). Разрешённым для удалённых подключений внутри сети оставим 3389 TCP-порт.
и нажимаем кнопку ОК. Поскольку сервер терминалов и шлюз у нас теперь расположены на физически разных серверах, в окне диспетчера выводится предупреждение, что в группе компьютеров веб-доступа к этому серверу терминалов нет никаких записей:
Открываем оснастку Управление компьютером, переходим в раздел Локальные пользователи и группы, и выбираем Группы. Найдите и двойным щелчком откройте группу Компьютеры веб-клиента сервера терминалов (TS Web Access Computers).
Запустится мастер экспорта сертификатов. Указываем, что закрытый ключ экспортироваться не должен, нажимаем два раза кнопку Далее и указываем имя сертификата и место, где он будет сохранён. НажимаемДалее, затем Готово. Теперь необходимо передать любым образом этот файл сертификата клиенту RC1. На клиенте достаточно щёлкнуть этот файл правой кнопкой мыши и выбрать команду Установить сертификат.
Система автоматически поместит этот сертификат в необходимое хранилище, достаточно будет пару раз нажать кнопку Далее. При последующем подключении соединение должно быть установлено. Осталось проверить, какие порты задействованы в подключении. Вот порты, которые использует удалённый клиент после установления подключения:
А вот что происходит в это же время на шлюзе:
На этих примерах мы продемонстрировали лишь базовые возможности Windows Server 2008 по созданию решений безопасного доступа к ресурсам внутренней сети из любого места, где есть интернет. Мы не уделяли внимание вопросам администрирования, применения групповых политик, аудита и некоторым другим аспектам, поскольку основной целью являлось лишь общее описание механизмов, позволяющих создавать такие безопасные подключения. И, безусловно, необходимо признать, что практическое применение описанных технологий возможно лишь в условиях достаточно современной вычислительной инфраструктуры.
Полезные ссылки
Легкий способ снять квартиру посуточно новосибирск. Быстро, качественно и надежно.
Этот пост October 21, 2009 at 10:46 pm опубликовал molse в категории Windows Server 2008, Терминалка. Желающие могут оформить RSS подписку на комменты. Both comments and trackbacks are currently closed.
Читайте также: