VDI/OpenUDS
Введение
OpenUDS это много-платформенный брокер подключений для создания и управления виртуальными рабочими местами.
Основные компоненты решения VDI на базе OpenUDS:
- OpenUDS Server (openuds-server) — брокер подключений пользователей, а так же интерфейс администратора для настройки.
- SQL Server. Для работы django приложения, которым является openuds-server необходим SQL сервер, например mysql или mariadb. Может быть установлен на отдельном сервере.
- Платформа для запуска клиентских окружений и приложений. OpenUDS совместима со множеством систем виртуализации: PVE, OpenNebula, oVirt, OpenStack. Так же возможно использование с отдельным сервером без виртуализации (аналог терминального решения).
- OpenUDS Client (openuds-client) — клиентское приложения для подключения к брокеру соединений и дальнейшего получения доступа к виртуальному рабочему окружению
- OpenUDS Tunnel (openuds-tunnel) — решение для туннелирования обращений от клиента к виртуальному рабочему окружению. Предназначено для предоставления доступа из недоверенных сегментов сети, например из Интернет. Устанавливается на отдельный сервер.
- OpenUDS Actor (openuds-actor) — ПО для гостевых виртуальных машин, реализует связку виртуальной машины и брокера соединений.
Компонент | ОЗУ | ЦП | Диск |
---|---|---|---|
OpenUDS Server | 2 ГБ | 2 vCPUs | 8 ГБ |
SQL Server | 1 ГБ | 2 vCPUs | 10 ГБ |
OpenUDS Tunnel | 2 ГБ | 2 vCPUs | 13 ГБ |
Установка
Установка mysql/mariadb
# apt-get install mariadb-server
# systemctl enable --now mariadb.service
# mysql_secure_installation
$ mysql -u root
MariaDB> CREATE DATABASE dbuds CHARACTER SET utf8 COLLATE utf8_general_ci;
MariaDB> CREATE USER 'dbuds'@'%' IDENTIFIED BY 'password';
MariaDB> GRANT ALL PRIVILEGES ON dbuds.* TO 'dbuds'@'%';
MariaDB> FLUSH PRIVILEGES;
MariaDB> exit;
OpenUDS Server
Установка OpenUDS Server
# apt-get install openuds-server-nginx
Будут установлены:
- openuds-server — django приложение;
- gunicorn — сервер приложений. Обеспечивает запуск django как стандартного WSGI приложения;
- nginx — http-сервер, используется в качестве reverse-proxy для доступа к django приложению, запущенному с помощью gunicorn.
Настройка OpenUDS Server
- отредактировать /etc/openuds/settings.py, указав корректные данные для подключения к SQL серверу:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'OPTIONS': { 'isolation_level': 'read committed', }, 'NAME': 'dbuds', # Or path to database file if using sqlite3. 'USER': 'dbuds', # Not used with sqlite3. 'PASSWORD': 'password', # Not used with sqlite3. 'HOST': 'localhost', # Set to empty string for localhost. Not used with sqlite3. 'PORT': '3306', # Set to empty string for default. Not used with sqlite3. } }
- «заполнить» базу данных первоначальными данными:
# su -s /bin/bash - openuds $ cd /usr/share/openuds $ python3 manage.py migrate $ exit
- запустить gunicorn:
# systemctl enable --now openuds-web.service
- запустить nginx:
# ln -s ../sites-available.d/openuds.conf /etc/nginx/sites-enabled.d/openuds.conf # systemctl enable --now nginx.service
- запустить менеджер задач OpenUDS
# systemctl enable --now openuds-taskmanager.service
- подключиться к серверу OpenUDS с помощью браузера https://<openuds_address>:
Чтобы получить доступ к администрированию OpenUDS следует в меню пользователя выбрать пункт «Панель управления» («Dashboard»):
Дополнительная информация о настройках django приложений:
https://docs.djangoproject.com/en/2.2/howto/deployment/wsgi/ https://docs.djangoproject.com/en/2.2/ref/databases/
OpenUDS Tunnel
Установка OpenUDS Tunnel
Установка OpenUDS Tunnel должна выполняться на отдельной от OpenUDS Server системе.
# apt-get install openuds-tunnel
Настройка OpenUDS Tunnel
На OpenUDS Tunnel:
- Указать адрес OpenUDS сервера (брокера) в /etc/openuds-tunnel/udstunnel.conf:
uds_server = http://192.168.0.53/uds/rest/tunnel/ticket uds_token = 5ba9d52bb381196c2a22e495ff1c9ba4bdc03440b726aa8b
- Запустить и добавить в автозагрузку сервис:
# systemctl enable --now openuds-tunnel.service
На сервере OpenUDS:
- Добавить в БД информацию о OpenUDS Tunnel: INSERT INTO `uds_tunneltoken` VALUES (ID,'автор добавления','IP-адрес туннеля','IP-адрес туннеля','название туннеля','Токен из файла udstunnel.conf','дата добавления'); . Например:
# mysql -u root -p
MariaDB> USE dbuds; MariaDB> INSERT INTO `uds_tunneltoken` VALUES (ID,'admin','192.168.0.88','192.168.0.88','Tunnel','5ba9d52bb381196c2a22e495ff1c9ba4bdc03440b726aa8b','2022-11-15'); MariaDB> exit;
- Создать туннельный транспорт, например X2Go. На вкладке «Туннель» указать IP-адрес и порт туннельного-сервера: 192.168.0.88:7777
Настройка HTML5
На OpenUDS Tunnel:
- В файле /etc/guacamole/guacamole.properties привести значение uds-base-url к виду:
- http://<IP openuds сервера>/uds/guacamole/auth/<Токен из файла udstunnel.conf>/
- Например:
- uds-base-url=http://192.168.0.53/uds/guacamole/auth/5ba9d52bb381196c2a22e495ff1c9ba4bdc03440b726aa8b
- Настроить tomcat:
- для подключения по http, т.к. tomcat по умолчанию работает на порту 8080, то перед запуском tomcat необходимо, либо остановить службу ahttpd:
# systemctl disable --now ahttpd
- Либо изменить порт 8080 в файле /etc/tomcat/server.xml на другой допустимый номер порта, например 8081:
<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
- для подключения по https в файле /etc/tomcat/server.xml указать:
<Connector port="10443" protocol="org.apache.coyote.http11.Http11AprProtocol" SSLEnabled="true" ciphers="A-CHACHA20-POLY1305,ECDHE-RSA-CHACHA20-POLY1305,ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-RSA-AES128-GCM-SHA256,ECDHE-ECDSA-AES256-GCM-SHA384,ECDHE-RSA-AES256-GCM-SHA384,DHE-RSA-AES128-GCM-SHA256,DHE-RSA-AES256-GCM-SHA384,ECDHE-ECDSA-AES128-SHA256,ECDHE-RSA-AES128-SHA256,ECDHE-ECDSA-AES128-SHA,ECDHE-RSA-AES256-SHA384,ECDHE-RSA-AES128-SHA,ECDHE-ECDSA-AES256-SHA384,ECDHE-ECDSA-AES256-SHA,ECDHE-RSA-AES256-SHA,DHE-RSA-AES128-SHA256,DHE-RSA-AES128-SHA,DHE-RSA-AES256-SHA256,DHE-RSA-AES256-SHA,ECDHE-ECDSA-DES-CBC3-SHA,ECDHE-RSA-DES-CBC3-SHA,EDH-RSA-DES-CBC3-SHA,AES128-GCM-SHA256,AES256-GCM-SHA384,AES128-SHA256,AES256-SHA256,AES128-SHA,AES256-SHA,DES-CBC3-SHA" maxThreads="500" scheme="https" secure="true" SSLCertificateFile="/etc/openuds-tunnel/ssl/certs/openuds-tunnel.pem" SSLCertificateKeyFile="/etc/openuds-tunnel/ssl/private/openuds-tunnel.key" maxKeepAliveRequests="1000" clientAuth="false" sslProtocol="TLSv1+TLSv1.1+TLSv1.2" />
- для подключения по http, т.к. tomcat по умолчанию работает на порту 8080, то перед запуском tomcat необходимо, либо остановить службу ahttpd:
- Запустить сервисы:
# systemctl enable --now guacd tomcat
На сервере OpenUDS при создании нового туннельного транспорта HTML5RDP на вкладке «Туннель» указать IP-адрес и порт туннельного-сервера:
- http://192.168.0.88:8080 — для подключения по http;
- https://192.168.0.88:10443 — для подключения по https.
Обновление
После обновления перезапустите компьютер, так как при обновлении не создаётся файл /run/openuds/socket.
Настройка
Подключение системы виртуализации
В разделе «Поставщики услуг» («Services») подключить один из поставщиков («Service providers»):
- Поставщик платформы Proxmox (Proxmox Platform Provider);
- Поставщик платформы OpenNebula (OpenNebula Platform Provider);
- Поставщик платформы OpenStack (OpenStack Platform Provider);
- Поставщик платформы oVirt/RHEV (oVirt/RHEV Platform Provider);
- Отдельный сервер без виртуализации: Поставщик машин статических IP (Static IP Machines Provider).
OpenNebula
Минимальные параметры для настройки «Поставщик платформы OpenNebula»:
- вкладка «Основной»: название, IP-адрес сервера OpenNebula (поле «Хост»), порт подключения, имя пользователя (с правами администратора) и пароль:
- вкладка «Расширенный»: максимальное количество одновременно создаваемых ВМ, максимальное количество одновременно удаляемых ВМ, таймаут подключения к OpenNebula в секундах:
Используя кнопку «Проверить», можно убедиться, что соединение установлено правильно.
После интеграции платформы OpenNebula в OpenUDS необходимо создать базовую службу типа «OpenNebula Live Images». Для этого можно дважды щелкнуть мышью по строке созданного поставщика услуг или в контекстном меню поставщика выбрать пункт «Подробность»:
В открывшемся окне на вкладке «Поставщики услуг» («Services») выбрать «Новый»→«Действующие образы OpenNebula»:
Заполнить параметры конфигурации. Вкладка «Основной» («Main»):
- «Имя» («Name») — название службы;
- «Хранилище» («Datastore») — хранилище.
Вкладка «Машина» («Machine»):
- «Базовый шаблон» («Base Template») — шаблон ВМ, используемый системой OpenUDS для развертывания виртуальных рабочих столов (см. VDI/OpenUDS#Подготовка_шаблона_виртуальной_машины);
- «Имена машин» («Machine Names») — базовое название для клонов с этой машины (например, Desk-kwork-);
- «Длина имени» («Name Length») — количество цифр счетчика, прикрепленного к базовому имени рабочих столов (например, если Длина имени = 3, названия сгенерированных рабочих столов будут: Desk-kwork-000, Desk-kwork-001 ... Desk-kwork-999).
После того, как среда OpenUDS будет настроена и будет создан первый «пул служб», в среде OpenNebula можно будет наблюдать, как разворачиваются рабочие столы. Сначала будет создан образ ВМ («UDSP-pool_name-DSK») — клон образа, шаблон («UDSP-pool_name-publishing-number») — клон ВМ, выбранной при регистрации службы. После завершения процесса создания клона будут созданы рабочие столы («Machine_Name-Name_Length»).
PVE
Минимальные параметры для настройки «Поставщик платформы Proxmox»:
- вкладка «Основной»: название, IP-адрес/имя сервера или кластера (поле «Хост»), порт подключения, имя пользователя с достаточными привилегиями в PVE (в формате пользователь@аутентификатор) и пароль:
- вкладка «Расширенный»: максимальное количество одновременно создаваемых ВМ, максимальное количество одновременно удаляемых ВМ, таймаут подключения к Proxmox в секундах, идентификатор ВМ на Proxmox (>=10000):
Используя кнопку «Проверить», можно убедиться, что соединение установлено правильно.
После интеграции платформы PVE в OpenUDS необходимо создать базовую службу типа «Proxmox Linked Clone». Для этого можно дважды щелкнуть мышью по строке созданного поставщика услуг или в контекстном меню поставщика выбрать пункт «Подробность»:
В открывшемся окне на вкладке «Поставщики услуг» («Services») выбрать «Новый»→«Связанный клон Proxmox»:
Заполнить параметры конфигурации. Вкладка «Основной» («Main»):
- «Имя» («Name») — название службы;
- «Пул» («Pool») — пул, в котором будут находиться ВМ, созданные OpenUDS;
- «Высокая доступность» («HA») — включать ли созданные ВМ в группу HA PVE.
Вкладка «Машина» («Machine»):
- «Базовая машина» («Base Machine») — шаблон ВМ, используемый системой OpenUDS для развертывания виртуальных рабочих столов (см. VDI/OpenUDS#Подготовка_шаблона_виртуальной_машины);
- «Хранилище» («Storage») — хранилище, где будут храниться сгенерированные виртуальные рабочие столы (поддерживаются хранилища, позволяющие создавать «Снимки»);
- «Имена машин» («Machine Names») — базовое название для клонов с этой машины (например, Desk-SL-);
- «Длина имени» («Name Length») — количество цифр счетчика, прикрепленного к базовому имени рабочих столов (например, если Name Length = 3, названия сгенерированных рабочих столов будут: Desk-SL-000, Desk-SL-001 ... Desk-SL-999).
После того, как среда OpenUDS будет настроена и будет создан первый «пул служб», в среде PVE можно будет наблюдать, как разворачиваются рабочие столы. Сначала будет создан шаблон («UDS-Publication-pool_name-publishing-number») — клон ВМ, выбранной при регистрации службы. После завершения процесса создания клона будут созданы рабочие столы («Machine_Name-Name_Length»):
Удалённый доступ к отдельному серверу (Static IP Machine Provider)
OpenUDS позволяет создать подключение к отдельным устройствам (физическим или виртуальным). Доступ к отдельной машине осуществляется путем назначения IP-адресов пользователям.
Для регистрации поставщика данного типа следует в разделе «Поставщики услуг» («Services») нажать кнопку «Новый» и выбрать пункт «Поставщик машин статических IP» («Static IP Machine Provider»):
Для настройки «Поставщика машин статических IP» достаточно задать название поставщика.
Для создания базовых услуг «Поставщика машин статических IP» следует дважды щелкнуть мышью по строке созданного поставщика или в контекстном меню поставщика выбрать пункт «Подробность» («Detail»):
OpenUDS позволяет создавать два типа услуг «Поставщика машин статических IP»:
- «Статический множественный IP-адрес» («Static Multiple IP»)
- Используется для подключения одного пользователя к одному компьютеру. Поддерживается неограниченное количество IP-адресов (можно включить в список все устройства, которые должны быть доступны удалённо). По умолчанию система будет предоставлять доступ к устройствам в порядке FIFO, т.е. первый пользователь получивший доступ к этому пулу, получает доступ к машине с первым IP-адресом из списка. Также можно настроить выборочное распределение, чтобы определённому пользователю назначался определенный компьютер (IP-адрес).
- «Статический одиночный IP-адрес» («Static Single IP»)
- Используется для подключения нескольких пользователей к одному компьютеру. При обращении каждого нового пользователя будет запускаться новый сеанс.
Для создания новой услуги типа «Поставщик машин статических IP» на вкладке «Services» нажмите «Новый»→«Статический множественный IP-адрес» или «Новый»→«Статический одиночный IP-адрес»:
Параметры конфигурации для услуги «Статический множественный IP-адрес»:
- Вкладка «Основной»:
- «Имя» («Name») — название службы;
- «Список серверов» («List of servers») — один или несколько IP-адресов машин, к которой будет осуществляться доступ (машины должны быть включены и настроены см. VDI/OpenUDS#Подготовка_шаблона_виртуальной_машины).
- Вкладка «Расширенный»:
- «Проверить порт» («Check port») — порт, по которому система может проверить, доступен ли компьютер. Если компьютер не доступен, система автоматически предоставит следующее устройство в списке. 0 — не проверять доступность компьютера;
- «Пропустить время» («Skip time») — период (в минутах), в течение которого не будет проверяться доступность недоступной машины;
- «Максимальное количество сеансов на машину» — максимальная продолжительность сеанса (в часах), прежде чем OpenUDS решит, что эта машина заблокирована и освободит её (0 означает «никогда»).
Просмотреть/изменить привязанные сеансы можно в разделе «Service Pools» (см. VDI/OpenUDS#Настройка_«Service_Pools») на вкладке «Assigned service»:
Параметры конфигурации для услуги «Статический одиночный IP-адрес»:
- «Имя» («Name») — название службы;
- «IP адрес машины» («Machine IP») — IP-адрес машины, к которой будет осуществляться доступ (машина должна быть включена и настроена см. VDI/OpenUDS#Подготовка_шаблона_виртуальной_машины).
Настройка аутентификации пользователей
Для настройки аутентификации в разделе «Аутентификаторы» («Autentificators») необходимо выбрать тип аутентификации пользователей. Можно выбрать как внешние источники (Active Directory, OpenLDAP и т. д.), так и внутренние (внутренняя база данных, IP-аутентификация):
Внутренняя база данных
При использовании аутентификации «Внутренняя БД» («Internal Database») данные пользователей и групп хранятся в базе данных, к которой подключен сервер OpenUDS.
Для создания аутентификации типа «Внутренняя БД» в разделе «Аутентификаторы» следует нажать кнопку: «Новый» → «Внутренняя БД».
Минимальные параметры конфигурации (вкладка «Основной»): имя аутентификатора, приоритет и метка:
После того, как аутентификатор типа «Внутренняя БД» создан, нужно будет зарегистрировать пользователей и группы пользователей. Для этого следует выбрать созданный аутентификатор, во вкладке «Группы» («Groups») создать группы пользователей, затем во вкладке «Пользователи» («Users») создать пользователей.
Regex LDAP Authenticator
Этот аутентификатор позволяет пользователям и группам пользователей, принадлежащих практически любому аутентификатору на основе LDAP, получать доступ к виртуальным рабочим столам и приложениям.
FreeIPA
1. В разделе «Аутентификаторы» нажать кнопку: «Новый» → «Аутентификатор Regex LDAP» («Regex LDAP Authenticator»).
2. Заполнить поля первых трёх вкладок (в примере указан домен freeipa.test):
На вкладке «Основной» указать имя аутентификатора, приоритет, метку, IP-адрес FreeIPA-сервера, порт (обычно 389 без ssl, 636 с ssl):
Вкладка «Учётные данные»: имя пользователя (в формате uid=user_freeipa,cn=users,cn=accounts,dc=example,dc=test) и пароль:
Вкладка «LDAP информация»: общая база пользователей, класс пользователей LDAP, идентификатор атрибута пользователя, атрибут имени пользователя, атрибут имени группы:
3. Помимо указания источника пользователей необходимо добавить существующую группу LDAP, в которую они входят. Для этого выбрать созданный аутентификатор, на вкладке «Группы» выбрать «Новый» → «Группа».
Для этого выбрать созданный аутентификатор, на вкладке «Группы» выбрать «Новый» → «Группа», в открывшемся окне заполнить dn существующей группы (например, CN=UDS,CN=Users,DC=test,DC=alt), можно также указать разрешённые пулы
4. Заполнить dn существующей группы (для FreeIPA по умолчанию это группа cn=ipausers,cn=groups,cn=accounts,dc=ipa,dc=freeipa,dc=test), можно также указать разрешённые пулы:
Active Directory
Настройка аутентификации в Active Directory (например, на samba-dc) аналогична FreeIPA кроме некоторых различий (на примере домена test.alt):
1. На вкладке «Основной» указать имя аутентификатора, приоритет, метку, IP-адрес сервера AD, порт (обычно 389 без ssl, 636 с ssl):
2. На вкладке «Учётные данные» указать имя пользователя (можно указать в виде имя@домен) и пароль:
3. На вкладке «LDAP информация» указать общую базу пользователей, класс пользователей LDAP, идентификатор атрибута пользователя, атрибут имени пользователя, атрибут имени группы:
Используя кнопку «Проверить» («Test»), можно проверить соединение с Active Directory.
4. Добавить группу LDAP, в которую входят пользователи. Для этого выбрать созданный аутентификатор, на вкладке «Группы» выбрать «Новый» → «Группа», в открывшемся окне заполнить dn существующей группы (например, CN=UDS,CN=Users,DC=test,DC=alt), можно также указать разрешённые пулы:
IP-аутентификация
Этот тип аутентификации обеспечивает доступ клиентов к рабочим столам и виртуальным приложениям по их IP-адресу.
Для создания аутентификации типа «IP аутентификатор» в разделе «Аутентификаторы» следует нажать кнопку: «Новый» → «IP аутентификатор».
Минимальные параметры конфигурации (вкладка «Основной»): имя аутентификатора, приоритет и метка:
После того, как аутентификатор типа «IP аутентификатор» создан, следует создать группы пользователей. Группа может представлять собой диапазон IP-адресов (192.168.0.1-192.168.0.55), подсеть (192.168.0.0/24) или отдельные IP-адреса (192.168.0.33,192.168.0.50):
Настройка «Менеджеры ОС»
«Менеджер ОС» («OS Manager») запускает ранее настроенные службы:
- «Linux ОС менеджер» («Linux OS Manager») используется для виртуальных рабочих столов на базе Linux. Он выполняет задачи переименования и управления сеансами виртуальных рабочих столов;
- «Windows Basic ОС менеджер» («Windows Basic OS Manager») используется для виртуальных рабочих столов на базе Windows, которые не являются частью домена AD;
- «Windows Domain ОС менеджер» («Windows Domain OS Manager») используется для виртуальных рабочих столов на базе Windows, которые являются членами домена AD.
Linux ОС менеджер/Windows Basic ОС менеджер
Минимальные настройки для «Linux ОС менеджер» и «Windows Basic ОС менеджер»:
- «Имя» («Name») — название;
- «Действие при выходе из системы» («Logout Action») — действие, которое OpenUDS будет выполнять на виртуальном рабочем столе при закрытии сеанса пользователя. «Держать сервис привязанным» («Keep service assigned») — постоянный пул, при выходе пользователя (выключении ВМ), ВМ запускается заново, при повторном входе пользователю будет назначен тот же рабочий стол. «Удалить сервис» («Remove service») — непостоянный пул, при выходе пользователя из системы, ВМ удаляется и создается заново. «Держать сервис привязанным даже в новой публикации» («Keep service assigned even on new publication») — сохранение назначенной службы даже при создании новой публикации пула услуг;
- «Максимальное время простоя» («Max. Idle time») — время простоя виртуального рабочего стола (в секундах). По истечении этого времени OpenUDS Actor автоматически закроет сеанс. Отрицательные значения и значения менее 300 секунд отключают эту опцию.
Windows Domain ОС менеджер
Минимальные настройки для «Windows Domain ОС менеджер»:
Вкладка «Основной»:
- «Имя» («Name») — название;
- «Domain» («Domain») — домен, к которому будут присоединены виртуальные рабочие столы. Необходимо использовать формат FQDN (например, test.alt);
- «Аккаунт» («Account») — учетная запись пользователя с правами на добавление машин в домен;
- «Пароль» («Password») — пароль пользователя указанного в поле «Аккаунт»;
- «OU» — организационная единица, в которую будут добавлены виртуальные хосты (если не указано, хосты будут зарегистрированы в подразделении по умолчанию — Computers). Формат поддерживаемых OU: OU = name_OU_last_level, ... OU = name_OU_first_level, DC = name_domain, DC = extension_domain. Во избежание ошибок при введении формата OU, рекомендуется сверяться с полем «distinguishedName» в свойствах атрибута OU;
- «Действие при выходе из системы» («Logout Action») — действие, которое OpenUDS будет выполнять на виртуальном рабочем столе при закрытии сеанса пользователя. «Держать сервис привязанным» («Keep service assigned») — постоянный пул, при выходе пользователя (выключении ВМ), ВМ запускается заново, при повторном входе пользователю будет назначен тот же рабочий стол. «Удалить сервис» («Remove service») — непостоянный пул, при выходе пользователя из системы, ВМ удаляется и создается заново. «Держать сервис привязанным даже в новой публикации» («Keep service assigned even on new publication») — сохранение назначенной службы даже при создании новой публикации пула услуг;
- «Максимальное время простоя» («Max. Idle time») — время простоя виртуального рабочего стола (в секундах). По истечении этого времени OpenUDS Actor автоматически закроет сеанс. Отрицательные значения и значения менее 300 секунд отключают эту опцию.
Вкладка «Расширенный»:
- «Группа машин» («Machine Group») — указывает, к какой группе машин AD будут добавлены виртуальные рабочие столы, созданные UDS;
- «Убрать машину» («Machine clean») — если этот параметр установлен, OpenUDS удалит запись о вирт. рабочем столе в указанном подразделении после удаления рабочего стола (необходимо, чтобы пользователь, указанный в поле «Account», имел права на выполнение данного действия в OU);
- «Server Hint» («Предпочтения серверов») — если серверов AD несколько, можно указать, какой из них использовать предпочтительнее;
- «Использовать SSL» («Use SSL» ) — если этот параметр установлен, будет использоваться SSL-соединение;
- «Выход по календарю» («Calendar logout» ) — если этот параметр установлен, OpenUDS попытается завершить сессию пользователя, когда для текущего соединения истечет время доступа.
Настройка «Transports»
Для подключения к виртуальным рабочим столам необходимо создать транспорт. Транспорт — это приложение, которое выполняется на клиенте и отвечает за предоставление доступа к реализованной службе.
Можно создать один транспорт для различных «пулов» или установить по одному транспорту для каждого «пула».
При создании транспорта необходимо выбрать его тип:
- «Прямой» («Direct») — используется, если пользователь имеет доступ к виртуальным рабочим столам из внутренней сети (например, LAN, VPN и т. д.);
- «Туннельный» («Tunneled») — используется, если у пользователя нет прямого подключения к рабочему столу.
RDP (прямой)
«RDP» позволяет пользователям получать доступ к виртуальным рабочим столам Windows/Linux. И на клиентах подключения, и на виртуальных рабочих столах должен быть установлен и включен протокол RDP (для виртуальных рабочих столов Linux необходимо использовать XRDP).
Минимальные параметры для настройки транспорта RDP:
- Вкладка «Основной»:
- «Имя» («Name») — название транспорта;
- «Приоритет» («Priority») — приоритет, чем меньше значение приоритета, тем выше данный транспорт будет указан в списке доступных transports для сервиса. Транспорт с самым низким приоритетом, будет транспортом по умолчанию;
- «Сетевой доступ» («Networks Access») — разрешает или запрещает доступ пользователей к службе, в зависимости от сети из которой осуществляется доступ;
- «Сети» («Networks») — сетевые диапазоны, подсети или IP-адреса (настраиваются в разделе «Сети»). Пустое поле означает «все сети». Используется вместе с параметром «Сетевой доступ»;
- «Разрешенные устройства» («Allowed Devices») — разрешает доступ к службе только с выбранных устройств. Пустое поле означает «все устройства»;
- «Сервис-пулы» («Service Pools») — позволяет назначить транспорт одному или нескольким ранее созданным пулам услуг. Можно оставить это поле пустым и выбрать способы подключения при создании пула услуг.
- Вкладка «Учётные данные» («Credentials»):
- «Пропустить данные аккаунта» («Empty creds») — если установлено значение «Да», учётные данные для доступа к виртуальному рабочему столу будут запрашиваться при подключении к серверу (не следует использовать при подключении к Windows, т.к. данные не запрашиваются). Если установлено значение «Нет», будут использоваться данные OpenUDS (см. ниже);
- «Имя пользователя» («Username») — имя пользователя, которое будет использоваться для доступа к рабочему столу (пользователь должен существовать на ВМ). Если данное поле пустое, будет использован логин авторизовавшегося в веб-интерфейсе OpenUDS пользователя;
- «Пароль» («Password») — пароль пользователя, указанного в поле «Username»;
- «Без домена» («Without Domain») — указывает, перенаправляется ли доменное имя вместе с пользователем. Значение «Да» равносильно пустому полю «Domain»;
- «Домен» («Domain») — домен. Если поле не пустое, то учётные данные будут использоваться в виде DOMAIN\user.
- На вкладке вкладке «Параметры» («Parameters») можно разрешить/запретить перенаправления дисков, принтеров и других устройств:
- «Разрешить смарткарты» («Allow Smartcards») — разрешить перенаправление смарт-карт;
- «Разрешить принтеры» («Allow Printers») — включить перенаправление принтеров;
- «Политика локальных дисков» («Local drives policy») — включить перенаправление дисков:
- «Allow none» — не перенаправлять диски;
- «Allow PnP drives» — во время активного сеанса перенаправлять только подключенные диски;
- «Allow any drive» — перенаправлять все диски;
- « Принудительное подключение дисков» («Force drives») — принудительное перенаправление определённых дисков;
- «Разрешить серийные порты» («Allow Serials») — включить перенаправление последовательного порта;
- «Включить буфер обмена» («Enable clipboard») — разрешить общий буфер обмена;
- «Включить звук» («Enable sound»)— перенаправлять звук с рабочего стола на клиент подключения;
- «Включить веб-камеру» («Enable webcam») — перенаправлять веб-камеру;
- «USB redirection») — включить перенаправление USB;
- «Поддержка Credssp» («Credssp Support») — использовать «redential Security Support Provider»;
- «Порт RDP» («Port RDP») — порт RDP (по умолчанию 3389).
- На вкладке «Экран/Дисплей» («Display») настраиваются параметры окна рабочего стола:
- «Размер экрана» («Screen Size») — размер окна рабочего стола;
- «Глубина цвета» («Color depth») — глубина цвета;
- «Обои/темы» («Wallpaper/theme») — отображать фона рабочего стола;
- «Несколько мониторов» («Multiple monitors») — использовать несколько мониторов (только для клиентов Windows);
- «Разрешить композицию рабочего стола» («Allow Desk. Comp.») — включить Desktop Composition;
- «Сглаживание шрифтов» («Font Smoothing») — активирует сглаживание шрифтов;
- «Окно подключения» («Connection Bar») — показывать панель подключения (только для клиентов Windows).
- Вкладка «Linux Client»:
- «Мультимедийная синхронизация» («Multimedia sync») — включает параметр мультимедиа на клиенте FreeRDP;
- «Использовать Alsa» («Use Alsa») — использовать звук через Alsa;
- «Строка принтера» («Printer string») — принтер, используемый клиентом xfreerdp (если включено перенаправление принтера). Пример: «HP_LaserJet_M1536dnf_MFP» (названия подключенных принтеров можно вывести командой lpstat -a);
- «Строка Smartcard» («Smartcard string») — токен, используемый клиентом xfreerdp (если включено перенаправление смарт-карт). Пример: «Aktiv Rutoken ECP 00 00».
- «Пользовательские параметры» («Custom parameters») — здесь можно указать любой параметр, поддерживаемый клиентом FreeRDP.
- Вкладка «Расширенный» («Advanced»):
- «Метка» («Label») — метка транспорта метапула (используется при группировке транспорта).
RDP (туннельный)
Все настройки аналогичны настройке RDP, за исключением настроек на вкладке «Туннель».
- Вкладка «Туннель» («Tunnel»):
- «Туннельный сервер» («Tunnel Server») — IP-адрес (или имя) OpenUDS Tunnel. Если доступ к рабочему столу осуществляется через глобальную сеть, необходимо ввести общедоступный IP-адрес сервера OpenUDS Tunnel. Формат: IP_Tunneler:Port;
- «Время ожидания туннеля» («Tunnel wait time») — максимальное время ожидания туннеля;
- «Принудительная проверка SSL-сертификата» («Force SSL certificate verification») — принудительная проверка сертификата туннельного сервера.
X2Go (прямой)
«X2Go» позволяет пользователям получать доступ к виртуальным рабочим столам Linux. И на клиентах подключения (клиент), и на виртуальных рабочих столах (сервере) должен быть установлен и включен «X2Go».
Минимальные параметры для настройки транспорта X2Go:
- Вкладка «Основной»:
- «Имя» («Name») — название транспорта;
- «Приоритет» («Priority») — приоритет. Чем меньше значение приоритета, тем выше данный транспорт будет указан в списке доступных transports для сервиса. Транспорт с самым низким приоритетом, будет транспортом по умолчанию;
- «Сетевой доступ» («Networks Access») — разрешает или запрещает доступ пользователей к службе, в зависимости от сети из которой осуществляется доступ;
- «Сети» («Networks») — сетевые диапазоны, подсети или IP-адреса (настраиваются в разделе «Networks»). Пустое поле означает «все сети». Используется вместе с параметром «Networks Access»;
- «Разрешенные устройства» («Allowed Devices») — разрешает доступ к службе только с выбранных устройств. Пустое поле означает «все устройства»;
- «Сервис-пулы» («Service Pools») — позволяет назначить транспорт одному или нескольким ранее созданным пулам услуг. Можно оставить это поле пустым и выбрать способы подключения при создании пула услуг.
- Вкладка «Учётные данные» («Credentials»):
- «Имя пользователя» («Username») — имя пользователя, которое будет использоваться для доступа к рабочему столу (пользователь должен существовать на ВМ). Если данное поле пустое, будет использован логин авторизовавшегося в веб-интерфейсе OpenUDS пользователя.
- Вкладка «Параметры» («Parameters»):
- «Размер экрана» («Screen Size») — размер окна рабочего стола;
- «Экран» («Desktop») — менеджер рабочего стола (Xfce, Mate и д.р.) или виртуализация приложений Linux (UDS vAPP);
- «vAPP» — полный путь до приложения (если «Desktop» = UDS vAPP) (см. Виртуализация приложений Linux);
- «Включить звук» («Enable sound») — включить звук;
- «Перенаправить домашнюю папку» («Redirect home folder») — перенаправить домашнюю папку клиента подключения на виртуальный рабочий стол (на Linux также перенаправлять /media);
- «Скорость» («Speed») — скорость подключения.
- Вкладка «Расширенный» («Advanced»):
- «Звук» («Sound») — тип звукового сервера;
- «Клавиатура» («Keyboard») — раскладка клавиатуры;
- «Метка» («Label») — метка транспорта метапула (используется при группировке транспорта).
X2Go (туннельный)
Все настройки аналогичны настройке X2Go, за исключением настроек на вкладке «Туннель».
- Вкладка «Туннель» («Tunnel»):
- «Туннельный сервер» («Tunnel Server») — IP-адрес (или имя) OpenUDS Tunnel. Если доступ к рабочему столу осуществляется через глобальную сеть, необходимо ввести общедоступный IP-адрес сервера OpenUDS Tunnel. Формат: IP_Tunneler:Port;
- «Время ожидания туннеля» («Tunnel wait time») — максимальное время ожидания туннеля;
- «Принудительная проверка SSL-сертификата» («Force SSL certificate verification») — принудительная проверка сертификата туннельного сервера.
SPICE (прямой)
«SPICE» позволяет пользователям получать доступ к виртуальным рабочим столам Windows/Linux. На клиентах подключения должен быть установлен клиент «SPICE» (Virt-Manager).
Минимальные параметры для настройки транспорта SPICE:
- Вкладка «Основной»:
- «Имя» («Name») — название транспорта;
- «Приоритет» («Priority») — приоритет, чем меньше значение приоритета, тем выше данный транспорт будет указан в списке доступных transports для сервиса. Транспорт с самым низким приоритетом, будет транспортом по умолчанию;
- « Сертификат» («Certificate») — сертификат сгенерированный в ovirt-engine/RHV-manager или в OpenNebula. Требуется для подключения к виртуальным рабочим столам;
- «Сетевой доступ» («Networks Access») — разрешает или запрещает доступ пользователей к службе, в зависимости от сети из которой осуществляется доступ;
- «Сети» («Networks») — сетевые диапазоны, подсети или IP-адреса (настраиваются в разделе «Сети»). Пустое поле означает «все сети». Используется вместе с параметром «Сетевой доступ»;
- «Разрешенные устройства» («Allowed Devices») — разрешает доступ к службе только с выбранных устройств. Пустое поле означает «все устройства»;
- «Сервис-пулы» («Service Pools») — позволяет назначить транспорт одному или нескольким ранее созданным пулам услуг. Можно оставить это поле пустым и выбрать способы подключения при создании пула услуг.
- Вкладка «Расширенный» («Advanced»):
- «Полноэкранный режим» («Fullscreen Mode») — включает полноэкранный режим виртуального рабочего стола;
- «Перенаправление смарткарты» («Smartcard Redirect») — включает перенаправление смарт-карт;
- «Включить USB» («Enable USB») — разрешает перенаправление устройств, подключенных к порту USB;
- «Новый USB автообмен» («New USB Auto Sharing») — позволяет перенаправлять PnP-устройства, подключенные к USB-порту;
- «Метка» («Label») — метка транспорта метапула (используется при группировке транспорта).
HTML5 RDP (туннельный)
«HTML5 RDP» позволяет пользователям получать доступ к виртуальным рабочим столам Windows/Linux через протокол RDP с использованием браузера, поддерживающего HTML5 (для рабочих столов Linux на машинах должен быть установлен пакет XRDP, для рабочих столов Windows необходимо настроить доступ HTML5 RDP).
Минимальные параметры для настройки транспорта HTML5 RDP:
- Вкладка «Основной»:
- «Имя» («Name») — название транспорта;
- «Приоритет» («Priority») — приоритет, чем меньше значение приоритета, тем выше данный транспорт будет указан в списке доступных transports для сервиса. Транспорт с самым низким приоритетом, будет транспортом по умолчанию;
- «Сетевой доступ» («Networks Access») — разрешает или запрещает доступ пользователей к службе, в зависимости от сети из которой осуществляется доступ;
- «Сети» («Networks») — сетевые диапазоны, подсети или IP-адреса (настраиваются в разделе «Сети»). Пустое поле означает «все сети». Используется вместе с параметром «Сетевой доступ»;
- «Разрешенные устройства» («Allowed Devices») — разрешает доступ к службе только с выбранных устройств. Пустое поле означает «все устройства»;
- «Сервис-пулы» («Service Pools») — позволяет назначить транспорт одному или нескольким ранее созданным пулам услуг. Можно оставить это поле пустым и выбрать способы подключения при создании пула услуг.
- Вкладка «Туннель» («Tunnel»):
- «Туннельный сервер» («Tunnel Server») — IP-адрес или имя OpenUDS Tunnel. Формат: http(s)://IP_Tunneler:[Port] (8080 — порт по умолчанию для http, 443 — для https):
- Вкладка «Учётные данные» («Credentials»):
- «Пропустить данные аккаунта» («Empty creds») — если установлено значение «Да», учётные данные для доступа к виртуальному рабочему столу будут запрашиваться при подключении к серверу (не следует использовать при подключении к Windows, т.к. данные не запрашиваются). Если установлено значение «Нет», будут использоваться данные OpenUDS (см. ниже);
- «Имя пользователя» («Username») — имя пользователя, которое будет использоваться для доступа к рабочему столу (пользователь должен существовать на ВМ). Если данное поле пустое, будет использован логин авторизовавшегося в веб-интерфейсе OpenUDS пользователя;
- «Пароль» («Password») — пароль пользователя, указанного в поле «Имя пользователя»;
- «Без домена» («Without Domain») — указывает, перенаправляется ли доменное имя вместе с пользователем. Значение «Да» равносильно пустому полю «Домен»;
- «Домен» («Domain») — домен. Если поле не пустое, то учётные данные будут использоваться в виде DOMAIN\user.
- Вкладка «Параметры» («Parameters»):
- «Показать обои» («Show wallpaper») — отображать обои рабочего стола;
- «Разрешить композицию рабочего стола» («Allow Desk.Comp.») — включить «Desktop Composition»;
- «Сглаживание шрифтов» («Font Smoothing») — активирует сглаживание шрифтов;
- «Включить аудио» («Enable Audio») — перенаправлять звук с рабочего стола на клиент подключения;
- «Включить микрофон» («Enable Microphone») — включить микрофон на виртуальном рабочем столе;
- «Включить печать» («Enable Printing») — включить печать на виртуальном рабочем столе;
- «Обмен файлами» («File Sharing») — политика обмена файлами между виртуальным рабочим столом и клиентом подключения. Позволяет создать временный каталог (расположенный на сервере OpenUDS Tunnel), для возможности обмена файлами;
- «Буфер обмена» («Clipboard») — настройка общего буфера обмена;
- «Раскладка» («Layout») — раскладка клавиатуры, которая будет включена на рабочем столе.
- Вкладка «Расширенный» («Advanced»):
- «Срок действия билета» («Ticket Validity») — допустимое время (в секундах) для клиента HTML5 для перезагрузки данных из OpenUDS Broker (рекомендуется использовать значение по умолчанию — 60);
- «Открывать HTML в новом окне» («Force new HTML Window» ) — открывать ли подключение в новом окне;
- «Безопасность» («Security») — уровень безопасности соединения;
- «Порт RDP» («RDP Port») — порт RDP (по умолчанию — 3389);
- «Метка» («Label») — метка транспорта метапула (используется при группировке транспорта).
Сети
В OpenUDS можно зарегистрировать различные сети для управления доступом клиентов к виртуальным рабочим столам или приложениям (при доступе к OpenUDS определяется IP-адрес клиента подключения). Эти сети совместно с «Транспортом» будут определять, какой тип доступа будет доступен пользователи для подключения к виртуальным рабочим столам.
Чтобы добавить сеть, следует в разделе «Подключение» («Connectivity») выбрать пункт «Сети» («Networks») и нажать кнопку «Новый»:
В открывшемся окне следует указать название сети и сетевой диапазон. В качестве сетевого диапазона можно указать:
- одиночный IP-адрес: xxx.xxx.xxx.xxx (например, 192.168.0.33);
- подсеть: xxx.xxx.xxx.xxx/x (например, 192.168.0.0/24);
- диапазон IP-адресов: xxx.xxx.xxx.xxx-xxx.xxx.xxx.xxx (например, 192.168.0.1-192.168.0.50).
После создания сетей, появится возможность указать их при создании/редактировании транспорта. Можно настроить будет ли данный транспорт отображаться у клиента, в зависимости от сети, в которой находится клиент:
В данном примере транспорт «X2Go-xfce» будет доступен только клиентам из сети 192.168.0.0/24.
Если сети для транспорта не определены, доступ к службам рабочего стола и виртуальным приложениям будет возможен из любой сети.
Настройка «Сервис-пул» («Service Pools»)
После того, как был создан и настроен хотя бы один поставщик услуг, аутентификатор (с пользователем и группой), менеджер ОС и транспорт, нужно создать «Сервис-пул» для публикации виртуальных рабочих столов.
Вкладка «Основной» («Main»):
- «Имя» («Name») — название службы (это имя будет показано пользователю для доступа к рабочему столу или виртуальному приложению). В этом поле можно использовать переменные для отображения информации об услугах:
- {use} — указывает процент использования пула (рассчитывается на основе поля «Максимальное количество предоставляемых сервисов» и назначенных услуг);
- {total} — общее количество машин (данные извлечены из поля «Максимальное количество предоставляемых сервисов»);
- {usec} — количество машин, используемых пользователями в пуле;
- {left} — количество машин, доступных в пуле для подключения пользователей;
- «Базовый сервис» («Base service») — служба, созданная ранее в «Поставщике услуг» (состоит из поставщика услуг и базовой услуги);
- «ОС менеджер» («OS Manager») — ранее созданный «ОС менеджер», конфигурация которого будет применяться к каждому из созданных виртуальных рабочих столов или приложений. Если выбрана услуга типа «Статический IP», это поле не используется.
- «Публиковать при создании («Publish on creation») — если этот параметр включен, при сохранении пула услуг система автоматически запустит первую публикацию. Если установлено значение «Нет», будет необходимо запустить публикацию сервиса вручную (из вкладки «Публикации»).
Вкладка «Экран/Дисплей» («Display»):
- «Видимый» («Visible») — если этот параметр отключен, пул не будет отображаться у пользователей;
- «Привязанный образ» («Associated Image») — изображение, связанное с услугой. Изображение должно быть предварительно добавлено в репозиторий изображений (раздел «Инструменты»→«Галерея»);
- «Пул-группа» («Pool group») — позволяет группировать различные службы. Группа должна быть предварительно создана в разделе «Пулы»→«Группы»;
- «Доступ к календарю запрещён» («Calendar Access denied text») — позволяет указать сообщение, которое будет показано пользователю, если доступ к сервису ограничен правилами календаря.
Вкладка «Расширенный» («Advanced»):
- «Разрешить удаление пользователями» («Allow removal by users») — если этот параметр включен, пользователи могут удалять назначенные им службы. Если сервис представляет собой виртуальный рабочий стол, автоматически сгенерированный OpenUDS, он будет удален, и при следующем подключении ему будет назначен новый. Если это другой тип сервиса (vAPP/статический IP), будет удалено только назначение, а новое будет назначено на следующее подключение;
- «Разрешить сброс пользователям» («Allow reset by users») — если этот параметр включен, пользователь сможет перезапускать или сбрасывать назначенные ему службы (относится только к виртуальным рабочим столам, автоматически созданным OpenUDS);
- «Игнорирует неиспользуемые» («Ignores unused») — если этот параметр включен, непостоянные пользовательские службы, которые не используются, не будут удаляться;
- «Показать транспорты» («Show transports») — если этот параметр включен, будут отображаться все транспорты, назначенные услуге. Если параметр не активирован, будет отображаться только транспорт по умолчанию с наивысшим приоритетом (наименьшее число в поле «Приоритет»);
- «Учётные записи» («Accounting») — назначение услуги ранее созданным «Аккаунтам» («Пулы»→«Аккаунты»).
Вкладка «Доступность» («Availability»):
- «Первоначально доступные сервисы»(«Initial available services») — минимальное количество виртуальных рабочих столов, созданных, настроенных и назначенных/доступных для службы;
- «Сервисы для удержания в кэше» («Services to keep in cache») — количество доступных виртуальных рабочих мест. Они всегда будут настроены и готовы к назначению пользователю (они будут автоматически создаваться до тех пор, пока не будет достигнуто максимальное количество машин, указанное в поле «Максимальное количество предоставляемых сервисов»);
Количество виртуальных рабочих столов в спящем или выключенном состоянии;
- «Сервисы, хранящиеся в L2 кэше» («Services to keep in L2 cache») — количество виртуальных рабочих столов в спящем или выключенном состоянии. Виртуальные рабочие столы, сгенерированные на уровне кэша L2, будут помещены в кэш, как только система потребует их (они никогда не будут напрямую назначены пользователям);
- «Максимальное количество предоставляемых сервисов» («Maximum number of services to provide») — максимальное количество виртуальных рабочих столов, созданных системой в «пуле служб» (рабочие столы, созданные в кэше L2, не учитываются).
Нажать кнопку «Сохранить» («Save») и система начнет создавать виртуальные рабочие столы на основе настроенного кэша (вкладка «Доступность»).
После создания пула, в настройках (дважды щелкнуть мышью по строке созданного пула или в контекстном меню пула выбрать пункт «Подробность») необходимо:
- на вкладке «Группы» («Groups») назначить группы доступа (выбрать аутентификатор и группу, которая будет иметь доступ к этому пулу служб):
- на вкладке «Транспорты» («Transports») выбрать способы подключения пользователей к рабочему столу:
«Мета-пулы»
Виртуальные рабочие столы можно сгруппировать в пулы рабочих столов («Мета-пулы»), что упрощает управление и организацию. Создание «Мета-пула» позволит получить доступ к виртуальным рабочим стола или приложениям из разных «Service Pools». Эти пулы будут работать вместе, предоставляя различные услуги абсолютно прозрачным для пользователей способом.
«Пулы услуг», образующие «Мета-пул», будут работать в соответствии с политикой (см. ниже), которая позволит предоставлять услуги в соответствии с потребностями пула. Чтобы создать «Мета-пул», следует в разделе «Пулы» выбрать пункт «Meta pools» и нажать кнопку «New»:
Для настройки «Мета-пула» необходимо указать:
- вкладка «Основной»:
- «Имя» («Name») — название «Мета-пула» (это будет видеть пользователь для доступа к службе);
- «Короткое имя» («Short name») — если указано, то это будет видеть пользователь для доступа к службе (при наведении на него указателя появится содержимое поля «Имя»);
- «Политика» («Policy») — политика, которая будет применяться при создании сервисов в «Пулах услуг», являющихся частью «Мета-пула»:
- «Eventy distributed» — услуги будут создаваться и использоваться равномерно во всех «пулах услуг», составляющих «Мета-пул».
- «Priority» — услуги будут создаваться и использоваться из «пула услуг» с наибольшим приоритетом (приоритет определяется полем «priority», чем ниже значение этого поля, тем выше приоритет у элемента). Когда будет достигнуто максимального количество сервисов данного «пула услуг», будут использоваться сервисы следующего.
- «Greater % available» — службы будут создаваться и использоваться из «пула услуг», который имеет самый высокий процент свободных услуг.
- вкладка «Display»:
- «Привязанный образ» («Associated Image») — изображение, связанное с «Мета-пулом». Изображение должно быть предварительно добавлено в репозиторий изображений (раздел «Инструменты»→«Галерея»);
- «Пул-группа» («Pool group») — позволяет группировать различные «Мета-пулы». Группа должна быть предварительно создана в разделе «Пулы»→«Группы»;
- «Видимый» («Visible») — если этот параметр отключен, «Мета-пул» не будет отображаться у пользователей;
- «Доступ к календарю запрещён» («Calendar Access denied text») — текст, который будет отображаться, когда доступ к «Мета-пулу» запрещен приложением календаря доступа;
- «Выбор транспорта» («Transport Selection») — указывает как на «Мета-пул» будет назначен транспорт:
- «Automatic selection» — будет доступен в транспорт с самым низким приоритетом, назначенным «пулу услуг». Выбор транспорта не допускается;
- «Use only common transports» — транспорт, который является общими для всего «пула услуг», будет доступен в «Мета-пуле»;
- «Group Transports by label» — транспорт, которым назначены «метки», будут доступны в «метапуле» (это поле находится внутри каждого «Транспорта» на вкладке «Дополнительно»).
Сохранив конфигурацию «Мета-пула», можно начать регистрацию «Пулов услуг». Для этого следует дважды щелкнуть мышью по строке созданного «Мета-пула» или в контекстном меню «Мета-пула» выбрать пункт «Подробность»:
Чтобы добавить «Пул услуг» в «Мета-пул», следует нажать кнопку «Новый»:
Для добавления «Пула услуг» необходимо указать:
- «Приоритет» («Priority») —приоритет, который будет иметь «Пул услуг» в «Мета-пуле» (чем ниже значение, тем больше приоритет);
- «Пул услуг» («Service pool») — «Пул услуг», который будет добавлен в «Мета-пул» («Пул услуг» должен быть предварительно создан);
- «Включено» («Enabled») — включает или отключает видимость «Пула услуг» в «Мета-пуле».
Можно добавить столько «Пулов услуг», сколько нужно, комбинируя службы, размещенные на разных платформах виртуализации (PVE, KVM, OpenNebula и т.д.), серверах приложений и статических устройствах.
Как и при создании «Пула услуг», здесь есть следующие вкладки с информацией и конфигурацией:
- «Назначенные сервисы» («Assigned services») — показывает службы, назначенные пользователям (можно вручную удалить назначение и переназначить другому пользователю);
- «Группы» («Groups») — указывает, какие группы пользователей будут иметь доступ к услуге;
- «Доступ к календарям» («Access calendars») — позволяет применить ранее созданный календарь доступа;
- «Журналы» («Logs») — журналы «Мета-пула».
Управление доступом по календарю
В OpenUDS можно настроить разрешение или ограничение доступа пользователей к удаленным рабочим столам и виртуальным приложениям по датам и временным интервалам.
С помощью календаря также можно автоматизировать определенные задачи в «Пуле услуг» («Service Pools»), такие как создание новых публикаций, настройка значений системного кэша, добавление/удаление групп и транспорта, изменение максимального количества услуг.
Чтобы создать календарь следует в разделе «Пулы» выбрать «Календари» («Calendars»), нажать кнопку «Новый», в открывшемся окне ввести описательное название в поле «Имя» и нажать кнопку «Сохранить»:
В «Календаре» можно зарегистрировать правила, чтобы запланировать доступность услуги в определенное время. Для создания правила следует выбрать календарь (дважды щелкнуть мышью по строке созданного календаря или в контекстном меню календаря выбрать пункт «Подробность») и нажать кнопку «Новый»:
Минимальные параметры для настройки правила:
- «Имя» («Name») — имя правила;
- «Событие» («Event») — настройка времени выполнения. Необходимо указать время начала и продолжительность события (в минутах/часах/днях/неделях);
- «Периодичность» («Repetition») — настройка периодичности выполнения. Необходимо указать дату начала, частоту повторения правила (ежедневно/еженедельно/ежемесячно/ежегодно/по будням) и указать интервал повторения (в днях);
- «Панель» («Summary») — показывает сводные данные (резюме) всех ранее указанных настроек.
После нажатия кнопки «Хорошо» будет создано правило, которое можно будет назначить «Пулу услуг» (виртуальному рабочему столу и/или приложению).
Разрешение/запрет доступа
После настройки правил в календарях их можно использовать для управления доступом пользователей к службам рабочего стола или приложениям. Для этого следует выбрать нужный «Пул услуг», перейти на вкладку «Доступ к календарю» («Access Calendars») и нажать кнопку «Новый»:
В открывшемся окне необходимо указать приоритет доступа, выбрать календарь и указать действие, которое будет применяться при доступе к сервису:
Доступ к сервису «Desktop Alt» запрещен:
Запланированные действия
После настройки правил в календарях их можно использовать для планирования определенные задач в «Пуле услуг». Для этого следует выбрать нужный «Пул услуг», перейти на вкладку «Запланированные действия» («Scheduled actions») и нажать кнопку «Новый»:
В открывшемся окне необходимо указать календарь, время, в течение которого будет выполняться действие, выбрать действие, которое необходимо выполнить (список возможных действий зависит от поставщика услуг данного пула):
- «Установить начальные сервисы» («Set initial services») — сбрасывает минимальное количество созданных и настроенных виртуальных рабочих столов;
- «Установить размер кэша» («Set cache size») — сбрасывает виртуальные рабочие столы, доступные в системном кеше. Эти рабочие столы будут настроены и готовы к назначению пользователю;
- «Установить максимальное количество сервисов» («Set maximum number of services») — изменяет максимальное количество виртуальных рабочих столов в «Service Pool»;
- «Публикация» («Publish») — создание новой публикации в «Service Pool»;
- «Добавить транспорт» («Add a transport») — добавляет существующий транспорт в «Service Pool»;
- «Удалить транспорт» («Remove a transport») — удаляет транспорт из «Service Pool»;
- «Добавить группу» («Add a group») — добавляет существующую группу в «Service Pool»;
- «Remove a group» («Удалить группу») — удаляет группу из «Service Pool»;
- «Устанавливает игнорирование неиспользуемых» («Sets the ignore unused») — устанавливает параметр «Игнорировать неиспользуемые»;
- «Удалить ВСЕ назначенные пользовательские сервисы» («Remove ALL assigned user service») — удаляет все службы, назначенные пользователям.
После сохранения появится запланированная задача, выполняющая конкретное действие в данном «Пуле услуг»:
Настройка разрешений
В OpenUDS можно назначать пользователям и группам пользователей права доступа к различным элементам администрирования. Разрешения будут назначены непосредственно для каждого элемента, а также будут применяться к его подэлементам.
Для предоставления разрешения к элементу администрирования следует выбрать элемент и нажать кнопку «Разрешения» («Permissions»), например, в «Пуле услуг»:
В окне разрешений следует нажать ссылку «Новое разрешение…» («New permission…») для групп или пользователей, затем выбрать аутентификатор и группу/пользователя, к которым будет применяться разрешение. Также нужно указать, будет ли пользователь/группа иметь доступ «Только для чтения» к элементу («Read only») или «Полный доступ» («Full Access»):
После сохранения настроек, пользователи, которым назначена роль «Штатный сотрудник», смогут получить доступ к этому элементу администрирования с назначенными разрешениями.
Разрешения типа «Полный доступ» («Управлять») могут применяться только к элементам второго уровня («Календари», «Пулы услуг» и т.д.).
Подготовка шаблона виртуальной машины
Требования к шаблону виртуальной машины:
- Установить openuds-actor:
# apt-get install openuds-actor
- Включить автозапуск сервиса udsactor.service:
# systemctl enable udsactor.service
- Зарегистрировать UDS Actor на сервере UDS:
- запустить UDS Actor из меню («Настройки»→«UDS Actor Configuration») или командой:
$ /usr/sbin/UDSActorConfig-pkexec
- Потребуется ввести пароль пользователя, входящего в группу wheel.
- на вкладке «UDS Server» необходимо указать имя или IP-адрес сервера UDS, имя и пароль пользователя, имеющего права администратора в среде UDS и нажать кнопку «Register with UDS» («Зарегистрироваться в UDS»).
- На вкладке «Advanced» можно указать дополнительные параметры, в том числе уровень журналирования:
- «Preconnect» — сценарий, который будет запущен непосредственно перед тем, как пользователь подключится к виртуальному рабочему столу. Скрипту могут быть переданы следующие параметры: имя пользователя, протокол, IP-адрес, имя хоста;
- «Runonce» — сценарий, который будет запущен только один раз перед настройкой UDS Actor. После выполнения скрипт удаляется из конфигурации. Параметры можно передать непосредственно скрипту. Необходимо, чтобы выполняемый скрипт завершился перезапуском виртуального рабочего стола;
- «Postconfig» — сценарий, который будет запущен после того, как UDS Actor завершит настройку. Параметры можно передать непосредственно скрипту. Скрипт запускается только один раз, но в отличие от режима «Runonce» перезапускать виртуальный рабочий стол не нужно;
- «Log Level» — уровень журналирования (файл журнала: /var/log/udsactor.log).
- Для применения настроек указанных на этой вкладке необходимо выполнить перерегистрацию UDS Actor.
- Установить и настроить один из вариантов удаленного доступа:
Подключение пользователя к виртуальному рабочему месту
На клиенте должен быть установлен пакет openuds-client:
# apt-get install openuds-client
Чтобы иметь возможность подключаться к виртуальному рабочему столу, должны быть установлены клиенты каждого используемого протокола удаленного доступа (xfreerdp, x2goclient).
Для подключения к виртуальному рабочему столу по протоколу SPICE необходимо установить remote-viewer из пакета virt-viewer. На клиенте с ОС Windows необходимо установить virt-viewer (https://releases.pagure.org/virt-viewer/).
Подключение к виртуальному рабочему месту:
- подключиться к серверу OpenUDS с помощью браузера http://<openuds_address>, выбрать средство проверки подлинности, если доступно несколько, ввести имя пользователя/пароль (их должен указать администратор);
- на панели управления будут отображены все ВМ (или шаблоны), к которым у пользователя есть доступ:
- при выборе ВМ, автоматически загрузится openuds-client, который запустит приложение для просмотра удаленного рабочего стола
После выбора пула, автоматически стартует OpenUDS Client, который обрабатывает URL, получает необходимые настройки протокола удаленного доступа для предоставленной (свободной) ВМ, формирует файл описания сессии и передает его приложению-клиенту удалённого доступа, которое и устанавливает соединение с указанной ВМ.
Пример подключения с использованием транспорта HTML5 RDP:
По завершении сеанса пользователь ВМ выходит из нее, что приводит к остановке OpenUDS Actor. Брокер openUDS считает, что ВМ стала недоступной и, если пул постоянный, то он запускает ВМ, а если пул временный, то происходит удаление файлов ВМ в хранилище и создается новая ВМ из мастер-образа.
Отказоустойчивое решение
См. статью HA-кластер с OpenUDS.
Отладочная информация
OpenUDS Server
Журналы OpenUDS Server находятся в /var/log/openuds/:
- auth.log — информация о пользователях, которые обращались к OpenUDS (аутентификатор, имя пользователя, IP-адрес, ОС, результат аутентификации, браузер):
- sql.log — запросы к базе данных;
- trace.log — информация о доступе пользователей к пулу услуг (название службы, пользователь OpenUDS, используемый транспорт, IP-адрес сгенерированной машины)
- uds.log — основной журнал OpenUDS-server;
- use.log — данные о доступе пользователей к пулам услуг: время, день входа и выхода, имя или IP-адрес клиента, пользователь и аутентификатор и т.д.;
- workers.log — внутренние задачи, выполняемые OpenUDS Server: задачи самоочистки, проверка кэша и т.д.
Включить режим отладки можно, установив в файле /etc/openuds/settings.py для параметра DEBUG значение True.
В дополнение к журналам OpenUDS также важно учитывать журналы веб-сервера NGINX, расположенные в /var/log/nginx/.
OpenUDS Tunnel
По умолчанию OpenUDS Tunnel пишет логи в стандартный журнал (см. Journald).
В файлах /var/log/tomcat/catalina.дата.log можно просмотреть события связанные с соединениями HTML5.
OpenUDS Client
- OpenUDS Client Windows — журнал находится во временной папке пользователя (%temp%):
- OpenUDS Client Linux — журнал находится в домашнем каталоге пользователя (например, /home/user/udsclient.log).
OpenUDS Actor
Компонент OpenUDS Actor создаёт два журнала, один из которых связан со службой, отвечающей за настройку виртуального рабочего стола (изменение имени, включение домена, изменение состояния машины и т.д.), а другой — с контролем сеанса пользователя, обращающегося к рабочему столу.
- OpenUDS Actor Windows:
- журнал, отвечающий за задачи подготовки к обслуживанию, формируется во временном каталоге Windows: C:\Windows\Temp\udsactor.log.
- журнал, отвечающий за контрольные задачи сеанса пользователя, создается во временной папке профиля пользователя (%temp%): C:\Users\username\AppData\Local\Temp\udsactor.log.
- OpenUDS Actor Linux:
- журнал, отвечающий за задачи подготовки сервиса, формируется в каталоге /var/log/udsactor.log.
- журнал, отвечающий за задачи управления сеансом пользователя, создается в домашней папке пользователя (например, /home/user/udsactor.log).
Панель управления OpenUDS
В панели управления OpenUDS можно получить информацию о различных настраиваемых разделах и услугах, например:
- «Поставщики услуг» — раздел «Журналы» в поставщиках услуг, настроенных в OpenUDS, содержит информацию о возможных ошибках;
- «Аутентификаторы» — раздел «Журналы» в аутентификаторах, настроенных в OpenUDS, содержит информацию о пользователях, которые обращались к OpenUDS:
- «Пулы услуг» — раздел «Журналы» в пулах услуг, созданных в OpenUDS, содержит информацию об изменениях, внесенных в указанный пул, и пользователе, внесшего указанное изменение:
В созданном пуле услуг можно получить доступ к журналам каждой развернутой машины: