VDI/OpenUDS

Материал из ALT Linux Wiki
< VDI

Введение

OpenUDS это многоплатформенный брокер подключений для создания и управления виртуальными рабочими местами и приложениями.

Архитектура OpenUDS

Основные компоненты решения VDI на базе OpenUDS:

  1. OpenUDS Server (openuds-server) — брокер подключений пользователей, а также веб-интерфейс администратора для настройки системы.
  2. SQL-сервер — необходим для работы Django-приложения openuds-server. В качестве СУБД могут использоваться MySQL или MariaDB. SQL-сервер может быть установлен как на отдельной машине, так и на том же сервере, что и OpenUDS Server.
  3. Платформа виртуализации — среда для запуска клиентских окружений и приложений. OpenUDS поддерживает множество платформ: PVE, OpenNebula, oVirt, OpenStack. Также возможна работа с физическими серверами без виртуализации (аналог терминального решения).
  4. OpenUDS Client (openuds-client) —  клиентское приложение для подключения к брокеру и последующего доступа к виртуальному рабочему окружению.
  5. OpenUDS Tunnel (openuds-tunnel) — решение для туннелирования трафика от клиента к виртуальному окружению. Предназначен для предоставления доступа из недоверенных сетей (например, из Интернета). Устанавливается на отдельный сервер.
  6. OpenUDS Actor (openuds-actor) — программное обеспечение, устанавливаемое на гостевые виртуальные машины (ВМ). Обеспечивает связь между ВМ и брокером OpenUDS.
Системные требования
Компонент ОЗУ ЦП Диск
OpenUDS Server 2 ГБ 2 vCPU 8 ГБ
SQL Server 1 ГБ 2 vCPU 10 ГБ
OpenUDS Tunnel 2 ГБ 2 vCPU 13 ГБ
Примечание: Если SQL-сервер размещён на том же хосте, что и OpenUDS Server, объём оперативной памяти следует суммировать (минимум 3 ГБ).


Установка

Установка 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
Примечание: Имя/пароль по умолчанию: root/udsmam0

Чтобы получить доступ к администрированию OpenUDS следует в меню пользователя выбрать пункт «Панель управления» («Dashboard»):

OpenUDS. Меню пользователя


Дополнительная информация о настройках django приложений:

https://docs.djangoproject.com/en/5.2/howto/deployment/wsgi/
https://docs.djangoproject.com/en/5.2/ref/databases/

OpenUDS Tunnel

Внимание! Инструкция по установке и настройке OpenUDS Tunnel актуальна для openuds-tunnel, начиная  с версии 3.5.0-alt3 .


Установка OpenUDS Tunnel

Примечание: Установка OpenUDS Tunnel должна выполняться на отдельной от OpenUDS Server системе.


# apt-get install openuds-tunnel
Примечание: При установке openuds-tunnel в /etc/openuds-tunnel/ssl генерируются самоподписанные сертификаты. Их можно заменить на корпоративные или выданные доверенным УЦ.


Настройка OpenUDS Tunnel

На туннельном сервере:

  1. Указать адрес 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 —  токен, сгенерированный при установке туннельного сервера.
  2. Запустить и добавить в автозагрузку сервис OpenUDS Tunnel:
    # systemctl enable --now openuds-tunnel.service
    

На сервере OpenUDS:

  1. Зарегистрировать туннельный сервер, выполнив команду:
    # 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
  2. При создании туннеля указать IP-адрес и порт туннельного-сервера: 192.168.0.88:7777

{{Note| Зарегистрированные туннельные серверы отображаются в веб-интерфейсе OpenUDS в разделе «Инструменты» → «Токены» → «Серверы».

Примечание: В openuds-server версии 3.6.0 команда регистрации токена openuds_tunnel_register.py.


Примечание: В openuds-server, до версии 3.5.0-alt6 для регистрации токена нужно добавить в БД информацию о OpenUDS Tunnel: INSERT INTO `uds_tunneltoken` VALUES (ID,'автор добавления','IP-адрес туннеля','IP-адрес туннеля','название туннеля','Токен из файла udstunnel.conf','дата добавления'); . Например:
# mysql -u root -p
MariaDB> USE dbuds;
MariaDB> INSERT INTO `uds_tunneltoken` VALUES (ID,'admin','192.168.0.88','192.168.0.88','Tunnel','5ba9d52bb381196c2a22e495ff1c9ba4bdc03440b726aa8b','2022-11-15');
MariaDB> exit;


Настройка HTML5 (Guacamole)

На туннельном сервере:

  1. В файле /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
  2. Настроить 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" />
      
  3. Запустить службы Guacamole:
    # systemctl enable --now guacd tomcat
    

На сервере OpenUDS при создании туннеля указать IP-адрес и порт туннельного-сервера:

Обновление

После обновления openuds-server до новой версии необходимо выполнить следующие действия:

  1. Перенести изменения из нового конфигурационного файла /etc/openuds/settings.py.rpmnew (если они есть) в используемый /etc/openuds/settings.py.
    Проверить, что изменилось можно так:
    # diff -u --color /etc/openuds/settings.py /etc/openuds/settings.py.rpmnew
    
  2. Выполнить миграцию базы данных:
    # su -s /bin/bash - openuds -c "cd /usr/share/openuds; python3 manage.py migrate"
    
  3. Перезагрузить систему, так как при обновлении не создаётся файл /run/openuds/socket.
Важно! После обновления openuds-server до версии 4.0 необходимо выполнить следующие действия:
  1. Перенести изменения из нового конфигурационного файла /etc/openuds/settings.py.rpmnew (если они есть) в используемый /etc/openuds/settings.py.
    Проверить, что изменилось, можно так:
    # diff -u --color /etc/openuds/settings.py /etc/openuds/settings.py.rpmnew
    
  2. Установить пакет memcached:
    # apt-get install memcached
    
  3. Добавить службу memcached в автозагрузку и запустить её:
    # systemctl enable --now memcached
    
  4. Выполнить миграцию базы данных:
    # su -s /bin/bash - openuds -c "cd /usr/share/openuds; python3 manage.py migrate"
    
  5. Создать таблицу кеша uds_response_cache:
    # su -s /bin/bash - openuds -c "cd /usr/share/openuds; python3 manage.py createcachetable uds_response_cache"
    
  6. Перезагрузить систему, так как при обновлении не создаётся файл /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).

OpenUDS. Подключение системы виртуализации

OpenNebula

Минимальные параметры для настройки «Поставщик платформы OpenNebula»:

  • вкладка «Основной»:
    • «Имя» — название поставщика;
    • «Хост» — IP-адрес или доменное имя сервера OpenNebula;
    • «Порт» — порт подключения (по умолчанию — 2633);
    • «Имя пользователя» — имя пользователя OpenNebula (с правами администратора);
    • «Пароль» — пароль указанного пользователя;
    OpenUDS. Подключение системы виртуализации OpenNebula
  • вкладка «Расширенный»:
    • «Одновременное создание» — максимальное количество ВМ, создаваемых параллельно;
    • «Одновременное удаление» — максимальное количество ВМ, удаляемых параллельно;
    • «Таймаут» — время ожидания ответа от OpenNebula (в секундах).
    OpenUDS. Подключение системы виртуализации OpenNebula

С помощью кнопки «Проверить» можно убедиться, что соединение с OpenNebula настроено корректно.

После подключения платформы OpenNebula можно создать базовые службы. Для этого следует дважды щелкнуть мышью по строке созданного поставщика услуг или в контекстном меню поставщика выбрать пункт «Подробность»:

OpenUDS. Контекстное меню поставщика услуг OpenNebula

Примечание: Пункт «Обслуживание» позволяет приостановить все операции OpenUDS для данного поставщика. Режим обслуживания рекомендуется включать при:
  • потери связи с поставщиком;
  • плановых работах по обслуживанию инфраструктуры.


В открывшемся окне на вкладке «Поставщики услуг» выбрать «Новый»→«Действующие образы OpenNebula»:

OpenUDS. Создание новой службы

Заполнить параметры конфигурации:

  • вкладка «Основной»:
    • «Имя» — название службы;
    • «Хранилище» — хранилище;
    OpenUDS. Действующие образы OpenNebula (вкладка «Основной»)
  • вкладка «Расширенный»:
    • «Метод подсчета услуг» — определяет, как учитывается количество машин при соблюдении лимита «Максимальное количество предоставляемых сервисов» в пуле:
      • «Стандартный» — учитываются только созданные ВМ. В момент одновременного создания и удаления машин возможно временное превышение лимита. Пример: при лимите 5 машин система может кратковременно содержать 6 ВМ (4 активные + 1 создаваемая + 1 удаляемая);
      • «Консервативный» — учитываются и создаваемые, и удаляемые ВМ. Превышение лимита невозможно: новая ВМ не создаётся, пока удаление предыдущей не завершится;
    OpenUDS. Действующие образы OpenNebula (вкладка «Расширенный»)
  • вкладка «Машина»:
  • «Базовый шаблон» — шаблон ВМ, используемый системой OpenUDS для развёртывания виртуальных рабочих столов (см. VDI/OpenUDS#Подготовка_шаблона_виртуальной_машины);
  • «Имена машин» — базовое название для клонов с этой машины (например, Desk-kwork-);
  • «Длина имени» — количество цифр счетчика, прикрепленного к базовому имени рабочих столов (например, если Длина имени = 3, названия сгенерированных рабочих столов будут Desk-kwork-000, Desk-kwork-001 ... Desk-kwork-999).
    OpenUDS. Действующие образы OpenNebula (вкладка «Машина»)


После настройки 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-токен);
    OpenUDS. Подключение системы виртуализации PVE
  • вкладка «Расширенный»:
    • «Одновременное создание» — максимальное количество ВМ, создаваемых параллельно;
    • «Одновременное удаление» — максимальное количество ВМ, удаляемых параллельно;
    • «Таймаут» — время ожидания ответа от OpenNebula (в секундах);
    • «Диапазон MAC-адресов» — диапазон MAC-адресов, назначаемых создаваемым рабочим столам;;
    • «Начальный VmId» — идентификатор ВМ, с которого OpenUDS начинает генерацию (>=10000).
    OpenUDS. Подключение системы виртуализации Proxmox

С помощью кнопки «Проверить» можно убедиться, что соединение с PVE настроено корректно.

После подключения платформы PVE можно создать базовые службы. Для этого нужно дважды щелкнуть мышью по строке созданного поставщика услуг или в контекстном меню поставщика выбрать пункт «Подробность»:

OpenUDS. Контекстное меню поставщика услуг PVE

Примечание: Пункт «Обслуживание» позволяет приостановить все операции OpenUDS для данного поставщика. Режим обслуживания рекомендуется включать при:
  • потери связи с поставщиком;
  • плановых работах по обслуживанию инфраструктуры.


Стационарные машины Proxmox

Этот тип службы позволяет пользователям напрямую подключаться к существующим ВМ в кластере или на сервере PVE.

Чтобы создать службу «Стационарные машины Proxmox» нужно перейти на вкладку «Поставщики услуг» и нажать кнопку «Новый»→«Стационарные машины Proxmox»:

OpenUDS. Создание новой услуги PVE

Минимальные параметры конфигурации:

  • вкладка «Основной»:
    • «Имя» — название службы;
    • «Токен сервиса» — буквенно-цифровой идентификатор, необходимый для отслеживания входа и выхода пользователя. Если поле заполнено, OpenUDS сможет автоматически освобождать машину после выхода пользователя и предоставлять её другим. Требование: на каждой ВМ должен быть установлен Unmanaged OpenUDS Actor, и в его настройках указан тот же токен. Если поле оставлено пустым, машина навсегда закрепляется за пользователем до ручного освобождения администратором;
    OpenUDS. Стационарные машины Proxmox (вкладка «Основной»)
  • вкладка «Машина»:
    • «Пул ресурсов» — пул PVE, в котором находятся ВМ, доступные для назначения (ВМ должны быть размещены в этом пуле, чтобы отображаться в списке);
    • «Машины» — список существующих ВМ в указанном пуле, которые будут управляться OpenUDS. Выбранные ВМ станут доступны пользователям. Если на ВМ установлен Unmanaged Actor с настроенным токеном, OpenUDS сможет динамически назначать и освобождать её. Если Actor не установлен, назначение остаётся постоянным до ручного удаления администратором;
    OpenUDS. Стационарные машины Proxmox (вкладка «Машина»)
  • вкладка «Расширенный»:
    • «Продолжайте» — при активации система игнорирует временные ошибки доступа к ВМ, сохраняя её в списке доступных. Полезно, если машины могут быть кратковременно недоступны (например, при перезагрузке);
    • «Использовать моментальные снимки» — если включено, OpenUDS создаёт снимок (snapshot) ВМ перед подключением пользователя, и завершения сессии (автоматически или вручную) восстанавливает этот снимок, возвращая ВМ в исходное состояние. Если у ВМ уже существует снимок, OpenUDS будет использовать именно его, не создавая новый.
    OpenUDS. Стационарные машины Proxmox (вкладка «Расширенный»)
Связанный клон Proxmox

Этот тип службы создаёт виртуальные рабочие столы в инфраструктуре PVE, которые зависят от активных публикаций (то есть удаляются при отмене публикации).

Чтобы создать службу «Связанный клон Proxmox» нужно перейти на вкладку «Поставщики услуг» и нажать кнопку «Новый»→«Связанный клон Proxmox»:

OpenUDS. Создание новой услуги

Минимальные параметры конфигурации:

  • вкладка «Основной»:
    • «Имя» — название службы;
    • «Пул» — пул ресурсов PVE, в котором будут размещаться ВМ;
    • «Высокая доступность» — включать создаваемые ВМ в группу HA PVE;
    OpenUDS. Связанный клон Proxmox (вкладка «Основной»)
  • вкладка «Машина»:
    • «Базовое имя» — префикс для имён клонов (например, 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. Связанный клон Proxmox (кладка «Машина»)
    Примечание: Для корректной работы опции «Доступность графического процессора» требуется, чтобы в конфигурации хостов PVE были правильно настроены устройства vGPU (например, через mdev или PCI passthrough).
  • вкладка «Расширенный»:
    • «Удалить найденные дубликаты» — если включено (по умолчанию), OpenUDS автоматически удаляет ВМ с именем, сгенерированным системой, но не зарегистрированную в брокере (например, оставшуюся после сбоя). Рекомендуется оставить включённым, чтобы избежать «потерянных» машин в инвентаре;
    • «Продолжайте» — при активации система игнорирует ошибки доступа к службе и не удаляет ВМ. Особенно полезно для постоянных (персистентных) машин, так как предотвращает их удаление в большинстве ситуаций (за исключением ручного удаления администратором);
    • «Сначала попробовать SOFT Shutdown» — если включено, OpenUDS перед удалением ВМ попытается выполнить корректное выключение (через ACPI), а не принудительную остановку;
    • «Вернуть в кеш» — определяет, будут ли неперсистентные ВМ возвращаться в кеш после освобождения:
      • «Нет. Никогда не помещать его обратно в кеш» — ВМ удаляется после завершения сессии;
      • «Да, попробовать вернуть его в кеш» — ВМ возвращается в кеш для повторного использования другими пользователями (если это возможно);
    • «Метод подсчета услуг» — определяет, как учитывается количество машин при соблюдении лимита «Максимальное количество предоставляемых сервисов» в пуле:
      • «Стандартный» — учитываются только созданные ВМ. В момент одновременного создания и удаления машин возможно временное превышение лимита. Пример: при лимите 5 машин система может кратковременно содержать 6 ВМ (4 активные + 1 создаваемая + 1 удаляемая);
      • «Консервативный» — учитываются и создаваемые, и удаляемые ВМ. Превышение лимита невозможно: новая ВМ не создаётся, пока удаление предыдущей не завершится.
    OpenUDS. Связанный клон Proxmox (кладка «Расширенный»)

После того, как среда OpenUDS будет настроена и будет создан первый «пул служб», в среде PVE можно будет наблюдать, как разворачиваются рабочие столы. Сначала будет создан шаблон («UDS-Publication-pool_name-publishing-number») — клон ВМ, выбранной при регистрации службы. После завершения процесса создания клона будут созданы рабочие столы («Machine_Name-Name_Length»):

После настройки OpenUDS и создания первого пула услуг в интерфейсе PVE можно будет наблюдать следующий процесс:

  1. Создаётся публикационный шаблон с именем вида: UDS-Pub-<базовое_имя>-<дата><номер_публикации> — это клон базовой ВМ.
  2. На основе клона создаются рабочие столы с именами: UDS-<базовое_имя><счётчик> (например, UDS-Desk-SL001).

PVE. Созданные шаблоны и рабочие столы

Удалённый доступ к отдельному серверу

OpenUDS позволяет создать подключение к отдельным устройствам (физическим или виртуальным). Доступ к отдельной машине осуществляется путем назначения IP-адресов пользователям.

Для регистрации поставщика данного типа следует в разделе «Поставщики услуг» нажать кнопку «Новый» и выбрать пункт «Поставщик машин статических IP».

Для настройки «Поставщика машин статических IP» достаточно задать название поставщика:

OpenUDS. Поставщик машин статических IP

После создания поставщика можно создавать базовые службы. Для этого следует дважды щелкнуть мышью по строке созданного поставщика или в контекстном меню поставщика выбрать пункт «Подробность»:

OpenUDS. Контекстное меню поставщика машин статических IP

OpenUDS поддерживает два типа служб для поставщика машин статических IP:

«Статический множественный IP-адрес»
Используется для подключения одного пользователя к одному устройству (IP-адресу) из списка. Поддерживается неограниченное количество IP-адресов. По умолчанию устройства назначаются поочерёдно (первый пользователь получает первый IP из списка). Можно также настроить привязку конкретного пользователя к конкретному IP-адресу.
Примечание: Чтобы привязать пользователя к определённому устройству, необходимо в разделе «Пулы услуг» (см. VDI/OpenUDS#Настройка_«Пула_услуг»_(«Service_Pools»)) для созданной услуги на вкладке «Назначенные сервисы» нажать кнопку «Назначить услугу» и указать соответствие: OpenUDS. Привязка пользователю устройству


«Статический одиночный IP-адрес»
Используется для подключения нескольких пользователей к одному и тому же устройству. Каждый пользователь запускает отдельный сеанс на этом компьютере.
Статический множественный IP-адрес

Этот тип службы предоставляет пользователям доступ к разным устройствам по принципу «один пользователь — одно устройство».

Для создания новой службы «Поставщик машин статических IP» нужно перейти на вкладку «Поставщики услуг» и нажать кнопку «Новый»→«Статический множественный IP-адрес» или «Новый»→«Статический одиночный IP-адрес»:

OpenUDS. Создание новой услуги поставщик машин статических IP

Параметры конфигурации для услуги:

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

После настройки всей среды OpenUDS (поставщики, аутентификаторы, транспорты, пулы) пользователи получат доступ к устройствам из списка.

Примечание: По умолчанию назначение происходит в порядке очереди: первому обратившемуся пользователю — первый IP-адрес. Если ключ услуги не задан, привязка сохраняется даже после выхода пользователя — до ручного освобождения администратором.

Просмотр и управление назначениями доступны в разделе «Пулы услуг» (см. VDI/OpenUDS#Настройка_«Пула_услуг»)) вкладка «Назначенные сервисы»:

OpenUDS. Подключение к «Static Multiple IP»


Статический одиночный IP-адрес

Этот тип службы позволяет нескольким пользователям подключаться к одному и тому же устройству, каждый — в своём сеансе.

Для создания новой службы «Поставщик машин статических IP» нужно перейти на вкладку «Поставщики услуг» и нажать кнопку «Новый»→«Статический одиночный IP-адрес»:

OpenUDS. Создание новой службы поставщик машин статических IP

Параметры конфигурации:

  • «Имя» — название службы;
  • «IP-адрес хоста/полное доменное имя» — адрес устройства, к которому будет осуществляться доступ (устройство должно быть включено и настроено см. VDI/OpenUDS#Подготовка_шаблона_виртуальной_машины). Устройство должно поддерживать многопользовательские сеансы.

OpenUDS. Создание службы статический одиночный IP-адрес

После настройки всей инфраструктуры OpenUDS пользователи смогут подключаться к указанному устройству, запуская новый сеанс при каждом обращении.

Серверы

В разделе «Серверы» можно определить группы серверов, которые будут использоваться поставщиком услуг машин со статическим IP-адресом. Эти группы регистрируются как независимые объекты и могут совместно использоваться разными поставщиками, что позволяет:

  • создавать конфигурации высокой доступности;
  • использовать разные наборы IP-адресов или имён для прямого назначения;
  • гибко управлять доступом к физическим или виртуальным устройствам.

Чтобы создать группу серверов для последующего использования в службе «Статический множественный IP-адрес», необходимо перейти в раздел «Серверы» и нажать кнопку «Новый»→ «Неуправляемый»→ «Неуправляемый IP-сервер» («Unmanaged IP Server»):

OpenUDS. Создать группу серверов

В открывшемся окне следует указать название группы и нажать кнопку «Сохранить»:

OpenUDS. Создание группы серверов

После создания группы необходимо добавить в неё конкретные устройства:

  1. Дважды щёлкнуть по элементу или выбрать в контекстном меню пункт «Подробность».
  2. На вкладке «Серверы» нажать кнопку «Новый».
  3. Указать имя элемента, IP-адрес или имя машины:
    OpenUDS. Добавление машины в группу серверов
  4. Нажать «Сохранить».

После завершения настройки группа серверов может быть использована поставщиком «Поставщик машин со статическим IP-адресом» (см. раздел VDI/OpenUDS#Статический множественный IP-адрес).

Настройка аутентификации пользователей

Аутентификаторы

Аутентификатор — это ключевой компонент платформы OpenUDS. Он отвечает за проверку подлинности пользователей и предоставляет пользователям и группам права на подключение к виртуальным рабочим столам и приложениям.

Аутентификатор не является обязательным для создания «пула услуг», однако если не настроен хотя бы один аутентификатор, не будет пользователей, способных подключаться к службам OpenUDS.

Важно! Не рекомендуется использовать учётную запись администратора для повседневной работы. Вместо этого нужно создать отдельного пользователя с необходимыми правами.


Рекомендуется настроить несколько аутентификаторов или как минимум один резервный.

При использовании IP-аутентификатора вход в систему выполняется автоматически. Если такой аутентификатор имеет наивысший приоритет (наименьшее числовое значение) и возникает ошибка в его работе, это может привести к бесконечному циклу входа, делающему доступ к OpenUDS невозможным. Чтобы обойти эту проблему, можно временно отключить IP-аутентификаторы, добавив к URL входа суффикс /disabled:

https://<адрес_сервера>/uds/page/login/disabled
Примечание: Если в системе зарегистрировано несколько активных аутентификаторов, на странице входа появляется поле «Аутентификатор» с раскрывающимся списком. В этом списке пользователь может выбрать нужный способ аутентификации::

OpenUDS. Выбор типа аутентификации пользователей

При создании любого аутентификатора заполняется поле «Метка». Даже при наличии нескольких аутентификаторов пользователь может войти напрямую через конкретный, указав метку в URL: https://<адрес_сервера>/uds/page/login/<метка> (например, https://192.168.0.53/uds/page/login/AD).


Для настройки аутентификации необходимо перейти в раздел «Аутентификаторы» и выбрать тип аутентификации:

  • внешние источники (Active Directory, OpenLDAP и др.);
  • внутренние (внутренняя база данных, IP-аутентификация).

OpenUDS. Выбор типа аутентификации

Внутренняя база данных

При использовании аутентификатора «Внутренняя БД» данные пользователей и групп хранятся в базе данных OpenUDS.

Для создания аутентификации «Внутренняя БД» необходимо перейти в раздел «Аутентификаторы» и нажать кнопку «Новый» → «Внутренняя БД».

Минимальные параметры конфигурации (вкладка «Основной»): имя аутентификатора, приоритет (чем меньше значение, тем выше приоритет) и метка.:

OpenUDS. Внутренняя база данных

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

  1. Выбрать созданный аутентификатор.
  2. Во вкладке «Группы» создать группы пользователей.
  3. Во вкладке «Пользователи» создать пользователей.

OpenUDS. «Внутренняя БД» — пользователи

Аутентификатор Regex LDAP

Этот аутентификатор позволяет интегрировать OpenUDS с любым LDAP-совместимым каталогом (FreeIPA, Active Directory и др.).

Внимание! На LDAP-сервере должна быть настроена учётная запись с правами только на чтение. Эта учётная запись используется OpenUDS для подключения к каталогу.


FreeIPA

Настройка интеграции с FreeIPA (сервер ipa.example.test):

1. В разделе «Аутентификаторы» нажать кнопку «Новый» → «Аутентификатор Regex LDAP». 2. Заполнить параметры (в примере указан домен freeipa.test):

Вкладка «Основной»: имя аутентификатора, приоритет, метка, IP-адрес и порт FreeIPA-сервера (обычно 389 без SSL, 636 с SSL):

OpenUDS. Настройка аутентификации в FreeIPA

Вкладка «Учётные данные»: имя пользователя (в формате DN: uid=user_freeipa,cn=users,cn=accounts,dc=example,dc=test) и пароль:

OpenUDS. Настройка аутентификации в FreeIPA

Вкладка «LDAP информация»: общая база пользователей, класс пользователей LDAP, атрибуты: идентификатор, имя пользователя, имя группы:

OpenUDS. Настройка аутентификации в FreeIPA

Примечание: С помощью кнопки «Проверить» можно убедиться в корректности подключения к FreeIPA.


3. Добавить группу LDAP, в которую входят пользователи. Для этого следует выбрать созданный аутентификатор, затем в открывшемся окне на вкладке «Группы» нажать «Новый» → «Группа».

4. Заполнить DN существующей группы (для FreeIPA по умолчанию это группа cn=ipausers,cn=groups,cn=accounts,dc=freeipa,dc=test), можно также указать разрешённые пулы:

Информация о группе FreeIPA

Примечание: Если на сервере FreeIPA настроена двухфакторная аутентификация (пароль + OTP), в форме входа необходимо указывать пароль и код токена (в формате: <пароль><код токена>).


Active Directory
Примечание: Для Active Directory у коммерческой версии OpenUDS есть отдельный коннектор.


Настройка аутентификации в Active Directory (например, на samba-dc) аналогична FreeIPA кроме некоторых различий (на примере домена test.alt):

1. В разделе «Аутентификаторы» нажать кнопку «Новый» → «Аутентификатор Regex LDAP».

2. Заполнить параметры:

Вкладка «Основной»: имя аутентификатора, приоритет, метка, IP-адрес и порт сервера AD (обычно 389 без SSL, 636 с SSL):

OpenUDS. Настройка аутентификации в AD

Вкладка «Учётные данные»: имя пользователя (можно указать как имя@домен или в формате DN) и пароль:

OpenUDS. Интеграция с AD — учетные данные пользователя

Вкладка «LDAP информация»: общая база пользователей, класс пользователей LDAP, атрибуты: идентификатор, имя пользователя, имя группы:

OpenUDS. Интеграция с AD — LDAP информация

Примечание: Если в поле «Идентификатор атрибута пользователя» указано userPrincipalName, пользователь при входе должен указать логин в формате имя_пользователя@домен (user@test.alt). Если указано 'sAMAccountName, в качестве логина используется имя пользователя без указания домена.


Кнопка «Проверить» позволяет протестировать соединение с Active Directory.

Примечание: Ошибка Ldap user class seems to be incorrect (no user found by that class) не влияет на возможность аутентифицироваться доменному пользователю.


Важно! Если доступ к серверу LDAP осуществляется по протоколу ldap без шифрования, на контроллере домена SambaDC необходимо отключить ldaps в /etc/samba/smb.conf в секции [global]:
ldap server require strong auth = no

и перезапустить samba:

# systemctl restart samba


4. Добавить группу LDAP, в которую входят пользователи. Для этого выбрать созданный аутентификатор, затем в открывшемся окне на вкладке«Группы» выбрать «Новый» → «Группа». Заполнить DN существующей группы (например, CN=UDS,CN=Users,DC=test,DC=alt), можно также указать разрешённые пулы:

OpenUDS. Интеграция с Active Directory — добавление группы LDAP

Примечание: Атрибут memberOf является многозначным атрибутом, который содержит группы, из которых пользователь является прямым членом, за исключением основной группы, которая представлена primaryGroupId. Поэтому в поле «Группы» не нужно указывать основную группу, например,
CN=Domain Users,CN=Users,DC=test,DC=alt

или

CN=Пользователи домена,CN=Users,DC=test,DC=alt


Примечание: На вкладке «Пользователи» аутентификатора пользователи будут добавляться автоматически после первого входа в систему OpenUDS (пользователи должны входить в группы, указанные в аутентификаторе на вкладке «Группа»):

OpenUDS. Интеграция с Active Directory — пользователи LDAP

Можно зарегистрировать пользователя вручную, чтобы назначить ему специальные права перед первым подключением. Для этого необходимо нажать кнопку «Новый» и указать пользователя, его статус (включен или отключен) и уровень доступа (поле «Роль»). Не рекомендуется заполнять поле «Группы», так как система должна автоматически добавить пользователя в группу участников:

OpenUDS. Интеграция с AD — регистрация пользователя вручную


IP аутентификатор

Этот тип аутентификации предоставляет доступ к службам на основе IP-адреса клиента.

Для создания IP аутентификатора необходимо перейти в раздел «Аутентификаторы» и нажать кнопку «Новый» → «IP аутентификатор».

Минимальные параметры конфигурации (вкладка «Основной»): имя аутентификатора, приоритет и метка:

OpenUDS. IP Autentificator

Настройки на вкладке «Расширенный»:

  • «Видно только из этих сетей» — позволяет отфильтровать сети, из которых будет виден аутентификатор;
  • «Разрешить прокси» — позволяет корректно определять IP-адреса клиентов подключения, если есть промежуточный компонент для доступа к серверу OpenUDS, например, балансировщик нагрузки (OpenUDS автоматически определяет IP-адрес клиента подключения. В средах, где настроены балансировщики нагрузки, это обнаружение не удается, поскольку IP-адрес соответствует обнаруженным балансировщикам. Включение этой опции обеспечивает правильное определение IP-адреса клиента).

OpenUDS. 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).

OpenUDS. IP Autentificator - создание группы пользователей

Радиус аутентификатор

«Радиус аутентификатор» — это внешний аутентификатор, позволяющий предоставлять доступ к виртуальным рабочим столам и приложениям пользователям и группам, зарегистрированным на RADIUS-сервере.

Для создания аутентификации «Радиус аутентификатор» необходимо перейти в раздел «Аутентификаторы» и нажать кнопку: «Новый» → «Радиус аутентификатор».

Настройки:

  • вкладка «Основной»:
    • «Имя» — название аутентификатора;
    • «Приоритет» — определяет порядок применения при наличии нескольких аутентификаторов;
    • «Метка» — используется для выбора аутентификатора через URL;
    • «Хост» — IP-адрес или доменное имя RADIUS-сервера;
    • «Порт» — порт сервера (по умолчанию 1812);
    • «Секрет» — пароль (shared secret), настроенный на RADIUS-сервере:
    OpenUDS. Радиус аутентификатор — вкладка «Основной»
  • вкладка «Расширенный»:
    • «Идентификатор NAS» — идентифицирует OpenUDS на стороне RADIUS-сервера;
    • «Префикс приложения для атрибутов Class» — позволяет фильтровать группы, передаваемые в атрибуте Class;
    • «Глобальная группа» — принудительно включает всех пользователей в указанную группу. Это полезно, если RADIUS-сервер не поддерживает передачу групп, но требуется назначить пользователям общую группу для управления доступом.
    OpenUDS. Радиус аутентификатор — вкладка «Расширенный»

С помощью кнопки «Проверить» можно убедиться в корректности подключения к RADIUS-серверу.

После создания аутентификатора необходимо зарегистрировать группу в OpenUDS:

  1. Открыть созданный аутентификатор.
  2. Перейти во вкладку «Группы».
  3. Нажать кнопку: «Новый» → «Группа».
  4. Создать группу с тем же названием, что указано в поле «Глобальная группа»:

OpenUDS. «Радиус аутентификатор» — группа пользователей

Примечание: Если на RADIUS-сервере настроена двухфакторная аутентификация, пользователь должен вводить пароль и код токена в одном поле в формате: <пароль><код токена> (без пробелов и разделителей).


Многофакторная аутентификация (МФА)

Многофакторная аутентификация добавляет дополнительный уровень защиты при входе в систему.

OpenUDS. Выбор типа многофакторной аутентификации пользователей

OpenUDS поддерживает следующие методы МФА:

  • Многофакторная электронная почта;
  • Радиус OTP Challenge;
  • SMS через HTTP;
  • МФА на основе TOTP.

Также возможна интеграция с другими системами МФА, встроенными в сам аутентификатор.

Многофакторная аутентификация по электронной почте

При использовании этого метода, после ввода логина и пароля пользователю отправляется письмо с одноразовым кодом. Для завершения входа необходимо ввести этот код:

OpenUDS. Код полученный по электронной почте

Настройка:

  • вкладка «Основной»:
    OpenUDS. Многофакторная электронная почта — вкладка «Основной»
    • «Имя» — название метода МФА;
    • «Кэширование устройства» — время (в часах), в течение которого МФА не запрашивается повторно с того же устройства;
    • «Срок действия кода МФА» — время (в минутах), в течение которого код остаётся действительным;
  • вкладка «SMTP-сервер»:
    OpenUDS. Многофакторная электронная почта — вкладка «SMTP-сервер»
    • «SMTP-хост» — адрес SMTP-сервера (при необходимости указывается порт: host:port);
    • «Безопасность» — протокол шифрования (например, STARTTLS, SSL);
    • «Имя пользователя» — пользователь с доступом к SMTP-серверу;
    • «Пароль» — пароль указанного пользователя;
  • вкладка «Конфигурация»:
    OpenUDS. Многофакторная электронная почта — вкладка «Конфигурация»
    • «Тема» — заголовок письма;
    • «Отправитель» — адрес электронной почты, который будет использоваться в качестве отправителя;
    • «Включить HTML» — если включено, используется шаблон из поля «Почтовый HTML», иначе — шаблон из поля «Текст сообщения»;
    • «Текст сообщения» — текст письма в формате plain text. Если пусто, используется сообщение по умолчанию. Доступны переменные:
      • {code} — одноразовый код;
      • {ip} — IP-адрес пользователя;
      • {username} — имя пользователя (с доменом);
      • {justUsername} — имя пользователя без домена;
    • «Почтовый HTML» — HTML-шаблон письма. Если пусто, используется HTML-шаблон по умолчанию. Поддерживает те же переменные, что и поле «Текст сообщения»;
    • «Политика для пользователей без поддержки МФА» —  определяет действия при отсутствии настройки второго фактора у пользователя:
      • «Разрешить вход пользователя»;
      • «Запретить вход пользователя»;
      • «Разрешить пользователю вход в систему, если его IP-адрес есть в списке сетей»;
      • «Запретить пользователю вход в систему, если его IP-адрес есть в списке сетей».
Примечание: Для пользователей внутренней базы данных адрес электронной почты для МФА необходимо указать в поле МФА профиля пользователя:

OpenUDS. Настройка МФА для локального пользователя

Для доменных пользователей (Аутентификатор Regex LDAP) адрес электронной почты берётся из атрибута, указанного в настройках аутентификатора в поле (поле Атрибут многофакторной аутентификации):

OpenUDS. Настройка МФА для доменного пользователя


SMS через HTTP

При использовании этого метода, после ввода логина и пароля пользователю отправляется SMS с кодом, который необходимо ввести для завершения аутентификации.

Настройка:

  • вкладка «Основной»:
    OpenUDS. SMS через HTTP — вкладка «Основной»
    • «Имя» — название метода МФА;
    • «Кэширование устройства» — время (в часах), в течение которого МФА не запрашивается повторно с того же устройства;
    • «Срок действия кода МФА» — время (в минутах), в течение которого код остаётся действительным;
  • вкладка «HTTP-сервер»:
    OpenUDS. SMS через HTTP — вкладка «HTTP-сервер»
    • «Шаблон URL для отправки SMS» — URL с поддержкой переменных:
      • {code} — код;
      • {phone} или {+phone} — номер телефона;
      • {username} — имя пользователя (с доменом);
      • {justUsername} — имя пользователя без домена;
      • {realName} — настоящее имя пользователя;
    • «Способ отправки СМС» — метод HTTP-запроса (GET, POST, PUT);
    • «Параметры POST/PUT для отправки СМС» — тело запроса (для POST/PUT);
    • «Кодировка СМС» — кодировка, которая будет использоваться в СМС, например, UTF-8;
  • вкладка «HTTP-аутентификация»:
    OpenUDS. SMS через HTTP — вкладка «HTTP-аутентификация»
    • «Метод аутентификации по СМС» — None, HTTP Basic Auth, HTTP Digest Auth;
    • «Пользователь или токен СМС-аутентификации» — учётные данные для доступа к SMS-шлюзу;
    • «Пароль для СМС-аутентификации» — пароль указанного пользователя;
  • вкладка «HTTP-ответ»:
    OpenUDS. SMS через HTTP — вкладка «HTTP-ответ»
    • «Регулярное выражение СМС-ответа ОК» — регулярное выражение для успешного ответа. Если не указано, успех определяется по коду состояния 200;
  • вкладка «Конфигурация»:
    OpenUDS. SMS через HTTP — вкладка «Конфигурация»
    • «Действие при ошибке ответа СМС» — политика при сбое;
    • «Политика для пользователей без поддержки МФА» — действия при отсутствии настройки МФА:
      • «Разрешить вход пользователя»;
      • «Запретить вход пользователя»;
      • «Разрешить пользователю вход в систему, если его IP-адрес есть в списке сетей»;
      • «Запретить пользователю вход в систему, если его IP-адрес есть в списке сетей».
МФА на основе TOTP

После ввода логина и пароля пользователь должен ввести одноразовый код, генерируемый в приложении (Google Authenticator, FreeOTP и др.).

При входе в систему пользователь без настроенного TOTP получает QR-код для самостоятельной регистрации:

OpenUDS. QR-код

Пользователь с настроенным TOTP вводит текущий код:

OpenUDS. Запрос одноразового (TOTP) кода

Настройка:

  • вкладка «Основной»:
    OpenUDS. МФА на основе TOTP — вкладка «Основной»
    • «Имя» — название метода МФА;
    • «Эмитент» — название организации (нельзя изменить после создания);
    • «Кэширование устройства» — время (в часах), в течение которого МФА не запрашивается повторно с того же устройства;
    • «Срок действия кода МФА» — время (в минутах), в течение которого код остаётся действительным;
  • вкладка «Конфигурация»:
    OpenUDS. МФА на основе TOTP — вкладка «Конфигурация»
    • «Действительное окно» — количество допустимых кодов до и после текущего (для компенсации рассинхронизации);
    • «TOTP-сети» — список сетей, из которых не требуется ввод одноразового пароля.

Настройка менеджера ОС

OpenUDS Actor, установленный на виртуальном рабочем столе, обеспечивает взаимодействие между ОС и сервером OpenUDS в соответствии с конфигурацией выбранного менеджера ОС.

Примечание: Менеджер ОС требуется для каждой службы, развёрнутой в OpenUDS, за исключением случаев использования поставщика машин статических IP.


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 ОС менеджер (вкладка «Основной»)
  • вкладка «Расширенный»:
    • «Действие при выходе из системы» — определяет поведение ВМ после завершения сеанса:
      • «Держать сервис привязанным» — для постоянных пулов: ВМ перезапускается, и при следующем входе пользователь получает тот же рабочий стол;
      • «Удалить сервис» – для непостоянных пулов: ВМ удаляется и создаётся заново из шаблона;
      • «Держать сервис привязанным даже в новой публикации» — сохраняет привязку к пользователю даже при обновлении публикации;
    • «Выход по календарю» — если включено, OpenUDS попытается завершить сеанс пользователя при окончании действия календарного правила. Если отключено, пользователю будет разрешено продолжить работу за пределами расписания.
    OpenUDS. Настройка Linux ОС менеджер (вкладка «Расширенный»)

Менеджер ОС Linux Active Directory

Примечание: Для присоединения компьютера к домену на нём должен быть настроен DNS-сервер, содержащий записи контроллера домена (Active Directory или FreeIPA).


Минимальные настройки для «Менеджер ОС 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 секунд или отрицательные отключают эту функцию;
    OpenUDS. Менеджер ОС Linux Active Directory (вкладка «Основной»)
  • вкладка «Расширенный»:
    • «Клиентское программное обеспечение» — позволяет указать, если это необходимо, способ подключения (SSSD или Winbind);
    • «Программное обеспечение для членства» — утилита для присоединения к домену: Samba или adcli;
    • «Убрать машину» — если включено, после удаления ВМ из пула её запись также удаляется из домена (пользователь, указанный в поле «Аккаунт», должен иметь права на удаление объектов в заданной OU);
    • «Серверное программное обеспечение» — тип домена: Active Directory, FreeIPA;
    • «Использовать SSL» — включает защищённое соединение с контроллером домена;
    • «Автоматическое сопоставление идентификаторов» — включает автоматическое маппинг ID (например, UID/GID);
    • «Действие при выходе из системы» — определяет поведение ВМ после завершения сеанса:
      • «Держать сервис привязанным» — для постоянных пулов: ВМ перезапускается, и при следующем входе пользователь получает тот же рабочий стол;
      • «Удалить сервис» – для непостоянных пулов: ВМ удаляется и создаётся заново из шаблона;
      • «Держать сервис привязанным даже в новой публикации» — сохраняет привязку к пользователю даже при обновлении публикации;
    • «Выход по календарю» — если включено, OpenUDS попытается завершить сеанс пользователя при окончании действия календарного правила. Если отключено, пользователю будет разрешено продолжить работу за пределами расписания.
    Менеджер ОС Linux Active Directory (вкладка «Расширенный»)

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 секунд или отрицательные отключают эту функцию;
    OpenUDS. Windows Domain ОС менеджер (вкладка «Основной»)
  • вкладка «Расширенный»:
    • «Группа машин» — указывает, к какой группе машин AD будут добавлены виртуальные рабочие столы, созданные UDS;
    • «Убрать машину» — если включено, после удаления ВМ из пула её запись также удаляется из домена (пользователь, указанный в поле «Аккаунт», должен иметь права на удаление объектов в заданной OU);
    • «Предпочитаемый сервер» — если серверов AD несколько, можно указать, какой из них использовать предпочтительнее;
    • «Автоматическое сопоставление идентификаторов» — включает автоматическое маппинг ID (например, UID/GID);
    • «Действие при выходе из системы» — определяет поведение ВМ после завершения сеанса:
      • «Держать сервис привязанным» — для постоянных пулов: ВМ перезапускается, и при следующем входе пользователь получает тот же рабочий стол;
      • «Удалить сервис» – для непостоянных пулов: ВМ удаляется и создаётся заново из шаблона;
      • «Держать сервис привязанным даже в новой публикации» — сохраняет привязку к пользователю даже при обновлении публикации;
    • «Использовать SSL» — включает защищённое соединение с контроллером домена;
    • «Выход по календарю» — если включено, OpenUDS попытается завершить сеанс пользователя при окончании действия календарного правила. Если отключено, пользователю будет разрешено продолжить работу за пределами расписания.
    OpenUDS. Windows Domain ОС менеджер (вкладка «Расширенный»)

Транспорт

Для подключения к виртуальным рабочим столам необходимо создать транспорт. Транспорт — это клиентское приложение, отвечающее за предоставление доступа к реализованной службе.

Можно создать один транспорт для нескольких «пулов» или назначить отдельный транспорт каждому «пулу».

OpenUDS. Настройка «Транспорт»

При создании транспорта необходимо выбрать его тип:

  • «Прямой» («Direct») — используется, если пользователь имеет прямой доступ к виртуальным рабочим столам (например, через локальную сеть LAN или VPN);
  • «Туннельный» («Tunneled») — используется, если прямое подключение к рабочему столу недоступно.

RDP (прямой)

Этот транспорт позволяет пользователям подключаться к виртуальным рабочим столам под управлением Windows или Linux.

На клиентских устройствах и на виртуальных рабочих столах должен быть установлен и включён протокол RDP (для виртуальных рабочих столов Linux необходимо использовать XRDP).

Параметры конфигурации транспорта RDP:

  • вкладка «Основной»:
    • «Имя» — название транспорта;
    • «Приоритет» — определяет порядок отображения транспорта в списке доступных для сервиса. Чем меньше значение, тем выше приоритет. Транспорт с наименьшим значением будет использоваться по умолчанию;
    • «Сервис-пулы» — позволяет назначить транспорт одному или нескольким ранее созданным пулам услуг. Если оставить поле пустым, выбор транспорта можно будет выполнить при настройке пула услуг;
    OpenUDS. Настройка RDP вкладка «Основной»)
  • вкладка «Учётные данные»:
    • «Пропустить данные аккаунта» — если включено, учётные данные для подключения к рабочему столу будут запрашиваться у пользователя при установке соединения. Если отключено, будут использоваться учётные данные, указанные в OpenUDS (см. ниже);
    • «Имя пользователя» — имя пользователя для доступа к рабочему столу (пользователь должен существовать на ВМ). Если поле пусто, будет использован логин пользователя, авторизованного в веб-интерфейсе OpenUDS;
    • «Пароль» — пароль указанного пользователя;
    • «Без домена» — если включено, домен не передаётся вместе с именем пользователя. Эквивалентно пустому полю «Домен»;
    • «Домен» — домен пользователя. Если указан, учётные данные будут передаваться в формате DOMAIN\user;
    Настройка RDP. Вкладка «Учётные данные»
  • на вкладке вкладке «Параметры» можно разрешить или запретить перенаправления дисков, принтеров и других устройств:
    • «Разрешить смарткарты» — разрешить перенаправление смарт-карт;
    • «Разрешить принтеры» — включить перенаправление принтеров;
    • «Политика локальных дисков» — включить перенаправление дисков:
      • «Allow none» — не перенаправлять диски;
      • «Allow PnP drives» — во время активного сеанса перенаправлять только подключенные диски;
      • «Allow any drive» — перенаправлять все диски;
    • «Принудительное подключение дисков» — принудительное перенаправление определённых дисков;
    • «Разрешить серийные порты» — включить перенаправление последовательного порта;
    • «Включить буфер обмена» — разрешить общий буфер обмена;
    • «Включить звук» — перенаправлять звук с рабочего стола на клиент подключения;
    • «Включить веб-камеру» — перенаправлять веб-камеру;
    • «USB-перенаправление» — включить перенаправление USB;
    • «Поддержка Credssp» — использовать «Credential Security Support Provider»;
    • «Порт RDP» — порт RDP (по умолчанию 3389);
    Настройка RDP. Вкладка «Параметры»
  • на вкладке «Экран/Дисплей» настраиваются параметры отображения рабочего стола:
    • «Размер экрана» — размер окна рабочего стола;
    • «Глубина цвета» — глубина цвета;
    • «Обои/темы» — отображать фона рабочего стола;
    • «Несколько мониторов» — использовать несколько мониторов (только для клиентов Windows);
    • «Разрешить композицию рабочего стола» — включить Desktop Composition;
    • «Сглаживание шрифтов» — активирует сглаживание шрифтов;
    • «Окно подключения» — показывать панель подключения (только для клиентов Windows);
    Настройка RDP. Вкладка «Display»
  • вкладка «Linux Client»:
    • «Мультимедийная синхронизация» — включает поддержку мультимедиа в клиенте FreeRDP;
    • «Использовать Alsa» — включает вывод звука через систему ALSA;
    • «Строка принтера» —  имя принтера, используемого клиентом FreeRDP (если включено перенаправление принтеров). Пример: «HP_LaserJet_M1536dnf_MFP» (список доступных принтеров можно получить командой lpstat -a);
    • «Строка Smartcard» — имя токена, используемый клиентом FreeRDP (если включено перенаправление смарт-карт). Пример: «Aktiv Rutoken ECP 00 00»;
    • «Пользовательские параметры» — дополнительные параметры, поддерживаемые клиентом FreeRDP;
    Настройка RDP. Вкладка «Linux Client»
  • вкладка «Расширенный»:
    • «Сетевая фильтрация» — разрешает или запрещает доступ к службе в зависимости от сети, из которой выполняется подключение;
    • «Сети» — сетевые диапазоны, подсети или IP-адреса (настраиваются в разделе Сети). Пустое поле означает «все сети». Используется совместно с параметром «Сетевая фильтрация»;
    • «Разрешенные устройства» — ограничивает доступ только указанными устройствами. Пустое поле означает «все устройства»;
    • «Метка» —  метка транспорта для метапула (используется при назначении нескольких транспортов одному метапулу).
    Настройка RDP. Вкладка «Расширенный»

RDP (туннельный)

Все настройки аналогичны прямому RDP-транспорту, за исключением параметров на вкладке «Туннель».

  • Вкладка «Туннель»:
    • «Туннельный сервер» — туннель, через который будет устанавливаться соединение. Туннель должен быть предварительно создан (см. VDI/OpenUDS#Туннели);
    • «Время ожидания туннеля» — максимальное время ожидания установки туннельного соединения;
    • «Принудительная проверка SSL-сертификата» — включает обязательную проверку SSL-сертификата туннельного сервера.
    RDP (туннельный). Вкладка «Туннель»

X2Go (прямой)

X2Go позволяет пользователям получать доступ к виртуальным рабочим столам под управлением Linux.

На клиентских устройствах должен быть установлен клиент X2Go, а на виртуальных рабочих столах (серверах) — сервер X2Go, который должен быть запущен и настроен.

Параметры конфигурации транспорта X2Go:

  • вкладка «Основной»:
    • «Имя» — название транспорта;
    • «Приоритет» — определяет порядок отображения транспорта в списке доступных для сервиса. Чем меньше значение, тем выше приоритет. Транспорт с наименьшим значением будет использоваться по умолчанию;
    • «Сервис-пулы» — позволяет назначить транспорт одному или нескольким ранее созданным пулам услуг. Если оставить поле пустым, выбор транспорта можно будет выполнить при настройке пула услуг;
    Настройка X2Go. Вкладка «Основной»
  • вкладка «Учётные данные»:
    • «Имя пользователя» — имя пользователя для доступа к рабочему столу (пользователь должен существовать на ВМ). Если поле пусто, будет использован логин пользователя, авторизованного в веб-интерфейсе OpenUDS;
    Настройка X2Go. Вкладка «Учётные данные»
  • вкладка «Параметры»:
    • «Размер экрана» — размер окна рабочего стола;
    • «Экран» — менеджер рабочего стола (например, Xfce, MATE и др.) или режим виртуализации приложений Linux (UDS vAPP);
    • «vAPP» — полный путь к приложению (заполняется, если в поле «Экран» выбрано значение «UDS vAPP» (см. Виртуализация приложений Linux);
    • «Включить звук» — разрешает передачу звука
    • «Перенаправить домашнюю папку» —  монтирует домашнюю папку клиента в сессию на виртуальном рабочем столе (в Linux также перенаправляется каталог /media);
    • «Скорость» — ожидаемая скорость сетевого соединения (влияет на настройки сжатия и качества);
    Настройка X2Go. Вкладка «Параметры»
  • вкладка «Расширенный»:
    • «Звук» — тип звукового сервера;
    • «Клавиатура» — раскладка клавиатуры;
    • «Метод сжатия» — алгоритм сжатия трафика (изменять с осторожностью);
    • «Качество» — качество изображения, применяемое при некоторых методах сжатия;
    • «Сетевая фильтрация» — разрешает или запрещает доступ к службе в зависимости от сети, из которой выполняется подключение;
    • «Сети» — сетевые диапазоны, подсети или IP-адреса (настраиваются в разделе Сети). Пустое поле означает «все сети». Используется совместно с параметром «Сетевая фильтрация»;
    • «Разрешенные устройства» — ограничивает доступ только указанными устройствами. Пустое поле означает «все устройства»;
    • «Метка» —  метка транспорта для метапула (используется при назначении нескольких транспортов одному метапулу).
    Настройка X2Go. Вкладка «Расширенный»

X2Go (туннельный)

Все настройки аналогичны настройке X2Go, за исключением настроек на вкладке «Туннель».

  • Вкладка «Туннель»:
    • «Туннельный сервер» — туннель, через который будет устанавливаться соединение. Туннель должен быть предварительно создан (см. VDI/OpenUDS#Туннели);
    • «Время ожидания туннеля» — максимальное время ожидания установки туннельного соединения;
    • «Принудительная проверка SSL-сертификата» — включает обязательную проверку SSL-сертификата туннельного сервера.
    X2Go (туннельный). Вкладка «Туннель»

SPICE (прямой)

Внимание! Транспортный протокол SPICE поддерживается только в связке с платформами виртуализации oVirt/RHEV, OpenNebula и PVE.


SPICE позволяет пользователям подключаться к виртуальным рабочим столам под управлением Windows или Linux.

На клиентских устройствах должен быть установлен SPICE-клиент (например, virt-viewer.

Внимание! Для корректной работы прямого SPICE-подключения имена узлов платформы виртуализации (гипервизоров) должны корректно разрешаться в IP-адреса как на сервере OpenUDS, так и на клиентских устройствах, с которых выполняется подключение.


Параметры конфигурации транспорта SPICE:

  • вкладка «Основной»:
    • «Имя» — название транспорта;
    • «Приоритет» — определяет порядок отображения транспорта в списке доступных для сервиса. Чем меньше значение, тем выше приоритет. Транспорт с наименьшим значением будет использоваться по умолчанию;
    • «Сертификат» — сертификат, сгенерированный в ovirt-engine/RHV-manager или OpenNebula. Требуется для установки защищённого подключения к виртуальным рабочим столам;
    • «Сервис-пулы» — позволяет назначить транспорт одному или нескольким ранее созданным пулам услуг. Если оставить поле пустым, выбор транспорта можно будет выполнить при настройке пула услуг;
    OpenUDS. SPICE. Вкладка «Основной»
  • вкладка «Расширенный»:
    • «Полноэкранный режим» — включает полноэкранный режим при запуске сессии;
    • «Включить USB» — разрешает перенаправление USB-устройств;
    • «SSL-соединение» — использовать зашифрованное SSL-соединение;
    • «Переопределить прокси» — позволяет указать собственный прокси-сервер для подключения к сервису вместо того, что предоставляет гипервизор (формат http://хост:порт);
    • «Сетевая фильтрация» — разрешает или запрещает доступ к службе в зависимости от сети, из которой выполняется подключение;
    • «Сети» — сетевые диапазоны, подсети или IP-адреса (настраиваются в разделе Сети). Пустое поле означает «все сети». Используется совместно с параметром «Сетевая фильтрация»;
    • «Разрешенные устройства» — ограничивает доступ только указанными устройствами. Пустое поле означает «все устройства»;
    • «Метка» —  метка транспорта для метапула (используется при назначении нескольких транспортов одному метапулу).
    SPICE. Вкладка «Расширенный»

HTML5 RDP (туннельный)

Транспорт HTML5 RDP позволяет пользователям подключаться к виртуальным рабочим столам под управлением Windows или Linux через браузер, поддерживающий HTML5, с использованием протокола RDP.

На виртуальных рабочих столах должен быть установлен и включён протокол RDP (для виртуальных рабочих столов Linux необходимо использовать xRDP).

Параметры конфигурации транспорта HTML5 RDP:

  • вкладка «Основной»:
    • «Имя» — название транспорта;
    • «Приоритет» — определяет порядок отображения транспорта в списке доступных для сервиса. Чем меньше значение, тем выше приоритет. Транспорт с наименьшим значением будет использоваться по умолчанию;
    • «Сервис-пулы» — позволяет назначить транспорт одному или нескольким ранее созданным пулам услуг. Если оставить поле пустым, выбор транспорта можно будет выполнить при настройке пула услуг;
    HTML5 RDP. Вкладка «Основной»
  • вкладка «Туннель»:
    • «Туннельный сервер» — туннель, через который будет устанавливаться соединение. Туннель должен быть предварительно создан (см. VDI/OpenUDS#Туннели):
    HTML5 RDP. Вкладка «Туннель»
  • вкладка «Учётные данные»:
    • «Пропустить данные аккаунта» — если включено, учётные данные для подключения к рабочему столу будут запрашиваться у пользователя при установке соединения. Если отключено, будут использоваться учётные данные, указанные в OpenUDS (см. ниже);
    • «Имя пользователя» — имя пользователя для доступа к рабочему столу (пользователь должен существовать на ВМ). Если поле пусто, будет использован логин пользователя, авторизованного в веб-интерфейсе OpenUDS;
    • «Пароль» — пароль указанного пользователя;
    • «Без домена» — если включено, домен не передаётся вместе с именем пользователя. Эквивалентно пустому полю «Домен»;
    • «Домен» — домен пользователя. Если указан, учётные данные будут передаваться в формате DOMAIN\user;
    OpenUDS. HTML5 RDP — Вкладка «Credentials»
  • вкладка «Параметры»:
    • «Показать обои» — отображать обои рабочего стола;
    • «Разрешить композицию рабочего стола» —  включить функцию «Desktop Composition»;
    • «Сглаживание шрифтов» — активировать сглаживание шрифтов;
    • «Включить аудио» — перенаправлять звук с рабочего стола на клиент;
    • «Включить микрофон» —  разрешить использование микрофона на виртуальном рабочем столе;
    • «Включить печать» —  разрешить печать с виртуального рабочего стола;
    • «Обмен файлами» — определяет политику обмена файлами между виртуальным рабочим столом и клиентом. При включении создаётся временный каталог на сервере OpenUDS Tunnel, который используется для передачи файлов;
    • «Буфер обмена» — настройка общего буфера обмена между клиентом и рабочим столом;
    • «Раскладка» — раскладка клавиатуры, используемая в сессии;
    HTML5 RDP. Вкладка «Параметры»
  • вкладка «Расширенный»:
    • «Срок действия билета» — допустимое время (в секундах), в течение которого клиент HTML5 может обновлять данные из OpenUDS Broker (рекомендуемое значение — 60);
    • «Открывать HTML в новом окне» — указывает, следует ли открывать подключение в новом окне браузера;
    • «Безопасность» — уровень безопасности RDP-соединения;
    • «Порт RDP» — порт RDP-сервера (по умолчанию — 3389);
    • «Сетевая фильтрация» — разрешает или запрещает доступ к службе в зависимости от сети, из которой выполняется подключение;
    • «Сети» — сетевые диапазоны, подсети или IP-адреса (настраиваются в разделе Сети). Пустое поле означает «все сети». Используется совместно с параметром «Сетевая фильтрация»;
    • «Разрешенные устройства» — ограничивает доступ только указанными устройствами. Пустое поле означает «все устройства»;
    • «Метка» —  метка транспорта для метапула (используется при назначении нескольких транспортов одному метапулу).
    HTML5 RDP. Вкладка «Расширенный»

HTML5 SSH (туннельный)

Транспорт HTML5 SSH позволяет пользователям подключаться к виртуальным рабочим столам Linux по протоколу SSH через браузер, поддерживающий HTML5.

На целевых машинах должен быть запущен SSH-сервер.

Этот транспорт особенно полезен для подключения к серверам Linux без графической оболочки (без оконного менеджера или среды рабочего стола).

Параметры конфигурации транспорта HTML5 SSH:

  • вкладка «Основной»:
    • «Имя» — название транспорта;
    • «Приоритет» — определяет порядок отображения транспорта в списке доступных для сервиса. Чем меньше значение, тем выше приоритет. Транспорт с наименьшим значением будет использоваться по умолчанию;
    • «Сервис-пулы» — позволяет назначить транспорт одному или нескольким ранее созданным пулам услуг. Если оставить поле пустым, выбор транспорта можно будет выполнить при настройке пула услуг;
    OpenUDS. HTML5 SSH — вкладка «Основной»
  • вкладка «Туннель»:
    • «Туннельный сервер» — туннель, через который будет устанавливаться соединение. Туннель должен быть предварительно создан (см. VDI/OpenUDS#Туннели):
    HTML5 SSH. Вкладка «Туннель»
  • вкладка «Учётные данные»:
    • «Имя пользователя» — имя пользователя для доступа к рабочему столу (пользователь должен существовать на ВМ). Если поле пусто, будет использован логин пользователя, авторизованного в веб-интерфейсе OpenUDS;
    HTML5 SSH. Вкладка «Учётные данные»
  • вкладка «Параметры»:
    • «Обмен файлами» — политика обмена файлами между удалённым сервером и клиентом;
    • «SSH-команда» — команда, выполняемая на удалённом сервере после подключения. Если поле пусто, запускается интерактивная оболочка:
      OpenUDS. Подключение по HTML5 SSH
    • «Корень общего доступа к файлам» — корневой каталог для файлового обмена. Если не указан, используется корневой каталог (/);
    • «Порт SSH-сервера» — порт SSH-сервера (по умолчанию — 22);
    • «Ключ хоста SSH» — публичный ключ хоста. Если не указан, проверка подлинности хоста выполняться не будет;
    • «Поддержка сервера в рабочем состоянии» — интервал (в секундах) между сообщениями keep-alive, отправляемыми на сервер для поддержания соединения. Если не указан, такие сообщения не отправляются;
    HTML5 SSH. Вкладка «Параметры»
  • вкладка «Расширенный»:
    • «Срок действия билета» — допустимое время (в секундах), в течение которого клиент HTML5 может обновлять данные из OpenUDS Broker (рекомендуемое значение — 60);;
    • «Открывать HTML в новом окне» — указывает, следует ли открывать подключение в новом окне браузера;
    • «Сетевая фильтрация» — разрешает или запрещает доступ к службе в зависимости от сети, из которой выполняется подключение;
    • «Сети» — сетевые диапазоны, подсети или IP-адреса (настраиваются в разделе Сети). Пустое поле означает «все сети». Используется совместно с параметром «Сетевая фильтрация»;
    • «Разрешенные устройства» — ограничивает доступ только указанными устройствами. Пустое поле означает «все устройства»;
    • «Метка» —  метка транспорта для метапула (используется при назначении нескольких транспортов одному метапулу).
    HTML5 SSH. Вкладка «Расширенный»
Примечание: После входа на удалённый сервер, в зависимости от настроек политики обмена файлами, можно загружать файлы на сервер и скачивать их с него.

Для загрузки файлов необходимо:

  1. Открыть окно настроек с помощью сочетания клавиш <Ctrl> + <Shift> + <Alt>).
  2. В поле «Устройства» выбрать нужное устройство.
  3. Нажать кнопку «Загрузка файлов» и выбрать файл.

Ход передачи файла отображается в левом нижнем углу окна:

HTML5 SSH. Передача файлов

Для скачивания файла нужно дважды щёлкнуть мышью на нужном файле в списке файлов.

Также можно просто перетащить файл на сервер и обратно.


Сети

В OpenUDS можно зарегистрировать различные сети для управления доступом клиентов к виртуальным рабочим столам и приложениям. Эти сети в сочетании с транспортом определяют, какой тип подключения будет доступен пользователям.

Чтобы добавить сеть, следует перейти в раздел «Сети» и нажать кнопку «Новый»:

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).

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

OpenUDS. Выбор сети при редактировании транспорта

Если для транспорта не указаны сети, доступ к соответствующим рабочим столам и виртуальным приложениям будет разрешён из любой сети.

Туннели

В разделе «Туннели» можно настроить туннельные серверы, используемые транспортами для организации подключений пользователей к сервисам. Эти серверы применяются как для туннельных протоколов, так и для HTML5-подключений.

Чтобы использовать туннельный сервер, его необходимо настроить и зарегистрировать на сервере OpenUDS (см. VDI/OpenUDS#OpenUDS_Tunnel). Зарегистрированные серверы отображаются в разделе  «Инструменты» → «Токены»→«Серверы»:

OpenUDS. Зарегистрированные туннельные серверы

Чтобы добавить туннель, следует перейти в раздел «Туннели» и нажать кнопку «Новый»:

OpenUDS. Добавление нового туннеля

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

  • «Имя» — название туннеля;
  • «Узел» — IP-адрес или имя туннельного сервера (если туннельных серверов несколько и они находятся за балансировщиком нагрузки, необходимо указать адрес балансировщика);
  • «Порт» — порт, на котором работает туннельный сервер. По умолчанию туннельный сервер прослушивает порт 7777.

OpenUDS. Новый туннель

Значения в полях «Узел» и «Порт» могут отличаться в зависимости от способа предоставления сервиса. Можно использовать:

  • внутренние IP-адреса или имена с портами по умолчанию (7777, 8080, 10443);
  • публичные IP-адреса или доменные имена с другими портами, если на стороне сервера настроено перенаправление трафика на стандартные порты туннельного сервера.

Сервер туннелей поддерживает два типа соединений:

  • туннельные соединения — по умолчанию используют порт 7777;
  • соединения HTML5 — по умолчанию используют порты 8080 (HTTP) и 10443 (HTTPS).

Можно назначить любой другой порт, если на туннельном сервере настроено перенаправление на соответствующий стандартный порт.

OpenUDS. Новый HTML5-туннель

Примечание: Для установки соединения клиенты должны иметь сетевой доступ к указанному IP-адресу/имени и порту.


Пулы услуг

После того как созданы и настроены хотя бы один поставщик услуг с соответствующей службой/услугой, аутентификатор (с пользователем и группой), менеджер ОС и транспорт, можно создать пул услуг (Сервис-пул) для публикации виртуальных рабочих столов или приложений.

Для создания пула услуг необходимо перейти в раздел «Сервис-пулы» и нажать кнопку «Новый»:

OpenUDS. Новый «Пул услуг»

Заполнить параметры конфигурации:

  • вкладка «Основной»:
    • «Имя» — название службы, отображаемое пользователю при доступе к рабочему столу или виртуальному приложению. В этом поле можно использовать следующие переменные:
      • {use} — процент использования пула (рассчитывается на основе максимального количества предоставляемых сервисов и текущего числа назначенных услуг);
      • {total} — общее количество машин (значение из поля «Максимальное количество предоставляемых сервисов»);
      • {usec} — количество машин, используемых пользователями в пуле;
      • {left} — количество машин, доступных для подключения;
    • «Базовый сервис» — служба, созданная ранее в поставщике услуг (состоит из поставщика и базовой услуги);
    • «ОС менеджер» — ранее созданный менеджер ОС, конфигурация которого применяется ко всем виртуальным рабочим столам или приложениям в пуле;
Примечание: Если выбран тип услуги «Статический IP», это поле не используется.
    • «Публиковать при создании — если включено, система автоматически запустит первую публикацию после сохранения пула. Если отключено, публикацию необходимо запустить вручную через вкладку «Публикации».
    Новый пул услуг. Вкладка «Основной»
  • вкладка «Экран/Дисплей»:
    • «Видимый» — если отключено, пул не отображается у пользователей;
    • «Привязанный образ» —  изображение, связанное с услугой. Изображение должно быть предварительно загружено в репозиторий изображений (раздел «Инструменты»→«Галерея»);
    • «Пул-группа» — позволяет группировать различные службы. Группа должна быть предварительно создана в разделе «Пулы»→«Группы»;
    • «Доступ к календарю запрещён» — сообщение, отображаемое пользователю, если доступ к сервису ограничен правилами календаря;
    • «Персонализированное сообщение о запуске» — сообщение, показываемое пользователю при попытке запуска службы;
    • «Включить персонализированное сообщение о запуске» — активирует отображение указанного сообщения;
    Новый пул услуг. Вкладка «Экран/Дисплей»
  • вкладка «Расширенный»:
    • «Разрешить удаление пользователями» — если включено, пользователи могут удалять назначенные им службы. Для автоматически созданных виртуальных рабочих столов OpenUDS: ВМ будет удалена, и при следующем подключении пользователю будет назначена новая. Для других типов (vAPP, статический IP): удаляется только назначение; новое назначение происходит при следующем подключении.
    • «Разрешить сброс пользователям» — позволяет пользователям перезапускать или сбрасывать свои службы (применяется только к автоматически созданным виртуальным рабочим столам);
    • «Игнорировать неиспользуемые» — если включено, непостоянные пользовательские службы, которые не используются, не будут автоматически удаляться;
    • «Показать транспорты» — если включено, отображаются все назначенные транспорты. В противном случае показывается только транспорт по умолчанию (с наивысшим приоритетом);
    • «Учётные записи» — назначение услуги ранее созданным аккаунтам («Пулы»→«Аккаунты»).
    Новый пул услуг. Вкладка «Расширенный»
  • вкладка «Доступность»:
    • «Первоначально доступные сервисы» — минимальное количество виртуальных рабочих столов, которые создаются, настраиваются и готовы к немедленному назначению;
    • «Сервисы для удержания в кеше» — количество виртуальных рабочих столов, постоянно находящихся в состоянии готовности к назначению. Эти машины автоматически создаются до достижения лимита, заданного в поле «Максимальное количество предоставляемых сервисов»);
    • «Сервисы, хранящиеся в L2 кеше» — количество ВМ в спящем или выключенном состоянии. Такие рабочие столы никогда не назначаются напрямую пользователям, но могут быть быстро активированы по запросу;
    • «Максимальное количество предоставляемых сервисов» — верхний предел числа виртуальных рабочих столов, которые может создать система в данном пуле.
    Новый пул услуг. Вкладка «Доступность»

После нажатия кнопки «Сохранить» система начнет создавать виртуальные рабочие столы в соответствии с настроенными параметрами кеширования.

После создания пула необходимо настроить доступ и транспорты. Для этого следует открыть его настройки (дважды щелкнуть мышью по строке созданного пула или в контекстном меню пула выбрать пункт «Подробность») и выполнить следующие действия:

  • на вкладке «Группы» назначить группы доступа (выбрать аутентификатор и группу, которой разрешён доступ к этому пулу):
    OpenUDS. Назначение группы пулу служб
  • на вкладке «Транспорты» выбрать способы подключения пользователей к рабочему столу:
    OpenUDS. Выбор способов подключения к пулу служб

«Мета-пулы»

Виртуальные рабочие столы и приложения можно объединять в мета-пулы — логические группы, упрощающие управление и организацию доступа. Мета-пул позволяет пользователям получать доступ к ресурсам из разных пулов услуг единым, прозрачным образом. Для пользователя такая служба выглядит как один сервис, хотя на самом деле она объединяет несколько независимых пулов.

Пулы услуг, входящие в состав мета-пула, работают в соответствии с заданной политикой распределения, которая определяет, как и когда предоставляются те или иные услуги.

Чтобы создать «Мета-пул» необходимо перейти в раздел «Мета-пулы» и нажать кнопку «Новый»:

OpenUDS. Создание мета-пула — вкладка «Основной»

Для настройки «Мета-пула» необходимо указать:

  • вкладка «Основной»:
    • «Имя» — название мета-пула, отображаемое пользователю при доступе к службе:
    • «Короткое имя» — альтернативное название, которое будет показано в интерфейсе. При наведении курсора на него отображается полное имя из поля «Имя»;
    • «Политика балансировки нагрузки» — определяет как выбираются пулы услуг при предоставлении сервисов:
      • «Равномерно распределённые» — услуги создаются и используются равномерно по всем пулам, входящим в мета-пул;
      • «Приоритет» — сначала используются пулы с наивысшим приоритетом (чем меньше значение поля Приоритет, тем выше приоритет). После достижения лимита по максимальному количеству сервисов в таком пуле система переходит к следующему по приоритету;
      • «Больше % доступно» — предпочтение отдаётся пулу с наибольшим процентом свободных (доступных) сервисов;
    • «Политика высокой доступности» — если включена, при недоступности одного из пулов его сервисы будут автоматически перенаправляться в другие пулы мета-пула (эту опцию следует использовать с осторожностью, так как она может повлиять на стабильность и предсказуемость работы);
  • вкладка «Экран/Дисплей»:
    • «Привязанный образ» — изображение, связанное с мета-пулом. Изображение должно быть предварительно загружено в репозиторий изображений (раздел «Инструменты»→«Галерея»);
    • «Пул-группа» — позволяет объединять мета-пулы в логические группы. Группа должна быть создана заранее в разделе «Пулы»→«Группы»;
    • «Видимый» — если отключено, мета-пул не отображается у пользователей;
    • «Доступ к календарю запрещён» — сообщение, показываемое пользователю, если доступ к сервису ограничен правилами календаря;
    • «Выбор транспорта» — определяет, как назначаются транспорты для мета-пула:
      • «Автоматический выбор» — используется ранспорт с наивысшим приоритетом (наименьшим значением) из назначенных пулу услуг. Пользователь не может выбирать транспорт вручную;
      • «Использовать только общие транспорты» — в мета-пуле доступны только те транспорты, которые назначены всем пулам услуг, входящим в мета-пул;
      • «Группировать транспорты по метке» — доступны только транспорты, имеющие метку, указанную в настройках транспорта на вкладке «Расширенный».
    OpenUDS. Создание мета-пула — вкладка «Экран/Дисплей»

После создания мета-пула необходимо добавить в него конкретные пулы услуг. Для этого следует открыть настройки мета-пула (дважды щелкнуть мышью по строке созданного пула или выбрать «Подробность» в контекстном меню пула) и на вкладке «Пулы услуг» нажать кнопку «Новый»:

OpenUDS. Добавление «Пула услуг» в мета-пул

Для каждого добавляемого пула необходимо указать:

  • «Приоритет» — приоритет данного пула внутри мета-пула (чем меньше значение, тем выше приоритет);
  • «Пул услуг» — ранее созданный пул, который будет включён в мета-пул;
  • «Включено» — определяет, участвует ли пул в работе мета-пула (если отключено, пул игнорируется).

Можно добавить любое количество пулов, в том числе объединяя службы, размещённые на разных платформах виртуализации (PVE, KVM, OpenNebula и др.), серверах приложений или статических устройствах.

OpenUDS. «Пулы услуг» в мета-пуле

Как и у обычного пула услуг, у мета-пула доступны следующие вкладки:

  • «Назначенные сервисы» — отображает текущие назначения пользователям. Здесь можно вручную отменить назначение или переназначить сервис другому пользователю;
  • «Группы» — определяет, какие группы пользователей будут иметь доступ к услуге;
  • «Доступ к календарям» — позволяет применить ранее созданный календарь для ограничения доступа по расписанию;
  • «Журналы» — содержит логи событий, связанных с мета-пулом.

Управление доступом по календарю

В OpenUDS можно настроить ограничение доступа пользователей к удаленным рабочим столам и виртуальным приложениям по дате и времени.

Кроме того, с помощью календаря можно автоматизировать задачи в пуле услуг, такие как:

  • создание новых публикаций;
  • настройка значений системного кеша;
  • добавление или удаление групп и транспортов;
  • изменение максимального количества предоставляемых услуг.

Для создания календаря необходимо перейти в раздел «Календари» и нажать кнопку «Новый». В открывшемся окне нужно ввести описательное название в поле «Имя» и нажать кнопку «Сохранить»:

OpenUDS. Новый календарь

В «Календаре» можно зарегистрировать правила, чтобы запланировать доступность услуги в определённое время. Чтобы создать правило, следует открыть нужный календарь (дважды щелкнуть по строке календаря или выбрать пункт «Подробность» в контекстном меню) и нажать кнопку «Новый»:

OpenUDS. Создать новое правило

Минимальные параметры для настройки правила:

  • «Имя» — имя правила;
  • «Событие» — время начала и продолжительность события (в минутах, часах, днях или неделях);
  • «Repetition» («Периодичность») — настройка повторения. Необходимо указать дату начала, частоту повторения правила (ежедневно/еженедельно/ежемесячно/ежегодно/по будням) и интервал повторения (в днях);
  • «Панель» —  сводная информация обо всех указанных настройках.

OpenUDS. Новое правило

После нажатия кнопки «Хорошо» правило будет создано и может быть назначено пулу услуг (виртуальному рабочему столу и/или приложению):

OpenUDS. Правило, назначенное «пулу услуг»

Разрешение/запрет доступа

После настройки правил их можно использовать для управления доступом пользователей к службам. Для этого следует выбрать пул услуг, перейти на вкладку «Доступ к календарям» и нажать кнопку «Новый»:

OpenUDS. Вкладка «Доступ к календарям»

В открывшемся окне необходимо указать:

  • приоритет доступа;
  • календарь;
  • действие, которое будет применяться при попытке доступа к сервису.

OpenUDS. Новое ограничение доступа по календарю

Примечание: Правило по умолчанию («FallBack») определяет поведение системы вне действия календарных правил: оно должно явно разрешать или запрещать доступ к сервису, когда ни одно из расписаний не активно: OpenUDS. Ограничение доступа к сервису по календарю


Доступ к сервису «SL» запрещен:

OpenUDS. Доступ к пулу «SL» запрещен

Запланированные действия

Правила календаря также можно использовать для автоматизации задач в пуле услуг. Для этого следует выбрать пул услуг, перейти на вкладку «Запланированные действия» и нажать кнопку «Новый»:

OpenUDS. Вкладка «Запланированные действия»

В открывшемся окне необходимо указать:

  • приоритет доступа;
  • календарь;
  • выполняемое действие.

OpenUDS. Новое запланированное действие

Список доступных действий зависит от типа поставщика услуг, используемого в пуле. Возможные действия::

  • «Установить начальные сервисы» — задаёт минимальное количество созданных и готовых к использованию виртуальных рабочих столов;
  • «Установить размер кеша» — определяет количество ВМ в основном кеше (готовых к немедленному назначению);
  • «Установить максимальное количество сервисов» — изменяет верхний лимит виртуальных рабочих столов в пуле;
  • «Установить размер L2 кеша» — задаёт количество ВМ в спящем или выключенном состоянии (L2-кеш);
  • «Публикация» — запускает новую публикацию в пуле услуг;
  • «Добавить транспорт» — добавляет существующий транспорт в пул;
  • «Удалить транспорт» — удаляет указанный транспорт из пула;
  • «Удалить все транспорты» — удаляет все транспорты, назначенные пулу;
  • «Добавить группу» — добавляет существующую группу пользователей в пул;
  • «Удалить группу» — удаляет указанную группу из пула;
  • «Удалить все группы» —  удаляет все группы, назначенные пулу;
  • «Установить игнорирование неиспользуемых» — включает или отключает параметр «Игнорировать неиспользуемые»;
  • «Удалить ВСЕ назначенные пользовательские сервисы» — отменяет все текущие назначения;
  • «Удалить СТАРЫЕ назначенные пользовательские сервисы» — удаляет назначения, которые не использовались в течение заданного времени;
  • «Персонализированное сообщение на панелях запуска» — задаёт текст сообщения, отображаемого при запуске службы.

После сохранения создаётся запланированная задача, которая будет автоматически выполнять указанное действие в заданное время.


После сохранения появится запланированная задача, выполняющая конкретное действие в данном «Пуле услуг»:

OpenUDS. Запланированные действия

Настройка разрешений

В OpenUDS можно назначать пользователям и группам права доступа к различным элементам интерфейса администрирования. Разрешения, назначенные элементу, применяются к нему самому и ко всем его подэлементам.

Примечание: Чтобы пользователь мог получить доступ к функциям администрирования, ему должна быть назначена роль«Штатный сотрудник»:


OpenUDS. Роль пользователя


Для предоставления разрешения на конкретный элемент администрирования следует выбрать этот элемент и нажать кнопку «Разрешения»:

OpenUDS. Предоставление разрешения к сервису

В окне разрешений следует нажать ссылку «Новое разрешение…» для групп или пользователей, затем:

  1. Выбрать аутентификатор.
  2. Указать группу или пользователя, к которому будет применяться разрешение.
  3. Задать уровень доступа:
    • «Только чтение» — просмотр элемента без возможности внесения изменений;
    • «Полный доступ» — полное управление элементом и его подэлементами.

OpenUDS. Новое разрешение

После сохранения настроек пользователи с ролью «Штатный сотрудник», которым назначены соответствующие разрешения, получат доступ к указанному элементу администрирования в соответствии с установленным уровнем прав.

OpenUDS. Разрешения для сервиса

Разрешения типа «Полный доступ» («Управление») могут применяться только к элементам второго уровня, таким как («Календари», «Пулы услуг» и т.д.).

Уведомители

В OpenUDS можно зарегистрировать два типа уведомителей, чтобы автоматически отправлять события определённых уровней: Warning (Предупреждение), Error (Ошибка) и Critical (Критическая ошибка).

Чтобы создать новый уведомитель, необходимо перейти в раздел «Инструменты»→ «Уведомители» и нажать кнопку «Новый»:

OpenUDS. Создание уведомителя

Доступны два типа уведомителей: по электронной почте и через Telegram.

Telegram

Этот уведомитель отправляет сообщения через приложение Telegram.

Параметры конфигурации для уведомителя Telegram:

  • вкладка «Основной»:
    • «Имя» — название уведомителя;
    • «Уровень» — уровень событий, которые будут отправляться;
    • «Включено» — если активно, уведомления будут отправляться;
    OpenUDS. Создание уведомителя Telegram (вкладка «Основной»)
  • вкладка «Telegram»:
    • «Токен доступа» — токен, полученный при создании бота в Telegram;
    • «Секрет» — секретный ключ, используемый для проверки команд подписки;
    • «Проверить задержку» — интервал (в секундах) между проверками входящих команд от пользователей.
    OpenUDS. Создание уведомителя Telegram (вкладка «Telegram»)

Чтобы получать уведомления от OpenUDS в Telegram, чат должен быть подписан на бота. Подписка выполняется командой:

/join <secret>

где <secret> — секретный ключ, указанный в настройках Telegram-уведомлений OpenUDS. Только после успешной подписки бот сможет отправлять сообщения в этот чат.

Отписаться можно с помощью команды:

/leave
Примечание: Чтобы убедиться, что бот может отправлять сообщения в ваш чат, выполните следующие шаги:
  1. Выполнить команду в боте:
     /start
    
  2. Получить chat_id, выполнив запрос к Telegram API:
    $ curl -s "https://api.telegram.org/bot<токен>/getUpdates"
    
    В ответе найти поле:
    "chat": {"id": 92233838, ...}
    
  3. Отправить тестовое сообщение:
    $ curl -s "https://api.telegram.org/bot<токен>/sendMessage?chat_id=<chat_id>&text=testing"
    


Примечание: На некоторых серверах DNS может разрешать имя api.telegram.org в IPv6-адрес, что приводит к проблемам с подключением (например, из-за отсутствия IPv6-маршрутизации). В таких случаях рекомендуется принудительно использовать IPv4. Для этого в файл /usr/share/openuds/uds/notifiers/telegram/telegram.py нужно добавить строку:
requests.packages.urllib3.util.connection.HAS_IPV6 = False


Электронная почта

Этот уведомитель отправляет сообщения по электронной почте.

Параметры конфигурации для уведомителя «Электронная почта»:

  • вкладка «Основной»:
    • «Имя» — название уведомителя;
    • «Уровень» — уровень событий, которые будут отправляться;
    • «Включено» — если активно, уведомления будут отправляться;
    OpenUDS. Создание уведомителя «Электронная почта» (вкладка «Основной»)
  • вкладка «SMTP-сервер»:
    • «SMTP-хост» — адрес почтового сервера для отправки;
    • «Безопасность» — тип защиты соединения (например, SSL/TLS или STARTTLS);
    • «Имя пользователя» — учётная запись с правами на отправку писем через указанный SMTP-сервер;
    • «Пароль» — пароль для указанной учётной записи;
    OpenUDS. Создание уведомителя «Электронная почта» (вкладка «SMTP-сервер»)
  • вкладка «Конфигурация»:
    • «Отправитель» — адрес отправителя, который будет отображаться в письмах;
    • «Отправить по электронной почте» — адрес получателя уведомлений;
    • «Включить HTML» — если включено, в теле письма разрешено использование HTML-разметки.
    OpenUDS. Создание уведомителя «Электронная почта» (вкладка «Конфигурация»)

Конфигурация OpenUDS

Конфигурация OpenUDS

В разделе «Конфигурация» можно настроить системные параметры, определяющие поведение OpenUDS. Эти параметры влияют на такие аспекты, как безопасность, режим работы, взаимодействие с виртуальными платформами, пользовательский интерфейс и т.д.

Внимание! Ниже описаны лишь некоторые системные переменные. Изменение других параметров не рекомендуется, так как они управляют внутренними механизмами системы (например, количество одновременных задач, тайм-ауты операций, расписание фоновых проверок и пр.). Некорректная настройка может привести к нестабильной работе или полной остановке OpenUDS.


Примечание: После изменения любого параметра конфигурации необходимо перезапустить сервер OpenUDS, чтобы изменения вступили в силу.


Вкладка «UDS»:

  • «autorunService» — автоматический запуск единственной службы. Если включено, пользователи, которым назначена только одна служба, будут подключаться к ней напрямую, минуя экран выбора сервисов, с использованием предварительно настроенного транспорта. По умолчанию: нет;
  • «cacheCheckDelay» — определяет интервал (в секундах), с которым система проверяет состояние кеша для создания или удаления виртуальных машин. Чем меньше значение, тем быстрее реагирует система, но слишком низкие значения могут вызвать перегрузку гипервизора. По умолчанию: 19;
  • «Calendar Access denied text» —  текст сообщения, отображаемый всем пользователям при попытке доступа к службе, ограниченной календарными правилами;
  • «checkUnusedTime» — время (в секундах), по истечении которого система удаляет непостоянную службу, если она не используется. Применяется только к службам с менеджером ОС типа Удалить сервис. Для других менеджеров параметр игнорируется. По умолчанию: 631;
  • «disallowGlobalLogin» — скрыть выбор аутентификаторов на странице входа. Если включено, на странице входа не отображается список аутентификаторов — используется только аутентификатор по умолчанию. Для входа через другие аутентификаторы необходимо добавить соответствующую метку в URL (например, ?auth=freeipa). По умолчанию: нет;
    OpenUDS. Поле «Аутентификатор» на странице входа
  • «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» — заголовок на странице входа (отображается над полями логина и пароля).

Подготовка шаблона виртуальной машины

Примечание: См. также статью Подготовка шаблона ВМ с ОС Windows.


Требования к шаблону виртуальной машины:

  1. Установить openuds-actor:
    # apt-get install openuds-actor
    
  2. Включить автозапуск сервиса udsactor.service:
    # systemctl enable udsactor.service
    
  3. Зарегистрировать 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» — пароль пользователя.
      UDS Actor Configuration
    • Нажать кнопку «Register with UDS» («Зарегистрироваться в UDS»);
    • На вкладке «Advanced» можно указать дополнительные параметры, в том числе уровень журналирования:
      • «Preconnect» — сценарий, который будет запущен непосредственно перед тем, как пользователь подключится к виртуальному рабочему столу. Брокер OpenUDS автоматически передаёт следующие параметры: имя пользователя, протокол, IP-адрес клиента, имя хоста клиента, которые можно использовать в скрипте;
      • «Runonce» — сценарий, который будет запущен только один раз перед настройкой UDS Actor. После выполнения скрипт удаляется из конфигурации. Параметры можно передать непосредственно скрипту. Необходимо, чтобы выполняемый скрипт завершился перезапуском виртуального рабочего стола;
      • «Postconfig» — сценарий, который будет запущен после того, как UDS Actor завершит настройку. Параметры можно передать непосредственно скрипту. Скрипт запускается только один раз, но в отличие от режима «Runonce» перезапускать виртуальный рабочий стол не нужно;
      • «Log Level» — уровень журналирования (файл журнала: /var/log/udsactor.log).
      Для применения настроек указанных на этой вкладке необходимо выполнить перерегистрацию UDS Actor.
  4. Установить и настроить один из вариантов удаленного доступа:

В 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 и др.).
Примечание: Если для доступа к виртуальному рабочему используется транспорт HTML5 RDP, нет необходимости устанавливать клиент OpenUDS на клиентский компьютер. Единственным требованием для этого подключения является наличие веб-браузера.


Клиент с ОС Альт

Установка клиента OpenUDS openuds-client:

# apt-get install openuds-client

Для подключения к виртуальным рабочим столам также требуются клиенты соответствующих протоколов:

  • xfreerdp3 — для подключения по протоколу RDP;
  • x2goclient — для подключения к серверу X2Go;
  • remote-viewer из пакета virt-viewer — для подключения по протоколу SPICE.
Примечание: Для возможности подключения по протоколу SPICE к OpenNebula, клиенты должны успешно разрешать имена hostname серверов с виртуальными машинами (через DNS или hosts).


Клиент с ОС Windows

См. Клиент с ОС Windows

Подключение пользователя к виртуальному рабочему месту

Подключиться к серверу OpenUDS можно с помощью браузера:

  1. Открыть в браузере адрес сервера OpenUDS: https://<адрес_openuds>.
  2. Ввести имя пользователя и пароль (если настроено несколько аутентификаторов, выбрать нужный способ проверки подлинности).

После входа отобразится панель с доступными виртуальными рабочими столами (или приложениями), назначенными пользователю:

OpenUDS. Подключение пользователя к виртуальному рабочему месту

Примечание: Если для пула настроено несколько транспортов, в правом верхнем углу элемента службы появляется кнопка выбора. При прямом клике по ВМ используется транспорт по умолчанию (с наивысшим приоритетом, то есть с наименьшим числовым значением поля «Приоритет»). Чтобы использовать другой транспорт, нужно выбрать его из раскрывающегося списка.


При выборе пула автоматически запускается клиент OpenUDS. Он:

  • обрабатывает специальный URL;
  • получает параметры подключения к свободной ВМ;
  • формирует файл сессии;
  • передаёт файл сессии соответствующему клиенту удалённого доступа (RDP, X2Go и т.д.);
  • клиент удалённого доступа устанавливает соединение с ВМ.

После успешного подключения виртуальный рабочий стол становится доступен для работы.

Пример подключения с использованием транспорта HTML5 RDP:

OpenUDS. Пример подключения с использованием HTML5 RDP

При выходе пользователя из виртуальной машины:

  • останавливается OpenUDS Actor;
  • брокер OpenUDS фиксирует освобождение ВМ.

Дальнейшие действия зависят от типа пула:

  • постоянный пул — ВМ остаётся включённой и готовой к следующему подключению;
  • временный (динамический) пул — ВМ удаляется, а при следующем запросе создаётся новая из мастер-образа.
Примечание: При подключении пользователя к виртуальному рабочему месту OpenUDS фиксирует назначение и отображает информацию о привязанной службе на вкладке «Назначенные сервисы» соответствующего пула:

OpenUDS. Назначенные сервисы


Отказоустойчивое решение

См. статью HA-кластер с OpenUDS.

Отладочная информация

OpenUDS Server

Журналы OpenUDS Server находятся в каталоге /var/log/openuds/:

  • auth.log — информация об аутентификации пользователей (аутентификатор, имя пользователя, IP-адрес, ОС, результат аутентификации, браузер):
    OpenUDS. auth.log
  • sql.log — SQL-запросы к базе данных;
  • trace.log — данные о доступе пользователей к пулам услуг (название службы, пользователь, используемый транспорт, IP-адрес выделенной ВМ):
    OpenUDS. trace.log
  • uds.log — основной журнал работы OpenUDS Server;
  • use.log — сведения о сессиях пользователей: время входа и выхода, IP-адрес или имя клиента, пользователь, аутентификатор и т.д.;
  • workers.log — логи внутренних задач: самоочистка, проверка кеша, фоновые операции и пр.

Включить режим отладки можно, установив в файле /etc/openuds/settings.py параметр:

DEBUG = True
Внимание! После завершения настройки обязательно отключите режим отладки, установив значение False для параметра DEBUG.

В противном случае:

  • будет генерироваться чрезмерный объём логов;
  • возможна утечка чувствительной информации;
  • может снизиться производительность сервера из-за повышенного потребления памяти.


В дополнение к журналам 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 можно получить информацию о различных настраиваемых разделах и услугах, например:

  • «Поставщики услуг» — раздел «Журналы» содержит информацию о возможных ошибках при взаимодействии с платформами виртуализации;
  • «Аутентификаторы» — раздел «Журналы» содержит ​​информацию о попытках входа пользователей:
    OpenUDS. Журнал аутентификатора AD
  • «Пулы услуг» — раздел «Журналы» содержит ​​информацию об истории изменений: кто, когда и что изменил в пуле:
    OpenUDS. Журнал пула услуг

Кроме того, в каждом пуле услуг можно просмотреть журналы отдельных виртуальных машин:

OpenUDS. Доступ к журналу виртуальной машины