VMware View и Smart-Card Logon

Декабрь 29th, 2009 by Семен Leave a reply »

Сегодня я хочу написать о том, как можно реализовать авторизацию и вход по смарт-картам или USB токенам в VMware View. Это описание моего опыта и, конечно же, я не претендую на истину в последней инстанции, поэтому жду любых комментариев.

Клиент VMware View может пробрасывать USB устройства в том числе и смарт-карты, при этом как в клиентской машине так и в удаленной должны быть установлены драйвера устройства для считывания карты и ПО для работы со смарт-картами. В моём случая это Aladdin eToken PKI Client версии 5.1 и следующие устройства:

  1. HP USB Smart Card Reader
  2. HP USB Keyboard with SMART Card Reader
  3. HASP USB Token

Драйвера устройств и ПО были установлены без проблем как на удаленные так и на клиентские машины, в том числе и на тонкого клиента HP 5730 c WinXP Embeded SP3.

Смею предположить что у вас уже есть домен, Active Directory, Certification Authority  и сертификаты на карточках, если нет то вам сюда: TechNet Microsoft.Com, так как это отдельная, объемная тема.

Как вы знаете, в домене Windows уже есть возможность реализовать Smart Card Logon при помощи групповых политик, зачем же заморачиваться и делать это для VMware View? Это может улучшить безопасность использования удаленных машин. Это может понадобиться в связи с политиками безопасности организации. Это позволит применять Smart Card Logon для машин, где политиками Windows это не установлено. А может быть просто интересно как это работает.

Итак, первое что я сделал, это заменил сертификат, который используется для поднятия SSL соединения между клиентом и View Connection Server. Сертификат может быть выписан на сервер, содержать полное имя и быть в формате .pfx, то есть содержать Private Key. Для того чтобы экспортировать такой сертификат в файл, это должно быть разрешено шаблоном в Certification Authority – в шаблоне сертификатов компьютера должна стоять галочка:

Certificate Template Settings 

После того как файл сертификата есть, нужно положить его в папку:

C:\Program Files\VMware\VMware View\Server\sslgateway\conf

В этой же папке создать файл locked.properties и в нем прописать строчки:

keyfile=<имя файла>.pfx
keypass=<ключевя фраза>

После чего перезапустить службу View Connection Server. Для того чтобы убедиться что служба запущена и используется именно ваш сертификат можно посмотреть лог в папке C:\Documents and Settings\All Users\Application Data\VMware\VDM\logs\

13:57:40,676 INFO <Thread-1> [NetHandler] Using SSL certificate store: <имя файла>.pfx with password of 6 characters

Либо подключиться Internet Explorer к адресу View Connection Server и увидеть значок замка в адресной строке:

View Admin Portal

Теперь SSL соединение строиться с использованием сертификата вашей организации и клиенты ему доверяют.

Далее необходимо будет “сказать” VMware View кому можно доверять при авторизации по сертификатам, то есть по смарт-картам.

Сделать это можно будет следующим образом:

  1. Создать файлик Truststore – хранилище ключей
  2. Разрешить Smart Card Logon в настройках View Connection Server.

Для того чтобы создать файл Truststore, можно воспользоваться утилитой keytool из Java Runtime Environment (JRE), который устанавливается с VMware View, но чтобы было удобно воспользоваться ей из командной строки нужно добавить путь к файлам Java в переменные окружения сервера:

  1. Открываем Properties компьютера.
  2. На вкладке Advanced нажимаем кнопку Environment Variables
  3. В системной переменной Path, в конце строки добавляем следующее:

;%ProgramFiles%\VMware\VMware View\Server\jre\bin

System Variable

Мы готовы создать хранилище ключей но нужно что-то в это хранилище положить, а для этого нам понадобятся файлы сертификатов в формате .cer, которым будет доверять View Connetction Server. Это может корневой сертификат центра сертификации либо пользовательский сертификат, который можно сохранить в файл либо через оснастку certmgr.msc либо следующим образом:

  1. Запустить IE открыть Tools > Internet Options
  2. На вкладке Content кликаем Certificates.
  3. Выбираем сертификат и нажимаем на View
  4. На вкладке Details нажимаем Copy to File.
  5. Сохраняем в удобном месте, можно сразу в папке C:\Program Files\VMware\VMware View\Server\sslgateway\conf

Теперь добавляем сертификат в хранилище ключей нашего View Connection Server:

  1. Открываем cmd.exe
  2. переходим в C:\Program Files\VMware\VMware View\Server\sslgateway\conf
  3. И набираем следующую команду:

keytool -import -alias <Псевдоним_по_желанию> -file <Файл_сертификата>
-keystore <Имя_файла_хранилища>

4.  Далее нас попросят ввести пароль и спросят доверять ли импортируемому сертификату.

5.  Теперь добавляем у уже созданный ранее файл locked.properties следующие строчки:

trustKeyfile=<Имя_файла_хранилища>
trustStoretype=JKS
useCertAuth=true

Теперь включение функции Smart Card Logon в настройках View Connection Server:

  1. Открываем web-консоль администратора View.(/admin">/admin">https://<server_name>/admin).
  2. Идем в Configuration –> Servers, выбираем View сервер и нажимаем Edit.

VMware View позволяет применять три варианта использования смарт-карт:

  • Не использовать :) (Вход только по паролю пользователя)
  • Опционально (По паролю или смарт-карте)
  • Требовать смарт-карту (Вход только по смарт-карте)

 View Smart Card Options

3. Выбираем нужный (для проверки советую поставить 3 вариант) нажимаем OK и перезапускаем службу View Connection Server.

После перезапуска смотрим лог и видим:

<Front> [d] Smart Card/Certificate Authentication enabled at gateway

Теперь можно попробовать как это работает:

Запускаем клиента VMware View и если карта не вставлена а в настройках выбрана 3 опция то видим следующие предупреждение:

Smart Card Warning

Вставляем карту и видим запрос PIN кода нашей карты:

PIN Request

Вводим PIN и можем выбирать доступную нашему пользователю ВМ, после логона в которую, смарт-карта автоматически пробрасывается и уже там мы видим запрос PIN кода:

Windows PIN Request

Ну а дальше все как обычно.

Ну и на на последок хочется сказать что VMware предоставляет нам возможность управлять различными параметрами подключения к ВМ при помощи групповых политик компьютера и пользователя, шаблоны для которых предусмотрительно копируются при установке VMware View в папку:

C:\Program Files\VMware\VMware View\Server\Extras\GroupPolicyFiles

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

Добавить их можно при помощи оснастки gpedit.msc:

clip_image001[5]

По кнопке Add добавляем файлы шаблонов:

clip_image001[7]

clip_image001[9]

Нажимаем Close.

clip_image001[11]

View Policies

Теперь в нашей ВМ появились политики, которые позволяю, например запретить подключаться к ВМ отличным от VMware View клиетом, например MS RDP, и при подключении клиентом MS Remote Desktop Connection к ВМ мы увидим следующее:

clip_image001[13]

Так же есть политики по отключению звука, запрету USB устройств или Хранение PIN-кода карточки для последующей передачи его при входе в Windows, так чтобы для пользователя не приходилось вводить его два раза. Все политики имеют достаточно внятное описание, поэтому советую с ними ознакомиться. На этом пока все и надеюсь кому-то помог.

Advertisement

Добавить комментарий