VDI/OpenUDS
Введение
OpenUDS это многоплатформенный брокер подключений для создания и управления виртуальными рабочими местами и приложениями.
Основные компоненты решения VDI на базе OpenUDS:
- OpenUDS Server (openuds-server) — брокер подключений пользователей, а также веб-интерфейс администратора для настройки системы.
- SQL-сервер — необходим для работы Django-приложения openuds-server. В качестве СУБД могут использоваться MySQL или MariaDB. SQL-сервер может быть установлен как на отдельной машине, так и на том же сервере, что и OpenUDS Server.
- Платформа виртуализации — среда для запуска клиентских окружений и приложений. OpenUDS поддерживает множество платформ: PVE, OpenNebula, oVirt, OpenStack. Также возможна работа с физическими серверами без виртуализации (аналог терминального решения).
- OpenUDS Client (openuds-client) — клиентское приложение для подключения к брокеру и последующего доступа к виртуальному рабочему окружению.
- OpenUDS Tunnel (openuds-tunnel) — решение для туннелирования трафика от клиента к виртуальному окружению. Предназначен для предоставления доступа из недоверенных сетей (например, из Интернета). Устанавливается на отдельный сервер.
- OpenUDS Actor (openuds-actor) — программное обеспечение, устанавливаемое на гостевые виртуальные машины (ВМ). Обеспечивает связь между ВМ и брокером OpenUDS.
| Компонент | ОЗУ | ЦП | Диск |
|---|---|---|---|
| OpenUDS Server | 2 ГБ | 2 vCPU | 8 ГБ |
| SQL Server | 1 ГБ | 2 vCPU | 10 ГБ |
| OpenUDS Tunnel | 2 ГБ | 2 vCPU | 13 ГБ |
Установка
Установка mysql/mariadb
Установить MySQL (MariaDB), запустить и добавить в автозагрузку сервер mariadb, задать пароль root для mysql и настройки безопасности:
# apt-get install mariadb-server
# systemctl enable --now mariadb.service
# mysql_secure_installation
$ mysql -u root
Создать базу данных dbuds, пользователя базы данных dbuds с паролем password и предоставить ему привилегии в базе данных dbuds:
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 — WSGI-сервер для запуска Django;
- nginx — HTTP-сервер, выступающий в роли reverse-proxy перед gunicorn.
Для работы механизма кеширования необходимо также установить пакет memcached и добавить службу memcached в автозагрузку:
# apt-get install memcached
# systemctl enable --now memcached
Настройка 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 $ python3 manage.py createcachetable uds_response_cach $ 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/5.2/howto/deployment/wsgi/ https://docs.djangoproject.com/en/5.2/ref/databases/
OpenUDS Tunnel
Установка OpenUDS Tunnel
# apt-get install openuds-tunnel
Настройка OpenUDS Tunnel
На туннельном сервере:
- Указать адрес OpenUDS сервера (брокера) в файле /etc/openuds-tunnel/udstunnel.conf:
uds_server = http://192.168.0.53/uds/rest/tunnel/ticket uds_token = 5ba9d52bb381196c2a22e495ff1c9ba4bdc03440b726aa8b
- где:
- 192.168.0.53 — IP-адрес сервера OpenUDS (брокера);
- uds_token — токен, сгенерированный при установке туннельного сервера.
- Запустить и добавить в автозагрузку сервис OpenUDS Tunnel:
# systemctl enable --now openuds-tunnel.service
На сервере OpenUDS:
- Зарегистрировать туннельный сервер, выполнив команду:
# openuds_tunnel_register -H 192.168.0.88 -n Tunnel \ -t 5ba9d52bb381196c2a22e495ff1c9ba4bdc03440b726aa8b \ -m 08:00:27:31:2d:14 Tunnel token register success. (With token: 5ba9d52bb381196c2a22e495ff1c9ba4bdc03440b726aa8b)
- где:
- -H 192.168.0.88 — IP-адрес туннельного сервера;
- -n Tunnel — название туннеля;
- -t 5ba9d52….40b726aa8b — токен туннельного сервера (из файла udstunnel.conf);
- -m 08:00:27:31:2d:14 — MAC-адрес туннельного сервера.
- См.также openuds_tunnel_register --help
- При создании туннеля указать IP-адрес и порт туннельного-сервера: 192.168.0.88:7777
{{Note| Зарегистрированные туннельные серверы отображаются в веб-интерфейсе OpenUDS в разделе «Инструменты» → «Токены» → «Серверы».
# 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;
Настройка HTML5 (Guacamole)
На туннельном сервере:
- В файле /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" maxParameterCount="1000" />
- для HTTPS-подключения (порт 10443): в файл /etc/tomcat/server.xml добавить новый Connector, в котором указать порт (в примере 10443), сертификат (файл .crt, .pem и т.д.), закрытый ключ (.key, .pem и т.д.):
<Connector port="10443" protocol="org.apache.coyote.http11.Http11AprProtocol" SSLEnabled="true" ciphers="TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-CHACHA20-POLY1305" 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.2+TLSv1.3" />
- для HTTP-подключения:
- Запустить службы Guacamole:
# systemctl enable --now guacd tomcat
На сервере OpenUDS при создании туннеля указать IP-адрес и порт туннельного-сервера:
- http://192.168.0.88 и 8080 — для подключения по HTTP;
- https://192.168.0.88 и 10443 — для подключения по HTTPS.
Обновление
После обновления openuds-server до новой версии необходимо выполнить следующие действия:
- Перенести изменения из нового конфигурационного файла /etc/openuds/settings.py.rpmnew (если они есть) в используемый /etc/openuds/settings.py.
- Проверить, что изменилось можно так:
# diff -u --color /etc/openuds/settings.py /etc/openuds/settings.py.rpmnew
- Выполнить миграцию базы данных:
# su -s /bin/bash - openuds -c "cd /usr/share/openuds; python3 manage.py migrate"
- Перезагрузить систему, так как при обновлении не создаётся файл /run/openuds/socket.
- Перенести изменения из нового конфигурационного файла /etc/openuds/settings.py.rpmnew (если они есть) в используемый /etc/openuds/settings.py.
- Проверить, что изменилось, можно так:
# diff -u --color /etc/openuds/settings.py /etc/openuds/settings.py.rpmnew
- Установить пакет memcached:
# apt-get install memcached
- Добавить службу memcached в автозагрузку и запустить её:
# systemctl enable --now memcached
- Выполнить миграцию базы данных:
# su -s /bin/bash - openuds -c "cd /usr/share/openuds; python3 manage.py migrate"
- Создать таблицу кеша uds_response_cache:
# su -s /bin/bash - openuds -c "cd /usr/share/openuds; python3 manage.py createcachetable uds_response_cache"
- Перезагрузить систему, так как при обновлении не создаётся файл /run/openuds/socket.
Настройка
Подключение системы виртуализации
В разделе «Поставщики услуг» подключить один из поставщиков:
- Поставщик платформы 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;
- «Порт» — порт подключения (по умолчанию — 2633);
- «Имя пользователя» — имя пользователя OpenNebula (с правами администратора);
- «Пароль» — пароль указанного пользователя;
- вкладка «Расширенный»:
- «Одновременное создание» — максимальное количество ВМ, создаваемых параллельно;
- «Одновременное удаление» — максимальное количество ВМ, удаляемых параллельно;
- «Таймаут» — время ожидания ответа от OpenNebula (в секундах).
С помощью кнопки «Проверить» можно убедиться, что соединение с OpenNebula настроено корректно.
После подключения платформы OpenNebula можно создать базовые службы. Для этого следует дважды щелкнуть мышью по строке созданного поставщика услуг или в контекстном меню поставщика выбрать пункт «Подробность»:
- потери связи с поставщиком;
- плановых работах по обслуживанию инфраструктуры.
В открывшемся окне на вкладке «Поставщики услуг» выбрать «Новый»→«Действующие образы OpenNebula»:
Заполнить параметры конфигурации:
- вкладка «Основной»:
- «Имя» — название службы;
- «Хранилище» — хранилище;
- вкладка «Расширенный»:
- «Метод подсчета услуг» — определяет, как учитывается количество машин при соблюдении лимита «Максимальное количество предоставляемых сервисов» в пуле:
- «Стандартный» — учитываются только созданные ВМ. В момент одновременного создания и удаления машин возможно временное превышение лимита. Пример: при лимите 5 машин система может кратковременно содержать 6 ВМ (4 активные + 1 создаваемая + 1 удаляемая);
- «Консервативный» — учитываются и создаваемые, и удаляемые ВМ. Превышение лимита невозможно: новая ВМ не создаётся, пока удаление предыдущей не завершится;
- «Метод подсчета услуг» — определяет, как учитывается количество машин при соблюдении лимита «Максимальное количество предоставляемых сервисов» в пуле:
- вкладка «Машина»:
- «Базовый шаблон» — шаблон ВМ, используемый системой OpenUDS для развёртывания виртуальных рабочих столов (см. VDI/OpenUDS#Подготовка_шаблона_виртуальной_машины);
- «Имена машин» — базовое название для клонов с этой машины (например, Desk-kwork-);
- «Длина имени» — количество цифр счетчика, прикрепленного к базовому имени рабочих столов (например, если Длина имени = 3, названия сгенерированных рабочих столов будут Desk-kwork-000, Desk-kwork-001 ... Desk-kwork-999).
После настройки OpenNebula и создания первого пула услуг, в среде OpenNebula можно будет наблюдать, как разворачиваются рабочие столы. Сначала будет создан образ ВМ («UDSP-pool_name-DSK») — клон образа, шаблон («UDSP-pool_name-publishing-number») — клон ВМ, выбранной при регистрации службы. После завершения процесса создания клона будут созданы рабочие столы («Machine_Name-Name_Length»).
PVE
Развертывание виртуальных рабочих столов, созданных с помощью OpenUDS, или подключение к существующим машинам в инфраструктуре виртуализации PVE.
Параметры поставщика платформы PVE:
- вкладка «Основной»:
- «Имя» — название поставщика;
- «Хост» — IP-адрес или имя сервера/кластера PVE;
- «Порт» — порт подключения к API PVE (по умолчанию — 8006);
- «Использовать API-токен» — если включено, вместо пароля используются API-токен и секрет (в поле «Имя пользователя» указывается идентификатор токена формате user@realm!tokenid, а в поле «Пароль» — секрет токена);
- «Имя пользователя» — учётная запись с достаточными привилегиями в PVE (в формате пользователь@аутентификатор);
- «Пароль» — пароль указанного пользователя (или секрет токена, если используется API-токен);
- вкладка «Расширенный»:
- «Одновременное создание» — максимальное количество ВМ, создаваемых параллельно;
- «Одновременное удаление» — максимальное количество ВМ, удаляемых параллельно;
- «Таймаут» — время ожидания ответа от OpenNebula (в секундах);
- «Диапазон MAC-адресов» — диапазон MAC-адресов, назначаемых создаваемым рабочим столам;;
- «Начальный VmId» — идентификатор ВМ, с которого OpenUDS начинает генерацию (>=10000).
С помощью кнопки «Проверить» можно убедиться, что соединение с PVE настроено корректно.
После подключения платформы PVE можно создать базовые службы. Для этого нужно дважды щелкнуть мышью по строке созданного поставщика услуг или в контекстном меню поставщика выбрать пункт «Подробность»:
- потери связи с поставщиком;
- плановых работах по обслуживанию инфраструктуры.
Стационарные машины Proxmox
Этот тип службы позволяет пользователям напрямую подключаться к существующим ВМ в кластере или на сервере PVE.
Чтобы создать службу «Стационарные машины Proxmox» нужно перейти на вкладку «Поставщики услуг» и нажать кнопку «Новый»→«Стационарные машины Proxmox»:
Минимальные параметры конфигурации:
- вкладка «Основной»:
- «Имя» — название службы;
- «Токен сервиса» — буквенно-цифровой идентификатор, необходимый для отслеживания входа и выхода пользователя. Если поле заполнено, OpenUDS сможет автоматически освобождать машину после выхода пользователя и предоставлять её другим. Требование: на каждой ВМ должен быть установлен Unmanaged OpenUDS Actor, и в его настройках указан тот же токен. Если поле оставлено пустым, машина навсегда закрепляется за пользователем до ручного освобождения администратором;
- вкладка «Машина»:
- «Пул ресурсов» — пул PVE, в котором находятся ВМ, доступные для назначения (ВМ должны быть размещены в этом пуле, чтобы отображаться в списке);
- «Машины» — список существующих ВМ в указанном пуле, которые будут управляться OpenUDS. Выбранные ВМ станут доступны пользователям. Если на ВМ установлен Unmanaged Actor с настроенным токеном, OpenUDS сможет динамически назначать и освобождать её. Если Actor не установлен, назначение остаётся постоянным до ручного удаления администратором;
- вкладка «Расширенный»:
- «Продолжайте» — при активации система игнорирует временные ошибки доступа к ВМ, сохраняя её в списке доступных. Полезно, если машины могут быть кратковременно недоступны (например, при перезагрузке);
- «Использовать моментальные снимки» — если включено, OpenUDS создаёт снимок (snapshot) ВМ перед подключением пользователя, и завершения сессии (автоматически или вручную) восстанавливает этот снимок, возвращая ВМ в исходное состояние. Если у ВМ уже существует снимок, OpenUDS будет использовать именно его, не создавая новый.
Связанный клон Proxmox
Этот тип службы создаёт виртуальные рабочие столы в инфраструктуре PVE, которые зависят от активных публикаций (то есть удаляются при отмене публикации).
Чтобы создать службу «Связанный клон Proxmox» нужно перейти на вкладку «Поставщики услуг» и нажать кнопку «Новый»→«Связанный клон Proxmox»:
Минимальные параметры конфигурации:
- вкладка «Основной»:
- «Имя» — название службы;
- «Пул» — пул ресурсов PVE, в котором будут размещаться ВМ;
- «Высокая доступность» — включать создаваемые ВМ в группу HA PVE;
- вкладка «Машина»:
- «Базовое имя» — префикс для имён клонов (например, Desk-SL);
- «Длина имени» — количество цифр в счётчике, добавляемом к базовому имени. (например, при значении 3 имена сгенерированных рабочих столов будут: Desk-SL000, Desk-SL001 … Desk-SL999);
- «Базовая машина» — шаблон ВМ, используемый системой OpenUDS для развертывания рабочих столов (см. VDI/OpenUDS#Подготовка_шаблона_виртуальной_машины);
- «Хранилище» — хранилище PVE, где будут размещаться клонированные ВМ. Поддерживаются хранилища, позволяющие создавать снимки (snapshots);
- «Доступность графического процессора» — определяет, как OpenUDS будет учитывать наличие виртуальных GPU (vGPU) на хостах PVE при размещении ВМ:
- «Не проверять» («Do not check)» — хосты не проверяются на наличие vGPU. ВМ могут размещаться на любом хосте пула;
- «Только при наличии» («Only if available)» — ВМ создаются только на хостах, оснащённых vGPU;
- «Только при отсутствии» («Only if NOT available)» — ВМ создаются только на хостах без vGPU.
- вкладка «Расширенный»:
- «Удалить найденные дубликаты» — если включено (по умолчанию), OpenUDS автоматически удаляет ВМ с именем, сгенерированным системой, но не зарегистрированную в брокере (например, оставшуюся после сбоя). Рекомендуется оставить включённым, чтобы избежать «потерянных» машин в инвентаре;
- «Продолжайте» — при активации система игнорирует ошибки доступа к службе и не удаляет ВМ. Особенно полезно для постоянных (персистентных) машин, так как предотвращает их удаление в большинстве ситуаций (за исключением ручного удаления администратором);
- «Сначала попробовать SOFT Shutdown» — если включено, OpenUDS перед удалением ВМ попытается выполнить корректное выключение (через ACPI), а не принудительную остановку;
- «Вернуть в кеш» — определяет, будут ли неперсистентные ВМ возвращаться в кеш после освобождения:
- «Нет. Никогда не помещать его обратно в кеш» — ВМ удаляется после завершения сессии;
- «Да, попробовать вернуть его в кеш» — ВМ возвращается в кеш для повторного использования другими пользователями (если это возможно);
- «Метод подсчета услуг» — определяет, как учитывается количество машин при соблюдении лимита «Максимальное количество предоставляемых сервисов» в пуле:
- «Стандартный» — учитываются только созданные ВМ. В момент одновременного создания и удаления машин возможно временное превышение лимита. Пример: при лимите 5 машин система может кратковременно содержать 6 ВМ (4 активные + 1 создаваемая + 1 удаляемая);
- «Консервативный» — учитываются и создаваемые, и удаляемые ВМ. Превышение лимита невозможно: новая ВМ не создаётся, пока удаление предыдущей не завершится.
После того, как среда OpenUDS будет настроена и будет создан первый «пул служб», в среде PVE можно будет наблюдать, как разворачиваются рабочие столы. Сначала будет создан шаблон («UDS-Publication-pool_name-publishing-number») — клон ВМ, выбранной при регистрации службы. После завершения процесса создания клона будут созданы рабочие столы («Machine_Name-Name_Length»):
После настройки OpenUDS и создания первого пула услуг в интерфейсе PVE можно будет наблюдать следующий процесс:
- Создаётся публикационный шаблон с именем вида: UDS-Pub-<базовое_имя>-<дата><номер_публикации> — это клон базовой ВМ.
- На основе клона создаются рабочие столы с именами: UDS-<базовое_имя><счётчик> (например, UDS-Desk-SL001).
Удалённый доступ к отдельному серверу
OpenUDS позволяет создать подключение к отдельным устройствам (физическим или виртуальным). Доступ к отдельной машине осуществляется путем назначения IP-адресов пользователям.
Для регистрации поставщика данного типа следует в разделе «Поставщики услуг» нажать кнопку «Новый» и выбрать пункт «Поставщик машин статических IP».
Для настройки «Поставщика машин статических IP» достаточно задать название поставщика:
После создания поставщика можно создавать базовые службы. Для этого следует дважды щелкнуть мышью по строке созданного поставщика или в контекстном меню поставщика выбрать пункт «Подробность»:
OpenUDS поддерживает два типа служб для поставщика машин статических IP:
- «Статический множественный IP-адрес»
- Используется для подключения одного пользователя к одному устройству (IP-адресу) из списка. Поддерживается неограниченное количество IP-адресов. По умолчанию устройства назначаются поочерёдно (первый пользователь получает первый IP из списка). Можно также настроить привязку конкретного пользователя к конкретному IP-адресу.

- «Статический одиночный IP-адрес»
- Используется для подключения нескольких пользователей к одному и тому же устройству. Каждый пользователь запускает отдельный сеанс на этом компьютере.
Статический множественный IP-адрес
Этот тип службы предоставляет пользователям доступ к разным устройствам по принципу «один пользователь — одно устройство».
Для создания новой службы «Поставщик машин статических IP» нужно перейти на вкладку «Поставщики услуг» и нажать кнопку «Новый»→«Статический множественный IP-адрес» или «Новый»→«Статический одиночный IP-адрес»:
Параметры конфигурации для услуги:
- вкладка «Основной»:
- «Имя» — название службы;
- «Ключ услуги» — токен для контроля сеансов. Если токен указан, OpenUDS отслеживает вход и выход пользователя (требуется установка Unmanaged OpenUDS Actor на каждом устройстве). После выхода устройство становится доступно другим. Если токен не указан, назначение остаётся постоянным до ручного освобождения администратором (см. OpenUDS_Windows#Unmanaged_OpenUDS_Actor).
- «Группа серверов» — группа устройств, зарегистрированная в разделе «Серверы» с типом «Неуправляемый» → «Неуправляемый IP-сервер» (см. VDI/OpenUDS#Серверы);
- Вкладка «Расширенный»:
- «Игнорировать минуты при сбое» — время (в минутах), в течение которого недоступное устройство не проверяется повторно (0 — проверять всегда);
- «Проверьте порт» — порт для проверки доступности устройства. Если недоступно — система назначает следующее устройство из списка (0 — не проверять);
- «Максимальная продолжительность сеанса» — при включённой опции «Блокировка машины внешним доступом» определяет, через сколько часов (0 — никогда) OpenUDS освободит устройство, если оно заблокировано внешним пользователем;
- «Блокировка машины внешним доступом» — если включено и на устройстве установлен Unmanaged Actor, OpenUDS запретит доступ через OpenUDS, если на устройстве уже есть активный пользователь (например, вошедший локально);
- «Использовать случайный хост» — определяет порядок назначения:
- Включено — устройства назначаются случайно;
- Отключено (по умолчанию) — по порядку в списке.
После настройки всей среды OpenUDS (поставщики, аутентификаторы, транспорты, пулы) пользователи получат доступ к устройствам из списка.
Просмотр и управление назначениями доступны в разделе «Пулы услуг» (см. VDI/OpenUDS#Настройка_«Пула_услуг»)) вкладка «Назначенные сервисы»:

Статический одиночный IP-адрес
Этот тип службы позволяет нескольким пользователям подключаться к одному и тому же устройству, каждый — в своём сеансе.
Для создания новой службы «Поставщик машин статических IP» нужно перейти на вкладку «Поставщики услуг» и нажать кнопку «Новый»→«Статический одиночный IP-адрес»:
Параметры конфигурации:
- «Имя» — название службы;
- «IP-адрес хоста/полное доменное имя» — адрес устройства, к которому будет осуществляться доступ (устройство должно быть включено и настроено см. VDI/OpenUDS#Подготовка_шаблона_виртуальной_машины). Устройство должно поддерживать многопользовательские сеансы.
После настройки всей инфраструктуры OpenUDS пользователи смогут подключаться к указанному устройству, запуская новый сеанс при каждом обращении.
Серверы
В разделе «Серверы» можно определить группы серверов, которые будут использоваться поставщиком услуг машин со статическим IP-адресом. Эти группы регистрируются как независимые объекты и могут совместно использоваться разными поставщиками, что позволяет:
- создавать конфигурации высокой доступности;
- использовать разные наборы IP-адресов или имён для прямого назначения;
- гибко управлять доступом к физическим или виртуальным устройствам.
Чтобы создать группу серверов для последующего использования в службе «Статический множественный IP-адрес», необходимо перейти в раздел «Серверы» и нажать кнопку «Новый»→ «Неуправляемый»→ «Неуправляемый IP-сервер» («Unmanaged IP Server»):
В открывшемся окне следует указать название группы и нажать кнопку «Сохранить»:
После создания группы необходимо добавить в неё конкретные устройства:
- Дважды щёлкнуть по элементу или выбрать в контекстном меню пункт «Подробность».
- На вкладке «Серверы» нажать кнопку «Новый».
- Указать имя элемента, IP-адрес или имя машины:
- Нажать «Сохранить».
После завершения настройки группа серверов может быть использована поставщиком «Поставщик машин со статическим IP-адресом» (см. раздел VDI/OpenUDS#Статический множественный IP-адрес).
Настройка аутентификации пользователей
Аутентификаторы
Аутентификатор — это ключевой компонент платформы OpenUDS. Он отвечает за проверку подлинности пользователей и предоставляет пользователям и группам права на подключение к виртуальным рабочим столам и приложениям.
Аутентификатор не является обязательным для создания «пула услуг», однако если не настроен хотя бы один аутентификатор, не будет пользователей, способных подключаться к службам OpenUDS.
Рекомендуется настроить несколько аутентификаторов или как минимум один резервный.
При использовании IP-аутентификатора вход в систему выполняется автоматически. Если такой аутентификатор имеет наивысший приоритет (наименьшее числовое значение) и возникает ошибка в его работе, это может привести к бесконечному циклу входа, делающему доступ к OpenUDS невозможным. Чтобы обойти эту проблему, можно временно отключить IP-аутентификаторы, добавив к URL входа суффикс /disabled:
https://<адрес_сервера>/uds/page/login/disabled
При создании любого аутентификатора заполняется поле «Метка». Даже при наличии нескольких аутентификаторов пользователь может войти напрямую через конкретный, указав метку в URL: https://<адрес_сервера>/uds/page/login/<метка> (например, https://192.168.0.53/uds/page/login/AD).
Для настройки аутентификации необходимо перейти в раздел «Аутентификаторы» и выбрать тип аутентификации:
- внешние источники (Active Directory, OpenLDAP и др.);
- внутренние (внутренняя база данных, IP-аутентификация).
Внутренняя база данных
При использовании аутентификатора «Внутренняя БД» данные пользователей и групп хранятся в базе данных OpenUDS.
Для создания аутентификации «Внутренняя БД» необходимо перейти в раздел «Аутентификаторы» и нажать кнопку «Новый» → «Внутренняя БД».
Минимальные параметры конфигурации (вкладка «Основной»): имя аутентификатора, приоритет (чем меньше значение, тем выше приоритет) и метка.:
После создания аутентификатора нужно зарегистрировать пользователей и группы пользователей:
- Выбрать созданный аутентификатор.
- Во вкладке «Группы» создать группы пользователей.
- Во вкладке «Пользователи» создать пользователей.
Аутентификатор Regex LDAP
Этот аутентификатор позволяет интегрировать OpenUDS с любым LDAP-совместимым каталогом (FreeIPA, Active Directory и др.).
FreeIPA
Настройка интеграции с FreeIPA (сервер ipa.example.test):
1. В разделе «Аутентификаторы» нажать кнопку «Новый» → «Аутентификатор Regex LDAP». 2. Заполнить параметры (в примере указан домен freeipa.test):
Вкладка «Основной»: имя аутентификатора, приоритет, метка, IP-адрес и порт FreeIPA-сервера (обычно 389 без SSL, 636 с SSL):
Вкладка «Учётные данные»: имя пользователя (в формате DN: uid=user_freeipa,cn=users,cn=accounts,dc=example,dc=test) и пароль:
Вкладка «LDAP информация»: общая база пользователей, класс пользователей LDAP, атрибуты: идентификатор, имя пользователя, имя группы:
3. Добавить группу LDAP, в которую входят пользователи. Для этого следует выбрать созданный аутентификатор, затем в открывшемся окне на вкладке «Группы» нажать «Новый» → «Группа».
4. Заполнить DN существующей группы (для FreeIPA по умолчанию это группа cn=ipausers,cn=groups,cn=accounts,dc=freeipa,dc=test), можно также указать разрешённые пулы:
Active Directory
Настройка аутентификации в Active Directory (например, на samba-dc) аналогична FreeIPA кроме некоторых различий (на примере домена test.alt):
1. В разделе «Аутентификаторы» нажать кнопку «Новый» → «Аутентификатор Regex LDAP».
2. Заполнить параметры:
Вкладка «Основной»: имя аутентификатора, приоритет, метка, IP-адрес и порт сервера AD (обычно 389 без SSL, 636 с SSL):
Вкладка «Учётные данные»: имя пользователя (можно указать как имя@домен или в формате DN) и пароль:
Вкладка «LDAP информация»: общая база пользователей, класс пользователей LDAP, атрибуты: идентификатор, имя пользователя, имя группы:
Кнопка «Проверить» позволяет протестировать соединение с Active Directory.
ldap server require strong auth = no
и перезапустить samba:
# systemctl restart samba
4. Добавить группу LDAP, в которую входят пользователи. Для этого выбрать созданный аутентификатор, затем в открывшемся окне на вкладке«Группы» выбрать «Новый» → «Группа». Заполнить DN существующей группы (например, CN=UDS,CN=Users,DC=test,DC=alt), можно также указать разрешённые пулы:
CN=Domain Users,CN=Users,DC=test,DC=alt
или
CN=Пользователи домена,CN=Users,DC=test,DC=alt
Можно зарегистрировать пользователя вручную, чтобы назначить ему специальные права перед первым подключением. Для этого необходимо нажать кнопку «Новый» и указать пользователя, его статус (включен или отключен) и уровень доступа (поле «Роль»). Не рекомендуется заполнять поле «Группы», так как система должна автоматически добавить пользователя в группу участников:
IP аутентификатор
Этот тип аутентификации предоставляет доступ к службам на основе IP-адреса клиента.
Для создания IP аутентификатора необходимо перейти в раздел «Аутентификаторы» и нажать кнопку «Новый» → «IP аутентификатор».
Минимальные параметры конфигурации (вкладка «Основной»): имя аутентификатора, приоритет и метка:
Настройки на вкладке «Расширенный»:
- «Видно только из этих сетей» — позволяет отфильтровать сети, из которых будет виден аутентификатор;
- «Разрешить прокси» — позволяет корректно определять IP-адреса клиентов подключения, если есть промежуточный компонент для доступа к серверу OpenUDS, например, балансировщик нагрузки (OpenUDS автоматически определяет IP-адрес клиента подключения. В средах, где настроены балансировщики нагрузки, это обнаружение не удается, поскольку IP-адрес соответствует обнаруженным балансировщикам. Включение этой опции обеспечивает правильное определение IP-адреса клиента).
После создания аутентификатора необходимо определить группы, соответствующие диапазонам IP-адресов:
- IP-адреса (192.168.0.33,192.168.0.110);
- диапазон IP-адресов (192.168.0.1-192.168.0.55);
- подсеть (192.168.0.0/24).
Радиус аутентификатор
«Радиус аутентификатор» — это внешний аутентификатор, позволяющий предоставлять доступ к виртуальным рабочим столам и приложениям пользователям и группам, зарегистрированным на RADIUS-сервере.
Для создания аутентификации «Радиус аутентификатор» необходимо перейти в раздел «Аутентификаторы» и нажать кнопку: «Новый» → «Радиус аутентификатор».
Настройки:
- вкладка «Основной»:
- «Имя» — название аутентификатора;
- «Приоритет» — определяет порядок применения при наличии нескольких аутентификаторов;
- «Метка» — используется для выбора аутентификатора через URL;
- «Хост» — IP-адрес или доменное имя RADIUS-сервера;
- «Порт» — порт сервера (по умолчанию 1812);
- «Секрет» — пароль (shared secret), настроенный на RADIUS-сервере:
- вкладка «Расширенный»:
- «Идентификатор NAS» — идентифицирует OpenUDS на стороне RADIUS-сервера;
- «Префикс приложения для атрибутов Class» — позволяет фильтровать группы, передаваемые в атрибуте Class;
- «Глобальная группа» — принудительно включает всех пользователей в указанную группу. Это полезно, если RADIUS-сервер не поддерживает передачу групп, но требуется назначить пользователям общую группу для управления доступом.
С помощью кнопки «Проверить» можно убедиться в корректности подключения к RADIUS-серверу.
После создания аутентификатора необходимо зарегистрировать группу в OpenUDS:
- Открыть созданный аутентификатор.
- Перейти во вкладку «Группы».
- Нажать кнопку: «Новый» → «Группа».
- Создать группу с тем же названием, что указано в поле «Глобальная группа»:
Многофакторная аутентификация (МФА)
Многофакторная аутентификация добавляет дополнительный уровень защиты при входе в систему.
OpenUDS поддерживает следующие методы МФА:
- Многофакторная электронная почта;
- Радиус OTP Challenge;
- SMS через HTTP;
- МФА на основе TOTP.
Также возможна интеграция с другими системами МФА, встроенными в сам аутентификатор.
Многофакторная аутентификация по электронной почте
При использовании этого метода, после ввода логина и пароля пользователю отправляется письмо с одноразовым кодом. Для завершения входа необходимо ввести этот код:
Настройка:
- вкладка «Основной»:
- «Имя» — название метода МФА;
- «Кэширование устройства» — время (в часах), в течение которого МФА не запрашивается повторно с того же устройства;
- «Срок действия кода МФА» — время (в минутах), в течение которого код остаётся действительным;
- вкладка «SMTP-сервер»:
- «SMTP-хост» — адрес SMTP-сервера (при необходимости указывается порт: host:port);
- «Безопасность» — протокол шифрования (например, STARTTLS, SSL);
- «Имя пользователя» — пользователь с доступом к SMTP-серверу;
- «Пароль» — пароль указанного пользователя;
- вкладка «Конфигурация»:
- «Тема» — заголовок письма;
- «Отправитель» — адрес электронной почты, который будет использоваться в качестве отправителя;
- «Включить HTML» — если включено, используется шаблон из поля «Почтовый HTML», иначе — шаблон из поля «Текст сообщения»;
- «Текст сообщения» — текст письма в формате plain text. Если пусто, используется сообщение по умолчанию. Доступны переменные:
- {code} — одноразовый код;
- {ip} — IP-адрес пользователя;
- {username} — имя пользователя (с доменом);
- {justUsername} — имя пользователя без домена;
- «Почтовый HTML» — HTML-шаблон письма. Если пусто, используется HTML-шаблон по умолчанию. Поддерживает те же переменные, что и поле «Текст сообщения»;
- «Политика для пользователей без поддержки МФА» — определяет действия при отсутствии настройки второго фактора у пользователя:
- «Разрешить вход пользователя»;
- «Запретить вход пользователя»;
- «Разрешить пользователю вход в систему, если его IP-адрес есть в списке сетей»;
- «Запретить пользователю вход в систему, если его IP-адрес есть в списке сетей».
Для доменных пользователей (Аутентификатор Regex LDAP) адрес электронной почты берётся из атрибута, указанного в настройках аутентификатора в поле (поле Атрибут многофакторной аутентификации):
SMS через HTTP
При использовании этого метода, после ввода логина и пароля пользователю отправляется SMS с кодом, который необходимо ввести для завершения аутентификации.
Настройка:
- вкладка «Основной»:
- «Имя» — название метода МФА;
- «Кэширование устройства» — время (в часах), в течение которого МФА не запрашивается повторно с того же устройства;
- «Срок действия кода МФА» — время (в минутах), в течение которого код остаётся действительным;
- вкладка «HTTP-сервер»:
- «Шаблон URL для отправки SMS» — URL с поддержкой переменных:
- {code} — код;
- {phone} или {+phone} — номер телефона;
- {username} — имя пользователя (с доменом);
- {justUsername} — имя пользователя без домена;
- {realName} — настоящее имя пользователя;
- «Способ отправки СМС» — метод HTTP-запроса (GET, POST, PUT);
- «Параметры POST/PUT для отправки СМС» — тело запроса (для POST/PUT);
- «Кодировка СМС» — кодировка, которая будет использоваться в СМС, например, UTF-8;
- «Шаблон URL для отправки SMS» — URL с поддержкой переменных:
- вкладка «HTTP-аутентификация»:
- «Метод аутентификации по СМС» — None, HTTP Basic Auth, HTTP Digest Auth;
- «Пользователь или токен СМС-аутентификации» — учётные данные для доступа к SMS-шлюзу;
- «Пароль для СМС-аутентификации» — пароль указанного пользователя;
- вкладка «HTTP-ответ»:
- «Регулярное выражение СМС-ответа ОК» — регулярное выражение для успешного ответа. Если не указано, успех определяется по коду состояния 200;
- вкладка «Конфигурация»:
- «Действие при ошибке ответа СМС» — политика при сбое;
- «Политика для пользователей без поддержки МФА» — действия при отсутствии настройки МФА:
- «Разрешить вход пользователя»;
- «Запретить вход пользователя»;
- «Разрешить пользователю вход в систему, если его IP-адрес есть в списке сетей»;
- «Запретить пользователю вход в систему, если его IP-адрес есть в списке сетей».
МФА на основе TOTP
После ввода логина и пароля пользователь должен ввести одноразовый код, генерируемый в приложении (Google Authenticator, FreeOTP и др.).
При входе в систему пользователь без настроенного TOTP получает QR-код для самостоятельной регистрации:
Пользователь с настроенным TOTP вводит текущий код:
Настройка:
- вкладка «Основной»:
- «Имя» — название метода МФА;
- «Эмитент» — название организации (нельзя изменить после создания);
- «Кэширование устройства» — время (в часах), в течение которого МФА не запрашивается повторно с того же устройства;
- «Срок действия кода МФА» — время (в минутах), в течение которого код остаётся действительным;
- вкладка «Конфигурация»:
- «Действительное окно» — количество допустимых кодов до и после текущего (для компенсации рассинхронизации);
- «TOTP-сети» — список сетей, из которых не требуется ввод одноразового пароля.
Настройка менеджера ОС
OpenUDS Actor, установленный на виртуальном рабочем столе, обеспечивает взаимодействие между ОС и сервером OpenUDS в соответствии с конфигурацией выбранного менеджера ОС.
Менеджер ОС управляет жизненным циклом виртуальных рабочих столов и выполняет задачи в зависимости от типа ОС и её участия в домене:
- «Менеджер ОС Linux Active Directory» — для виртуальных рабочих столов на базе Linux, входящих в домен Active Directory или FreeIPA;
- «Linux ОС менеджер» — для виртуальных рабочих столов на базе Linux без домена (выполняет переименование, управление сеансами);
- «Windows Basic ОС менеджер» — для виртуальных рабочих столов на базе Windows без домена;
- «Windows Domain ОС менеджер» — для виртуальных рабочих столов на базе Windows, входящих в домен Active Directory.
Linux ОС менеджер/Windows Basic ОС менеджер
Настройки для «Linux ОС менеджер» и «Windows Basic ОС менеджер»:
- вкладка «Основной»:
- «Имя» — название менеджера;
- «Максимальное время простоя» — время бездействия (в секундах), по истечении которого OpenUDS Actor автоматически завершит сеанс. Значения менее 300 секунд или отрицательные отключают эту функцию;
- вкладка «Расширенный»:
- «Действие при выходе из системы» — определяет поведение ВМ после завершения сеанса:
- «Держать сервис привязанным» — для постоянных пулов: ВМ перезапускается, и при следующем входе пользователь получает тот же рабочий стол;
- «Удалить сервис» – для непостоянных пулов: ВМ удаляется и создаётся заново из шаблона;
- «Держать сервис привязанным даже в новой публикации» — сохраняет привязку к пользователю даже при обновлении публикации;
- «Выход по календарю» — если включено, OpenUDS попытается завершить сеанс пользователя при окончании действия календарного правила. Если отключено, пользователю будет разрешено продолжить работу за пределами расписания.
- «Действие при выходе из системы» — определяет поведение ВМ после завершения сеанса:
Менеджер ОС Linux Active Directory
Минимальные настройки для «Менеджер ОС Linux Active Directory»:
- вкладка «Основной»:
- «Имя» — название менеджера;
- «Домен» — домен, к которому будут присоединяться ВМ (указывается в формате FQDN, например, test.alt);
- «Аккаунт» — учётная запись с правами на добавление машин в домен;
- «Пароль» — пароль указанного пользователя;
- «OU» — организационная единица, в которую будут добавляться ВМ. Если не указано, компьютеры регистрируются в контейнере по умолчанию — Computers. Формат OU: OU = name_OU_last_level, … OU = name_OU_first_level, DC = name_domain, DC = extension_domain. Во избежание ошибок, рекомендуется сверяться со значением атрибута distinguishedName в свойствах целевой OU;
- «Максимальное время простоя» — время бездействия (в секундах), по истечении которого OpenUDS Actor автоматически завершит сеанс. Значения менее 300 секунд или отрицательные отключают эту функцию;
- вкладка «Расширенный»:
- «Клиентское программное обеспечение» — позволяет указать, если это необходимо, способ подключения (SSSD или Winbind);
- «Программное обеспечение для членства» — утилита для присоединения к домену: Samba или adcli;
- «Убрать машину» — если включено, после удаления ВМ из пула её запись также удаляется из домена (пользователь, указанный в поле «Аккаунт», должен иметь права на удаление объектов в заданной OU);
- «Серверное программное обеспечение» — тип домена: Active Directory, FreeIPA;
- «Использовать SSL» — включает защищённое соединение с контроллером домена;
- «Автоматическое сопоставление идентификаторов» — включает автоматическое маппинг ID (например, UID/GID);
- «Действие при выходе из системы» — определяет поведение ВМ после завершения сеанса:
- «Держать сервис привязанным» — для постоянных пулов: ВМ перезапускается, и при следующем входе пользователь получает тот же рабочий стол;
- «Удалить сервис» – для непостоянных пулов: ВМ удаляется и создаётся заново из шаблона;
- «Держать сервис привязанным даже в новой публикации» — сохраняет привязку к пользователю даже при обновлении публикации;
- «Выход по календарю» — если включено, OpenUDS попытается завершить сеанс пользователя при окончании действия календарного правила. Если отключено, пользователю будет разрешено продолжить работу за пределами расписания.
Windows Domain ОС менеджер
Настройки для «Windows Domain ОС менеджер»:
- вкладка «Основной»:
- «Имя» — название менеджера;
- «Домен» — домен, к которому будут присоединяться ВМ (указывается в формате FQDN, например, test.alt);
- «Аккаунт» — учётная запись с правами на добавление машин в домен;
- «Пароль» — пароль указанного пользователя;
- «OU» — организационная единица, в которую будут добавляться ВМ. Если не указано, компьютеры регистрируются в контейнере по умолчанию — Computers. Формат OU: OU = name_OU_last_level, … OU = name_OU_first_level, DC = name_domain, DC = extension_domain. Во избежание ошибок, рекомендуется сверяться со значением атрибута distinguishedName в свойствах целевой OU;
- «Максимальное время простоя» — время бездействия (в секундах), по истечении которого OpenUDS Actor автоматически завершит сеанс. Значения менее 300 секунд или отрицательные отключают эту функцию;
- вкладка «Расширенный»:
- «Группа машин» — указывает, к какой группе машин AD будут добавлены виртуальные рабочие столы, созданные UDS;
- «Убрать машину» — если включено, после удаления ВМ из пула её запись также удаляется из домена (пользователь, указанный в поле «Аккаунт», должен иметь права на удаление объектов в заданной OU);
- «Предпочитаемый сервер» — если серверов AD несколько, можно указать, какой из них использовать предпочтительнее;
- «Автоматическое сопоставление идентификаторов» — включает автоматическое маппинг ID (например, UID/GID);
- «Действие при выходе из системы» — определяет поведение ВМ после завершения сеанса:
- «Держать сервис привязанным» — для постоянных пулов: ВМ перезапускается, и при следующем входе пользователь получает тот же рабочий стол;
- «Удалить сервис» – для непостоянных пулов: ВМ удаляется и создаётся заново из шаблона;
- «Держать сервис привязанным даже в новой публикации» — сохраняет привязку к пользователю даже при обновлении публикации;
- «Использовать SSL» — включает защищённое соединение с контроллером домена;
- «Выход по календарю» — если включено, OpenUDS попытается завершить сеанс пользователя при окончании действия календарного правила. Если отключено, пользователю будет разрешено продолжить работу за пределами расписания.
Транспорт
Для подключения к виртуальным рабочим столам необходимо создать транспорт. Транспорт — это клиентское приложение, отвечающее за предоставление доступа к реализованной службе.
Можно создать один транспорт для нескольких «пулов» или назначить отдельный транспорт каждому «пулу».
При создании транспорта необходимо выбрать его тип:
- «Прямой» («Direct») — используется, если пользователь имеет прямой доступ к виртуальным рабочим столам (например, через локальную сеть LAN или VPN);
- «Туннельный» («Tunneled») — используется, если прямое подключение к рабочему столу недоступно.
RDP (прямой)
Этот транспорт позволяет пользователям подключаться к виртуальным рабочим столам под управлением Windows или Linux.
На клиентских устройствах и на виртуальных рабочих столах должен быть установлен и включён протокол RDP (для виртуальных рабочих столов Linux необходимо использовать XRDP).
Параметры конфигурации транспорта RDP:
- вкладка «Основной»:
- «Имя» — название транспорта;
- «Приоритет» — определяет порядок отображения транспорта в списке доступных для сервиса. Чем меньше значение, тем выше приоритет. Транспорт с наименьшим значением будет использоваться по умолчанию;
- «Сервис-пулы» — позволяет назначить транспорт одному или нескольким ранее созданным пулам услуг. Если оставить поле пустым, выбор транспорта можно будет выполнить при настройке пула услуг;
- вкладка «Учётные данные»:
- «Пропустить данные аккаунта» — если включено, учётные данные для подключения к рабочему столу будут запрашиваться у пользователя при установке соединения. Если отключено, будут использоваться учётные данные, указанные в OpenUDS (см. ниже);
- «Имя пользователя» — имя пользователя для доступа к рабочему столу (пользователь должен существовать на ВМ). Если поле пусто, будет использован логин пользователя, авторизованного в веб-интерфейсе OpenUDS;
- «Пароль» — пароль указанного пользователя;
- «Без домена» — если включено, домен не передаётся вместе с именем пользователя. Эквивалентно пустому полю «Домен»;
- «Домен» — домен пользователя. Если указан, учётные данные будут передаваться в формате DOMAIN\user;
- на вкладке вкладке «Параметры» можно разрешить или запретить перенаправления дисков, принтеров и других устройств:
- «Разрешить смарткарты» — разрешить перенаправление смарт-карт;
- «Разрешить принтеры» — включить перенаправление принтеров;
- «Политика локальных дисков» — включить перенаправление дисков:
- «Allow none» — не перенаправлять диски;
- «Allow PnP drives» — во время активного сеанса перенаправлять только подключенные диски;
- «Allow any drive» — перенаправлять все диски;
- «Принудительное подключение дисков» — принудительное перенаправление определённых дисков;
- «Разрешить серийные порты» — включить перенаправление последовательного порта;
- «Включить буфер обмена» — разрешить общий буфер обмена;
- «Включить звук» — перенаправлять звук с рабочего стола на клиент подключения;
- «Включить веб-камеру» — перенаправлять веб-камеру;
- «USB-перенаправление» — включить перенаправление USB;
- «Поддержка Credssp» — использовать «Credential Security Support Provider»;
- «Порт RDP» — порт RDP (по умолчанию 3389);
- на вкладке «Экран/Дисплей» настраиваются параметры отображения рабочего стола:
- «Размер экрана» — размер окна рабочего стола;
- «Глубина цвета» — глубина цвета;
- «Обои/темы» — отображать фона рабочего стола;
- «Несколько мониторов» — использовать несколько мониторов (только для клиентов Windows);
- «Разрешить композицию рабочего стола» — включить Desktop Composition;
- «Сглаживание шрифтов» — активирует сглаживание шрифтов;
- «Окно подключения» — показывать панель подключения (только для клиентов Windows);
- вкладка «Linux Client»:
- «Мультимедийная синхронизация» — включает поддержку мультимедиа в клиенте FreeRDP;
- «Использовать Alsa» — включает вывод звука через систему ALSA;
- «Строка принтера» — имя принтера, используемого клиентом FreeRDP (если включено перенаправление принтеров). Пример: «HP_LaserJet_M1536dnf_MFP» (список доступных принтеров можно получить командой lpstat -a);
- «Строка Smartcard» — имя токена, используемый клиентом FreeRDP (если включено перенаправление смарт-карт). Пример: «Aktiv Rutoken ECP 00 00»;
- «Пользовательские параметры» — дополнительные параметры, поддерживаемые клиентом FreeRDP;
- вкладка «Расширенный»:
- «Сетевая фильтрация» — разрешает или запрещает доступ к службе в зависимости от сети, из которой выполняется подключение;
- «Сети» — сетевые диапазоны, подсети или IP-адреса (настраиваются в разделе Сети). Пустое поле означает «все сети». Используется совместно с параметром «Сетевая фильтрация»;
- «Разрешенные устройства» — ограничивает доступ только указанными устройствами. Пустое поле означает «все устройства»;
- «Метка» — метка транспорта для метапула (используется при назначении нескольких транспортов одному метапулу).
RDP (туннельный)
Все настройки аналогичны прямому RDP-транспорту, за исключением параметров на вкладке «Туннель».
- Вкладка «Туннель»:
- «Туннельный сервер» — туннель, через который будет устанавливаться соединение. Туннель должен быть предварительно создан (см. VDI/OpenUDS#Туннели);
- «Время ожидания туннеля» — максимальное время ожидания установки туннельного соединения;
- «Принудительная проверка SSL-сертификата» — включает обязательную проверку SSL-сертификата туннельного сервера.
X2Go (прямой)
X2Go позволяет пользователям получать доступ к виртуальным рабочим столам под управлением Linux.
На клиентских устройствах должен быть установлен клиент X2Go, а на виртуальных рабочих столах (серверах) — сервер X2Go, который должен быть запущен и настроен.
Параметры конфигурации транспорта X2Go:
- вкладка «Основной»:
- «Имя» — название транспорта;
- «Приоритет» — определяет порядок отображения транспорта в списке доступных для сервиса. Чем меньше значение, тем выше приоритет. Транспорт с наименьшим значением будет использоваться по умолчанию;
- «Сервис-пулы» — позволяет назначить транспорт одному или нескольким ранее созданным пулам услуг. Если оставить поле пустым, выбор транспорта можно будет выполнить при настройке пула услуг;
- вкладка «Учётные данные»:
- «Имя пользователя» — имя пользователя для доступа к рабочему столу (пользователь должен существовать на ВМ). Если поле пусто, будет использован логин пользователя, авторизованного в веб-интерфейсе OpenUDS;
- вкладка «Параметры»:
- «Размер экрана» — размер окна рабочего стола;
- «Экран» — менеджер рабочего стола (например, Xfce, MATE и др.) или режим виртуализации приложений Linux (UDS vAPP);
- «vAPP» — полный путь к приложению (заполняется, если в поле «Экран» выбрано значение «UDS vAPP» (см. Виртуализация приложений Linux);
- «Включить звук» — разрешает передачу звука
- «Перенаправить домашнюю папку» — монтирует домашнюю папку клиента в сессию на виртуальном рабочем столе (в Linux также перенаправляется каталог /media);
- «Скорость» — ожидаемая скорость сетевого соединения (влияет на настройки сжатия и качества);
- вкладка «Расширенный»:
- «Звук» — тип звукового сервера;
- «Клавиатура» — раскладка клавиатуры;
- «Метод сжатия» — алгоритм сжатия трафика (изменять с осторожностью);
- «Качество» — качество изображения, применяемое при некоторых методах сжатия;
- «Сетевая фильтрация» — разрешает или запрещает доступ к службе в зависимости от сети, из которой выполняется подключение;
- «Сети» — сетевые диапазоны, подсети или IP-адреса (настраиваются в разделе Сети). Пустое поле означает «все сети». Используется совместно с параметром «Сетевая фильтрация»;
- «Разрешенные устройства» — ограничивает доступ только указанными устройствами. Пустое поле означает «все устройства»;
- «Метка» — метка транспорта для метапула (используется при назначении нескольких транспортов одному метапулу).
X2Go (туннельный)
Все настройки аналогичны настройке X2Go, за исключением настроек на вкладке «Туннель».
- Вкладка «Туннель»:
- «Туннельный сервер» — туннель, через который будет устанавливаться соединение. Туннель должен быть предварительно создан (см. VDI/OpenUDS#Туннели);
- «Время ожидания туннеля» — максимальное время ожидания установки туннельного соединения;
- «Принудительная проверка SSL-сертификата» — включает обязательную проверку SSL-сертификата туннельного сервера.
SPICE (прямой)
SPICE позволяет пользователям подключаться к виртуальным рабочим столам под управлением Windows или Linux.
На клиентских устройствах должен быть установлен SPICE-клиент (например, virt-viewer.
Параметры конфигурации транспорта SPICE:
- вкладка «Основной»:
- «Имя» — название транспорта;
- «Приоритет» — определяет порядок отображения транспорта в списке доступных для сервиса. Чем меньше значение, тем выше приоритет. Транспорт с наименьшим значением будет использоваться по умолчанию;
- «Сертификат» — сертификат, сгенерированный в ovirt-engine/RHV-manager или OpenNebula. Требуется для установки защищённого подключения к виртуальным рабочим столам;
- «Сервис-пулы» — позволяет назначить транспорт одному или нескольким ранее созданным пулам услуг. Если оставить поле пустым, выбор транспорта можно будет выполнить при настройке пула услуг;
- вкладка «Расширенный»:
- «Полноэкранный режим» — включает полноэкранный режим при запуске сессии;
- «Включить USB» — разрешает перенаправление USB-устройств;
- «SSL-соединение» — использовать зашифрованное SSL-соединение;
- «Переопределить прокси» — позволяет указать собственный прокси-сервер для подключения к сервису вместо того, что предоставляет гипервизор (формат http://хост:порт);
- «Сетевая фильтрация» — разрешает или запрещает доступ к службе в зависимости от сети, из которой выполняется подключение;
- «Сети» — сетевые диапазоны, подсети или IP-адреса (настраиваются в разделе Сети). Пустое поле означает «все сети». Используется совместно с параметром «Сетевая фильтрация»;
- «Разрешенные устройства» — ограничивает доступ только указанными устройствами. Пустое поле означает «все устройства»;
- «Метка» — метка транспорта для метапула (используется при назначении нескольких транспортов одному метапулу).
HTML5 RDP (туннельный)
Транспорт HTML5 RDP позволяет пользователям подключаться к виртуальным рабочим столам под управлением Windows или Linux через браузер, поддерживающий HTML5, с использованием протокола RDP.
На виртуальных рабочих столах должен быть установлен и включён протокол RDP (для виртуальных рабочих столов Linux необходимо использовать xRDP).
Параметры конфигурации транспорта HTML5 RDP:
- вкладка «Основной»:
- «Имя» — название транспорта;
- «Приоритет» — определяет порядок отображения транспорта в списке доступных для сервиса. Чем меньше значение, тем выше приоритет. Транспорт с наименьшим значением будет использоваться по умолчанию;
- «Сервис-пулы» — позволяет назначить транспорт одному или нескольким ранее созданным пулам услуг. Если оставить поле пустым, выбор транспорта можно будет выполнить при настройке пула услуг;
- вкладка «Туннель»:
- «Туннельный сервер» — туннель, через который будет устанавливаться соединение. Туннель должен быть предварительно создан (см. VDI/OpenUDS#Туннели):
- вкладка «Учётные данные»:
- «Пропустить данные аккаунта» — если включено, учётные данные для подключения к рабочему столу будут запрашиваться у пользователя при установке соединения. Если отключено, будут использоваться учётные данные, указанные в OpenUDS (см. ниже);
- «Имя пользователя» — имя пользователя для доступа к рабочему столу (пользователь должен существовать на ВМ). Если поле пусто, будет использован логин пользователя, авторизованного в веб-интерфейсе OpenUDS;
- «Пароль» — пароль указанного пользователя;
- «Без домена» — если включено, домен не передаётся вместе с именем пользователя. Эквивалентно пустому полю «Домен»;
- «Домен» — домен пользователя. Если указан, учётные данные будут передаваться в формате DOMAIN\user;
- вкладка «Параметры»:
- «Показать обои» — отображать обои рабочего стола;
- «Разрешить композицию рабочего стола» — включить функцию «Desktop Composition»;
- «Сглаживание шрифтов» — активировать сглаживание шрифтов;
- «Включить аудио» — перенаправлять звук с рабочего стола на клиент;
- «Включить микрофон» — разрешить использование микрофона на виртуальном рабочем столе;
- «Включить печать» — разрешить печать с виртуального рабочего стола;
- «Обмен файлами» — определяет политику обмена файлами между виртуальным рабочим столом и клиентом. При включении создаётся временный каталог на сервере OpenUDS Tunnel, который используется для передачи файлов;
- «Буфер обмена» — настройка общего буфера обмена между клиентом и рабочим столом;
- «Раскладка» — раскладка клавиатуры, используемая в сессии;
- вкладка «Расширенный»:
- «Срок действия билета» — допустимое время (в секундах), в течение которого клиент HTML5 может обновлять данные из OpenUDS Broker (рекомендуемое значение — 60);
- «Открывать HTML в новом окне» — указывает, следует ли открывать подключение в новом окне браузера;
- «Безопасность» — уровень безопасности RDP-соединения;
- «Порт RDP» — порт RDP-сервера (по умолчанию — 3389);
- «Сетевая фильтрация» — разрешает или запрещает доступ к службе в зависимости от сети, из которой выполняется подключение;
- «Сети» — сетевые диапазоны, подсети или IP-адреса (настраиваются в разделе Сети). Пустое поле означает «все сети». Используется совместно с параметром «Сетевая фильтрация»;
- «Разрешенные устройства» — ограничивает доступ только указанными устройствами. Пустое поле означает «все устройства»;
- «Метка» — метка транспорта для метапула (используется при назначении нескольких транспортов одному метапулу).
HTML5 SSH (туннельный)
Транспорт HTML5 SSH позволяет пользователям подключаться к виртуальным рабочим столам Linux по протоколу SSH через браузер, поддерживающий HTML5.
На целевых машинах должен быть запущен SSH-сервер.
Этот транспорт особенно полезен для подключения к серверам Linux без графической оболочки (без оконного менеджера или среды рабочего стола).
Параметры конфигурации транспорта HTML5 SSH:
- вкладка «Основной»:
- «Имя» — название транспорта;
- «Приоритет» — определяет порядок отображения транспорта в списке доступных для сервиса. Чем меньше значение, тем выше приоритет. Транспорт с наименьшим значением будет использоваться по умолчанию;
- «Сервис-пулы» — позволяет назначить транспорт одному или нескольким ранее созданным пулам услуг. Если оставить поле пустым, выбор транспорта можно будет выполнить при настройке пула услуг;
- вкладка «Туннель»:
- «Туннельный сервер» — туннель, через который будет устанавливаться соединение. Туннель должен быть предварительно создан (см. VDI/OpenUDS#Туннели):
- вкладка «Учётные данные»:
- «Имя пользователя» — имя пользователя для доступа к рабочему столу (пользователь должен существовать на ВМ). Если поле пусто, будет использован логин пользователя, авторизованного в веб-интерфейсе OpenUDS;
- вкладка «Параметры»:
- «Обмен файлами» — политика обмена файлами между удалённым сервером и клиентом;
- «SSH-команда» — команда, выполняемая на удалённом сервере после подключения. Если поле пусто, запускается интерактивная оболочка:
- «Корень общего доступа к файлам» — корневой каталог для файлового обмена. Если не указан, используется корневой каталог (/);
- «Порт SSH-сервера» — порт SSH-сервера (по умолчанию — 22);
- «Ключ хоста SSH» — публичный ключ хоста. Если не указан, проверка подлинности хоста выполняться не будет;
- «Поддержка сервера в рабочем состоянии» — интервал (в секундах) между сообщениями keep-alive, отправляемыми на сервер для поддержания соединения. Если не указан, такие сообщения не отправляются;
- вкладка «Расширенный»:
- «Срок действия билета» — допустимое время (в секундах), в течение которого клиент HTML5 может обновлять данные из OpenUDS Broker (рекомендуемое значение — 60);;
- «Открывать HTML в новом окне» — указывает, следует ли открывать подключение в новом окне браузера;
- «Сетевая фильтрация» — разрешает или запрещает доступ к службе в зависимости от сети, из которой выполняется подключение;
- «Сети» — сетевые диапазоны, подсети или IP-адреса (настраиваются в разделе Сети). Пустое поле означает «все сети». Используется совместно с параметром «Сетевая фильтрация»;
- «Разрешенные устройства» — ограничивает доступ только указанными устройствами. Пустое поле означает «все устройства»;
- «Метка» — метка транспорта для метапула (используется при назначении нескольких транспортов одному метапулу).
Для загрузки файлов необходимо:
- Открыть окно настроек с помощью сочетания клавиш <Ctrl> + <Shift> + <Alt>).
- В поле «Устройства» выбрать нужное устройство.
- Нажать кнопку «Загрузка файлов» и выбрать файл.
Ход передачи файла отображается в левом нижнем углу окна:
Для скачивания файла нужно дважды щёлкнуть мышью на нужном файле в списке файлов.
Также можно просто перетащить файл на сервер и обратно.
Сети
В OpenUDS можно зарегистрировать различные сети для управления доступом клиентов к виртуальным рабочим столам и приложениям. Эти сети в сочетании с транспортом определяют, какой тип подключения будет доступен пользователям.
Чтобы добавить сеть, следует перейти в раздел «Сети» и нажать кнопку «Новый»:
В открывшемся окне следует указать название сети и сетевой диапазон. В качестве диапазона можно задать один из следующих вариантов:
- одиночный 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).
После создания сетей их можно указывать при создании или редактировании транспорта. Это позволяет настроить отображение транспорта для клиентов в зависимости от их сетевого расположения:
Если для транспорта не указаны сети, доступ к соответствующим рабочим столам и виртуальным приложениям будет разрешён из любой сети.
Туннели
В разделе «Туннели» можно настроить туннельные серверы, используемые транспортами для организации подключений пользователей к сервисам. Эти серверы применяются как для туннельных протоколов, так и для HTML5-подключений.
Чтобы использовать туннельный сервер, его необходимо настроить и зарегистрировать на сервере OpenUDS (см. VDI/OpenUDS#OpenUDS_Tunnel). Зарегистрированные серверы отображаются в разделе «Инструменты» → «Токены»→«Серверы»:
Чтобы добавить туннель, следует перейти в раздел «Туннели» и нажать кнопку «Новый»:
В открывшемся окне следует указать следующие параметры:
- «Имя» — название туннеля;
- «Узел» — IP-адрес или имя туннельного сервера (если туннельных серверов несколько и они находятся за балансировщиком нагрузки, необходимо указать адрес балансировщика);
- «Порт» — порт, на котором работает туннельный сервер. По умолчанию туннельный сервер прослушивает порт 7777.
Значения в полях «Узел» и «Порт» могут отличаться в зависимости от способа предоставления сервиса. Можно использовать:
- внутренние IP-адреса или имена с портами по умолчанию (7777, 8080, 10443);
- публичные IP-адреса или доменные имена с другими портами, если на стороне сервера настроено перенаправление трафика на стандартные порты туннельного сервера.
Сервер туннелей поддерживает два типа соединений:
- туннельные соединения — по умолчанию используют порт 7777;
- соединения HTML5 — по умолчанию используют порты 8080 (HTTP) и 10443 (HTTPS).
Можно назначить любой другой порт, если на туннельном сервере настроено перенаправление на соответствующий стандартный порт.
Пулы услуг
После того как созданы и настроены хотя бы один поставщик услуг с соответствующей службой/услугой, аутентификатор (с пользователем и группой), менеджер ОС и транспорт, можно создать пул услуг (Сервис-пул) для публикации виртуальных рабочих столов или приложений.
Для создания пула услуг необходимо перейти в раздел «Сервис-пулы» и нажать кнопку «Новый»:
Заполнить параметры конфигурации:
- вкладка «Основной»:
- «Имя» — название службы, отображаемое пользователю при доступе к рабочему столу или виртуальному приложению. В этом поле можно использовать следующие переменные:
- {use} — процент использования пула (рассчитывается на основе максимального количества предоставляемых сервисов и текущего числа назначенных услуг);
- {total} — общее количество машин (значение из поля «Максимальное количество предоставляемых сервисов»);
- {usec} — количество машин, используемых пользователями в пуле;
- {left} — количество машин, доступных для подключения;
- «Базовый сервис» — служба, созданная ранее в поставщике услуг (состоит из поставщика и базовой услуги);
- «ОС менеджер» — ранее созданный менеджер ОС, конфигурация которого применяется ко всем виртуальным рабочим столам или приложениям в пуле;
- «Имя» — название службы, отображаемое пользователю при доступе к рабочему столу или виртуальному приложению. В этом поле можно использовать следующие переменные:
- «Публиковать при создании — если включено, система автоматически запустит первую публикацию после сохранения пула. Если отключено, публикацию необходимо запустить вручную через вкладку «Публикации».
- вкладка «Экран/Дисплей»:
- «Видимый» — если отключено, пул не отображается у пользователей;
- «Привязанный образ» — изображение, связанное с услугой. Изображение должно быть предварительно загружено в репозиторий изображений (раздел «Инструменты»→«Галерея»);
- «Пул-группа» — позволяет группировать различные службы. Группа должна быть предварительно создана в разделе «Пулы»→«Группы»;
- «Доступ к календарю запрещён» — сообщение, отображаемое пользователю, если доступ к сервису ограничен правилами календаря;
- «Персонализированное сообщение о запуске» — сообщение, показываемое пользователю при попытке запуска службы;
- «Включить персонализированное сообщение о запуске» — активирует отображение указанного сообщения;
- вкладка «Расширенный»:
- «Разрешить удаление пользователями» — если включено, пользователи могут удалять назначенные им службы. Для автоматически созданных виртуальных рабочих столов OpenUDS: ВМ будет удалена, и при следующем подключении пользователю будет назначена новая. Для других типов (vAPP, статический IP): удаляется только назначение; новое назначение происходит при следующем подключении.
- «Разрешить сброс пользователям» — позволяет пользователям перезапускать или сбрасывать свои службы (применяется только к автоматически созданным виртуальным рабочим столам);
- «Игнорировать неиспользуемые» — если включено, непостоянные пользовательские службы, которые не используются, не будут автоматически удаляться;
- «Показать транспорты» — если включено, отображаются все назначенные транспорты. В противном случае показывается только транспорт по умолчанию (с наивысшим приоритетом);
- «Учётные записи» — назначение услуги ранее созданным аккаунтам («Пулы»→«Аккаунты»).
- вкладка «Доступность»:
- «Первоначально доступные сервисы» — минимальное количество виртуальных рабочих столов, которые создаются, настраиваются и готовы к немедленному назначению;
- «Сервисы для удержания в кеше» — количество виртуальных рабочих столов, постоянно находящихся в состоянии готовности к назначению. Эти машины автоматически создаются до достижения лимита, заданного в поле «Максимальное количество предоставляемых сервисов»);
- «Сервисы, хранящиеся в L2 кеше» — количество ВМ в спящем или выключенном состоянии. Такие рабочие столы никогда не назначаются напрямую пользователям, но могут быть быстро активированы по запросу;
- «Максимальное количество предоставляемых сервисов» — верхний предел числа виртуальных рабочих столов, которые может создать система в данном пуле.
После нажатия кнопки «Сохранить» система начнет создавать виртуальные рабочие столы в соответствии с настроенными параметрами кеширования.
После создания пула необходимо настроить доступ и транспорты. Для этого следует открыть его настройки (дважды щелкнуть мышью по строке созданного пула или в контекстном меню пула выбрать пункт «Подробность») и выполнить следующие действия:
- на вкладке «Группы» назначить группы доступа (выбрать аутентификатор и группу, которой разрешён доступ к этому пулу):
- на вкладке «Транспорты» выбрать способы подключения пользователей к рабочему столу:
«Мета-пулы»
Виртуальные рабочие столы и приложения можно объединять в мета-пулы — логические группы, упрощающие управление и организацию доступа. Мета-пул позволяет пользователям получать доступ к ресурсам из разных пулов услуг единым, прозрачным образом. Для пользователя такая служба выглядит как один сервис, хотя на самом деле она объединяет несколько независимых пулов.
Пулы услуг, входящие в состав мета-пула, работают в соответствии с заданной политикой распределения, которая определяет, как и когда предоставляются те или иные услуги.
Чтобы создать «Мета-пул» необходимо перейти в раздел «Мета-пулы» и нажать кнопку «Новый»:
Для настройки «Мета-пула» необходимо указать:
- вкладка «Основной»:
- «Имя» — название мета-пула, отображаемое пользователю при доступе к службе:
- «Короткое имя» — альтернативное название, которое будет показано в интерфейсе. При наведении курсора на него отображается полное имя из поля «Имя»;
- «Политика балансировки нагрузки» — определяет как выбираются пулы услуг при предоставлении сервисов:
- «Равномерно распределённые» — услуги создаются и используются равномерно по всем пулам, входящим в мета-пул;
- «Приоритет» — сначала используются пулы с наивысшим приоритетом (чем меньше значение поля Приоритет, тем выше приоритет). После достижения лимита по максимальному количеству сервисов в таком пуле система переходит к следующему по приоритету;
- «Больше % доступно» — предпочтение отдаётся пулу с наибольшим процентом свободных (доступных) сервисов;
- «Политика высокой доступности» — если включена, при недоступности одного из пулов его сервисы будут автоматически перенаправляться в другие пулы мета-пула (эту опцию следует использовать с осторожностью, так как она может повлиять на стабильность и предсказуемость работы);
- вкладка «Экран/Дисплей»:
- «Привязанный образ» — изображение, связанное с мета-пулом. Изображение должно быть предварительно загружено в репозиторий изображений (раздел «Инструменты»→«Галерея»);
- «Пул-группа» — позволяет объединять мета-пулы в логические группы. Группа должна быть создана заранее в разделе «Пулы»→«Группы»;
- «Видимый» — если отключено, мета-пул не отображается у пользователей;
- «Доступ к календарю запрещён» — сообщение, показываемое пользователю, если доступ к сервису ограничен правилами календаря;
- «Выбор транспорта» — определяет, как назначаются транспорты для мета-пула:
- «Автоматический выбор» — используется ранспорт с наивысшим приоритетом (наименьшим значением) из назначенных пулу услуг. Пользователь не может выбирать транспорт вручную;
- «Использовать только общие транспорты» — в мета-пуле доступны только те транспорты, которые назначены всем пулам услуг, входящим в мета-пул;
- «Группировать транспорты по метке» — доступны только транспорты, имеющие метку, указанную в настройках транспорта на вкладке «Расширенный».
После создания мета-пула необходимо добавить в него конкретные пулы услуг. Для этого следует открыть настройки мета-пула (дважды щелкнуть мышью по строке созданного пула или выбрать «Подробность» в контекстном меню пула) и на вкладке «Пулы услуг» нажать кнопку «Новый»:
Для каждого добавляемого пула необходимо указать:
- «Приоритет» — приоритет данного пула внутри мета-пула (чем меньше значение, тем выше приоритет);
- «Пул услуг» — ранее созданный пул, который будет включён в мета-пул;
- «Включено» — определяет, участвует ли пул в работе мета-пула (если отключено, пул игнорируется).
Можно добавить любое количество пулов, в том числе объединяя службы, размещённые на разных платформах виртуализации (PVE, KVM, OpenNebula и др.), серверах приложений или статических устройствах.
Как и у обычного пула услуг, у мета-пула доступны следующие вкладки:
- «Назначенные сервисы» — отображает текущие назначения пользователям. Здесь можно вручную отменить назначение или переназначить сервис другому пользователю;
- «Группы» — определяет, какие группы пользователей будут иметь доступ к услуге;
- «Доступ к календарям» — позволяет применить ранее созданный календарь для ограничения доступа по расписанию;
- «Журналы» — содержит логи событий, связанных с мета-пулом.
Управление доступом по календарю
В OpenUDS можно настроить ограничение доступа пользователей к удаленным рабочим столам и виртуальным приложениям по дате и времени.
Кроме того, с помощью календаря можно автоматизировать задачи в пуле услуг, такие как:
- создание новых публикаций;
- настройка значений системного кеша;
- добавление или удаление групп и транспортов;
- изменение максимального количества предоставляемых услуг.
Для создания календаря необходимо перейти в раздел «Календари» и нажать кнопку «Новый». В открывшемся окне нужно ввести описательное название в поле «Имя» и нажать кнопку «Сохранить»:
В «Календаре» можно зарегистрировать правила, чтобы запланировать доступность услуги в определённое время. Чтобы создать правило, следует открыть нужный календарь (дважды щелкнуть по строке календаря или выбрать пункт «Подробность» в контекстном меню) и нажать кнопку «Новый»:
Минимальные параметры для настройки правила:
- «Имя» — имя правила;
- «Событие» — время начала и продолжительность события (в минутах, часах, днях или неделях);
- «Repetition» («Периодичность») — настройка повторения. Необходимо указать дату начала, частоту повторения правила (ежедневно/еженедельно/ежемесячно/ежегодно/по будням) и интервал повторения (в днях);
- «Панель» — сводная информация обо всех указанных настройках.
После нажатия кнопки «Хорошо» правило будет создано и может быть назначено пулу услуг (виртуальному рабочему столу и/или приложению):
Разрешение/запрет доступа
После настройки правил их можно использовать для управления доступом пользователей к службам. Для этого следует выбрать пул услуг, перейти на вкладку «Доступ к календарям» и нажать кнопку «Новый»:
В открывшемся окне необходимо указать:
- приоритет доступа;
- календарь;
- действие, которое будет применяться при попытке доступа к сервису.
Доступ к сервису «SL» запрещен:
Запланированные действия
Правила календаря также можно использовать для автоматизации задач в пуле услуг. Для этого следует выбрать пул услуг, перейти на вкладку «Запланированные действия» и нажать кнопку «Новый»:
В открывшемся окне необходимо указать:
- приоритет доступа;
- календарь;
- выполняемое действие.
Список доступных действий зависит от типа поставщика услуг, используемого в пуле. Возможные действия::
- «Установить начальные сервисы» — задаёт минимальное количество созданных и готовых к использованию виртуальных рабочих столов;
- «Установить размер кеша» — определяет количество ВМ в основном кеше (готовых к немедленному назначению);
- «Установить максимальное количество сервисов» — изменяет верхний лимит виртуальных рабочих столов в пуле;
- «Установить размер L2 кеша» — задаёт количество ВМ в спящем или выключенном состоянии (L2-кеш);
- «Публикация» — запускает новую публикацию в пуле услуг;
- «Добавить транспорт» — добавляет существующий транспорт в пул;
- «Удалить транспорт» — удаляет указанный транспорт из пула;
- «Удалить все транспорты» — удаляет все транспорты, назначенные пулу;
- «Добавить группу» — добавляет существующую группу пользователей в пул;
- «Удалить группу» — удаляет указанную группу из пула;
- «Удалить все группы» — удаляет все группы, назначенные пулу;
- «Установить игнорирование неиспользуемых» — включает или отключает параметр «Игнорировать неиспользуемые»;
- «Удалить ВСЕ назначенные пользовательские сервисы» — отменяет все текущие назначения;
- «Удалить СТАРЫЕ назначенные пользовательские сервисы» — удаляет назначения, которые не использовались в течение заданного времени;
- «Персонализированное сообщение на панелях запуска» — задаёт текст сообщения, отображаемого при запуске службы.
После сохранения создаётся запланированная задача, которая будет автоматически выполнять указанное действие в заданное время.
После сохранения появится запланированная задача, выполняющая конкретное действие в данном «Пуле услуг»:
Настройка разрешений
В OpenUDS можно назначать пользователям и группам права доступа к различным элементам интерфейса администрирования. Разрешения, назначенные элементу, применяются к нему самому и ко всем его подэлементам.

Для предоставления разрешения на конкретный элемент администрирования следует выбрать этот элемент и нажать кнопку «Разрешения»:
В окне разрешений следует нажать ссылку «Новое разрешение…» для групп или пользователей, затем:
- Выбрать аутентификатор.
- Указать группу или пользователя, к которому будет применяться разрешение.
- Задать уровень доступа:
- «Только чтение» — просмотр элемента без возможности внесения изменений;
- «Полный доступ» — полное управление элементом и его подэлементами.
После сохранения настроек пользователи с ролью «Штатный сотрудник», которым назначены соответствующие разрешения, получат доступ к указанному элементу администрирования в соответствии с установленным уровнем прав.
Разрешения типа «Полный доступ» («Управление») могут применяться только к элементам второго уровня, таким как («Календари», «Пулы услуг» и т.д.).
Уведомители
В OpenUDS можно зарегистрировать два типа уведомителей, чтобы автоматически отправлять события определённых уровней: Warning (Предупреждение), Error (Ошибка) и Critical (Критическая ошибка).
Чтобы создать новый уведомитель, необходимо перейти в раздел «Инструменты»→ «Уведомители» и нажать кнопку «Новый»:
Доступны два типа уведомителей: по электронной почте и через Telegram.
Telegram
Этот уведомитель отправляет сообщения через приложение Telegram.
Параметры конфигурации для уведомителя Telegram:
- вкладка «Основной»:
- «Имя» — название уведомителя;
- «Уровень» — уровень событий, которые будут отправляться;
- «Включено» — если активно, уведомления будут отправляться;
- вкладка «Telegram»:
- «Токен доступа» — токен, полученный при создании бота в Telegram;
- «Секрет» — секретный ключ, используемый для проверки команд подписки;
- «Проверить задержку» — интервал (в секундах) между проверками входящих команд от пользователей.
Чтобы получать уведомления от OpenUDS в Telegram, чат должен быть подписан на бота. Подписка выполняется командой:
/join <secret>
где <secret> — секретный ключ, указанный в настройках Telegram-уведомлений OpenUDS. Только после успешной подписки бот сможет отправлять сообщения в этот чат.
Отписаться можно с помощью команды:
/leave
- Выполнить команду в боте:
/start
- Получить chat_id, выполнив запрос к Telegram API:
$ curl -s "https://api.telegram.org/bot<токен>/getUpdates"
- В ответе найти поле:
"chat": {"id": 92233838, ...}
- Отправить тестовое сообщение:
$ curl -s "https://api.telegram.org/bot<токен>/sendMessage?chat_id=<chat_id>&text=testing"
requests.packages.urllib3.util.connection.HAS_IPV6 = False
Электронная почта
Этот уведомитель отправляет сообщения по электронной почте.
Параметры конфигурации для уведомителя «Электронная почта»:
- вкладка «Основной»:
- «Имя» — название уведомителя;
- «Уровень» — уровень событий, которые будут отправляться;
- «Включено» — если активно, уведомления будут отправляться;
- вкладка «SMTP-сервер»:
- «SMTP-хост» — адрес почтового сервера для отправки;
- «Безопасность» — тип защиты соединения (например, SSL/TLS или STARTTLS);
- «Имя пользователя» — учётная запись с правами на отправку писем через указанный SMTP-сервер;
- «Пароль» — пароль для указанной учётной записи;
- вкладка «Конфигурация»:
- «Отправитель» — адрес отправителя, который будет отображаться в письмах;
- «Отправить по электронной почте» — адрес получателя уведомлений;
- «Включить HTML» — если включено, в теле письма разрешено использование HTML-разметки.
Конфигурация OpenUDS
В разделе «Конфигурация» можно настроить системные параметры, определяющие поведение OpenUDS. Эти параметры влияют на такие аспекты, как безопасность, режим работы, взаимодействие с виртуальными платформами, пользовательский интерфейс и т.д.
Вкладка «UDS»:
- «autorunService» — автоматический запуск единственной службы. Если включено, пользователи, которым назначена только одна служба, будут подключаться к ней напрямую, минуя экран выбора сервисов, с использованием предварительно настроенного транспорта. По умолчанию: нет;
- «cacheCheckDelay» — определяет интервал (в секундах), с которым система проверяет состояние кеша для создания или удаления виртуальных машин. Чем меньше значение, тем быстрее реагирует система, но слишком низкие значения могут вызвать перегрузку гипервизора. По умолчанию: 19;
- «Calendar Access denied text» — текст сообщения, отображаемый всем пользователям при попытке доступа к службе, ограниченной календарными правилами;
- «checkUnusedTime» — время (в секундах), по истечении которого система удаляет непостоянную службу, если она не используется. Применяется только к службам с менеджером ОС типа Удалить сервис. Для других менеджеров параметр игнорируется. По умолчанию: 631;
- «disallowGlobalLogin» — скрыть выбор аутентификаторов на странице входа. Если включено, на странице входа не отображается список аутентификаторов — используется только аутентификатор по умолчанию. Для входа через другие аутентификаторы необходимо добавить соответствующую метку в URL (например, ?auth=freeipa). По умолчанию: нет;
- «keepInfoTime» — время хранения информации о завершённых событиях. Определяет, как долго (в секундах) записи о завершённых сессиях в пуле услуг остаются видимыми в журналах. По умолчанию: 14401 секунд (4 часа + 1 секунда);
- «SessionExpireTime» — тайм-аут пользовательской ессии после публикации. Максимальное время (в часах), в течение которого сессия пользователя остаётся активной после создания новой публикации. По истечении этого времени сессия завершается, и служба может быть удалена. Если для службы настроен менеджер ОС с опцией «Держать сервис привязанным даже в новой публикации», этот параметр игнорируется. По умолчанию: 24 часа;
- «StatsDuration» — период хранения статистики. Время (в днях), в течение которого OpenUDS сохраняет статистические данные. По умолчанию: 365 дней.
Вкладка «Безопасность» («Security»):
- «Allowed IP Forwarders» — список IP-адресов доверенных серверов пересылки (например, балансировщиков нагрузки или прокси), чьи заголовки X-Forwarded-For будут приниматься системой. Это особенно важно в конфигурациях с высокой доступностью. Значение «*» (по умолчанию) означает, что принимаются все IP-адреса серверов пересылки;
- «AllowRootWebAccess» — разрешить вход суперпользователю через веб-интерфейс. Позволяет пользователю, созданному при первоначальной установке OpenUDS, входить в панель администрирования. По умолчанию: да;
- «Behind a proxy» — работа за прокси-сервером. Указывает, что OpenUDS размещён за обратным прокси (например, HAProxy, Nginx). Это влияет на обработку заголовков X-Forwarded-For и X-Real-IP. По умолчанию: нет;
- «Block ip on login failure» — блокировка IP при неудачных попытках входа. При включении блокирует как пользователя, так и его IP-адрес после превышения лимита неудачных попыток (см. «maxLoginTries»). По умолчанию: нет;
- «Enforce Zero-Trust Mode» — режим нулевого доверия. Запрещает OpenUDS хранить учётные данные (пароли) в открытом виде или в кеше. Все аутентификационные данные должны передаваться напрямую провайдеру. По умолчанию: нет;
- «loginBlockTime» — время блокировки после неудачного входа. Длительность блокировки (в секундах) после превышения лимита попыток входа. Количество попыток указывается в переменной «maxLoginTries». По умолчанию: 300 секунд (5 минут);
- «maxLoginTries» — максимальное число попыток входа. Количество неудачных попыток аутентификации, после которого пользователь и/или IP-адрес блокируются. По умолчанию: 5;
- «RootPass» — пароль суперпользователя. Рекомендуется использовать надёжный пароль: не менее 12 символов, с комбинацией заглавных и строчных букв, цифр и специальных символов;
- «SuperUser» — имя суперпользователя, созданного при первоначальной настройке сервера OpenUDS;
- «Session timeout for Admin» — тайм-аут сессии администратора. Время бездействия (в секундах), после которого сессия администратора автоматически завершается. По умолчанию: 14400 секунд (4 часа);
- «Session timeout for User» — тайм-аут сессии обычного пользователя. Аналогично для пользователей (не администраторов). По умолчанию: 14400 секунд (4 часа);
- «Trusted Hosts» — доверенные хосты. Список IP-адресов, подсетей или диапазонов, которым разрешено выполнять чувствительные («sensitive») запросы к API OpenUDS (например, создание токенов). Допустимые значения: подсеть, диапазон IP-адресов, конкретные IP-адреса (192.168.1.0/24, 10.0.0.5-10.0.0.10, 203.0.113.1). По умолчанию: "*" (всё разрешено).
Вкладка «Администрирование» («Admin»):
- «Enable VNC for user services» — при включении добавляет кнопку «VNC» в интерфейсе назначенных служб. При нажатии создаётся файл с настройками для подключения через VNC-клиент. VNC-клиент должен быть установлен на клиентской машине. Должно существовать прямое сетевое подключение между клиентом и виртуальной машиной. По умолчанию: нет;
- «List page size» — количество элементов, отображаемых на одной странице в разделах администрирования. Применяется глобально ко всем спискам (пулы, транспорты, календари и т.д.);
- «Trusted Hosts for Admin» — доверенные хосты для администрирования. Определяет, с каких IP-адресов разрешён доступ к веб-интерфейсу и API администрирования. Формат аналогичен полю «Trusted Hosts». По умолчанию: "*" (всё разрешено).
Вкладка «Custom» параметры кастомизации пользовательского интерфейса):
- «Cookies consent enabled» — если включено, на страницах OpenUDS отображается уведомление о использовании файлов cookie. Важно: OpenUDS использует только собственные (first-party) cookie, необходимые для работы системы. Сторонние cookie не применяются;
- «Cookies consent text» — текст уведомления о согласии на использование файлов cookie. Заменяет стандартное сообщение по умолчанию;
- «CSS» — пользовательский CSS-код для изменения стиля страниц OpenUDS;
- «Logo name» — текст, отображаемый рядом с логотипом (например, название организации);
- «Min. Services to show filter» — минимальное количество назначенных пользователю служб, при котором на странице появляется панель фильтрации;
- «Show Filter on Top» — расположение панели поиска на странице пользовательских служб: вверху или внизу;
- «Site copyright info» — текст копирайта;
- «Site copyright link» — URL, на который ведёт ссылка из копирайта;
- «Site information» — HTML-код, вставляемый под полями входа на странице авторизации (например, для отображения контактной информации или уведомлений);
- «Site name» — заголовок на странице входа (отображается над полями логина и пароля).
Подготовка шаблона виртуальной машины
Требования к шаблону виртуальной машины:
- Установить 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» необходимо указать:
- «SSL Validation» — уровень безопасности для связи с сервером OpenUDS;
- «UDS Server» — имя или IP-адрес сервера OpenUDS;
- «Authenticator» — аутентификатор, которому принадлежит указанный пользователь-администратор (аутентификатор «Administration» соответствует суперпользователю). Чтобы отображались различные аутентификаторы должна быть установлена связь с сервером OpenUDS;
- «Username» — имя пользователя, имеющего права администратора в среде OpenUDS (должен принадлежать аутентификатору, выбранному в поле «Authenticator»);
- «Password» — пароль пользователя.
- Нажать кнопку «Register with UDS» («Зарегистрироваться в UDS»);
- На вкладке «Advanced» можно указать дополнительные параметры, в том числе уровень журналирования:
- «Preconnect» — сценарий, который будет запущен непосредственно перед тем, как пользователь подключится к виртуальному рабочему столу. Брокер OpenUDS автоматически передаёт следующие параметры: имя пользователя, протокол, IP-адрес клиента, имя хоста клиента, которые можно использовать в скрипте;
- «Runonce» — сценарий, который будет запущен только один раз перед настройкой UDS Actor. После выполнения скрипт удаляется из конфигурации. Параметры можно передать непосредственно скрипту. Необходимо, чтобы выполняемый скрипт завершился перезапуском виртуального рабочего стола;
- «Postconfig» — сценарий, который будет запущен после того, как UDS Actor завершит настройку. Параметры можно передать непосредственно скрипту. Скрипт запускается только один раз, но в отличие от режима «Runonce» перезапускать виртуальный рабочий стол не нужно;
- «Log Level» — уровень журналирования (файл журнала: /var/log/udsactor.log).
- Для применения настроек указанных на этой вкладке необходимо выполнить перерегистрацию UDS Actor.
- Установить и настроить один из вариантов удаленного доступа:
В openuds-actor, начиная с версии 3.6.0-alt4 , можно зарегистрировать UDS Actor в командной строке и использовать переменные окружения. Например:
# UDSActorRegister
SSL validation (yes/no): no
Hostname: 192.168.0.53
Authenticator ['Internal', 'radiusauth', 'freeipa', 'AD', 'admin']: admin
Username: root
Password:
Pre connect:
Run once:
Post config:
Log level ['debug', 'info', 'error', 'fatal']: error
Registration with UDS completed.
Где (в скобках приведены соответствующие переменные окружения):
- SSL Validation — уровень безопасности для связи с сервером OpenUDS (OPENUDS_ACTOR_SSL_VALIDATION);
- Hostname — имя или IP-адрес сервера OpenUDS (OPENUDS_HOST);
- Authenticator — аутентификатор, которому принадлежит пользователь-администратор (аутентификатор «admin» соответствует суперпользователю, другие типы аутентификаторв будут присутствовать в списке, если настроены в брокере). Чтобы отображались возможные аутентификаторы должна быть установлена связь с сервером OpenUDS (OPENUDS_AUTHENTICATOR);
- Username — имя пользователя, имеющего права администратора в среде OpenUDS (OPENUDS_USERNAME);
- Password — пароль пользователя (OPENUDS_PASSWORD);
- Pre connect — сценарий в формате /path/to/script, который будет запущен непосредственно перед тем, как пользователь подключится к виртуальному рабочему столу (OPENUDS_ACTOR_PRE_CONNECT);
- Run once — сценарий в формате /path/to/script, который будет запущен только один раз перед настройкой UDS Actor (OPENUDS_ACTOR_RUN_ONCE);
- Post config — сценарий в формате /path/to/script, который будет запущен после того, как UDS Actor завершит настройку (OPENUDS_ACTOR_POST_CONFIG);
- Log Level — уровень журналирования (OPENUDS_ACTOR_LOG_LEVEL).
Регистрация UDS Actor, с использованием переменных окружения:
# export OPENUDS_ACTOR_SSL_VALIDATION=no
# export OPENUDS_HOST=192.168.0.53
# export OPENUDS_AUTHENTICATOR=admin
# export OPENUDS_ACTOR_POST_CONFIG=/home/user/test.sh
# export OPENUDS_ACTOR_LOG_LEVEL=error
# UDSActorRegister
Username: root
Password:
Pre connect:
Run once:
Registration with UDS completed.
Настройка клиента OpenUDS
Для возможности подключения к брокеру OpenUDS и последующего доступа к виртуальному рабочему окружению на клиентской машине необходимо установить:
- клиент OpenUDS ;
- клиенты протоколов удалённого доступа, используемых в пулах (RDP, X2Go, SPICE и др.).
Клиент с ОС Альт
Установка клиента OpenUDS openuds-client:
# apt-get install openuds-client
Для подключения к виртуальным рабочим столам также требуются клиенты соответствующих протоколов:
- xfreerdp3 — для подключения по протоколу RDP;
- x2goclient — для подключения к серверу X2Go;
- remote-viewer из пакета virt-viewer — для подключения по протоколу SPICE.
Клиент с ОС Windows
Подключение пользователя к виртуальному рабочему месту
Подключиться к серверу OpenUDS можно с помощью браузера:
- Открыть в браузере адрес сервера OpenUDS: https://<адрес_openuds>.
- Ввести имя пользователя и пароль (если настроено несколько аутентификаторов, выбрать нужный способ проверки подлинности).
После входа отобразится панель с доступными виртуальными рабочими столами (или приложениями), назначенными пользователю:
При выборе пула автоматически запускается клиент OpenUDS. Он:
- обрабатывает специальный URL;
- получает параметры подключения к свободной ВМ;
- формирует файл сессии;
- передаёт файл сессии соответствующему клиенту удалённого доступа (RDP, X2Go и т.д.);
- клиент удалённого доступа устанавливает соединение с ВМ.
После успешного подключения виртуальный рабочий стол становится доступен для работы.
Пример подключения с использованием транспорта HTML5 RDP:
При выходе пользователя из виртуальной машины:
- останавливается OpenUDS Actor;
- брокер OpenUDS фиксирует освобождение ВМ.
Дальнейшие действия зависят от типа пула:
- постоянный пул — ВМ остаётся включённой и готовой к следующему подключению;
- временный (динамический) пул — ВМ удаляется, а при следующем запросе создаётся новая из мастер-образа.
Отказоустойчивое решение
См. статью HA-кластер с OpenUDS.
Отладочная информация
OpenUDS Server
Журналы OpenUDS Server находятся в каталоге /var/log/openuds/:
- auth.log — информация об аутентификации пользователей (аутентификатор, имя пользователя, IP-адрес, ОС, результат аутентификации, браузер):
- sql.log — SQL-запросы к базе данных;
- trace.log — данные о доступе пользователей к пулам услуг (название службы, пользователь, используемый транспорт, IP-адрес выделенной ВМ):
- uds.log — основной журнал работы OpenUDS Server;
- use.log — сведения о сессиях пользователей: время входа и выхода, IP-адрес или имя клиента, пользователь, аутентификатор и т.д.;
- workers.log — логи внутренних задач: самоочистка, проверка кеша, фоновые операции и пр.
Включить режим отладки можно, установив в файле /etc/openuds/settings.py параметр:
DEBUG = True
В противном случае:
- будет генерироваться чрезмерный объём логов;
- возможна утечка чувствительной информации;
- может снизиться производительность сервера из-за повышенного потребления памяти.
В дополнение к журналам OpenUDS также важно анализировать журналы веб-сервера NGINX, расположенные в /var/log/nginx/.
OpenUDS Tunnel
По умолчанию OpenUDS Tunnel записывает логи в системный журнал (см. Journald). Просмотреть их можно командой:
# journalctl -u openuds-tunnel
События, связанные с HTML5-подключениями (Guacamole), записываются в файлы: /var/log/tomcat/catalina.<дата>.log
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 можно получить информацию о различных настраиваемых разделах и услугах, например:
- «Поставщики услуг» — раздел «Журналы» содержит информацию о возможных ошибках при взаимодействии с платформами виртуализации;
- «Аутентификаторы» — раздел «Журналы» содержит информацию о попытках входа пользователей:
- «Пулы услуг» — раздел «Журналы» содержит информацию об истории изменений: кто, когда и что изменил в пуле:
Кроме того, в каждом пуле услуг можно просмотреть журналы отдельных виртуальных машин:











































































































































