Product SiteDocumentation Site

Глава 60. Система виртуальных рабочих мест OpenUDS

60.1. Установка
60.1.1. Установка MySQL (MariaDB)
60.1.2. Установка OpenUDS Server
60.1.3. OpenUDS Tunnel
60.2. Обновление OpenUDS
60.3. Настройка OpenUDS
60.3.1. Поставщики услуг
60.3.2. Серверы
60.3.3. Настройка аутентификации пользователей
60.3.4. Настройка менеджера ОС
60.3.5. Транспорт
60.3.6. Сети
60.3.7. Туннели
60.3.8. Пулы услуг
60.3.9. Мета-пулы
60.3.10. Управление доступом по календарю
60.3.11. Настройка разрешений
60.3.12. Уведомители
60.3.13. Конфигурация OpenUDS
60.4. Подготовка шаблона виртуальной машины
60.4.1. Шаблон ВМ с ОС Альт
60.4.2. Шаблон ВМ с ОС Windows
60.5. Настройка клиента OpenUDS
60.5.1. Клиент с ОС Альт
60.5.2. Клиент с ОС Windows
60.6. Подключение пользователя к виртуальному рабочему месту
60.7. Отказоустойчивое решение
60.7.1. Конфигурация серверов MySQL
60.7.2. Настройка серверов HAProxy
60.7.3. Настройка OpenUDS
OpenUDS — это многоплатформенный брокер подключений для создания и управления виртуальными рабочими местами и приложениями.
Основные компоненты решения VDI на базе OpenUDS:
  • OpenUDS Server (openuds-server) — брокер подключений пользователей и веб-интерфейс администратора для настройки системы;
  • SQL-сервер — необходим для работы Django-приложения openuds-server. В качестве СУБД могут использоваться MySQL или MariaDB. SQL-сервер может быть установлен как на отдельной машине, так и на том же сервере, что и OpenUDS Server;
  • Платформа виртуализации — среда для запуска клиентских окружений и приложений. OpenUDS поддерживает множество платформ: PVE, OpenNebula, oVirt, OpenStack. Также возможна работа с физическими серверами без виртуализации (аналог терминального решения);
  • OpenUDS Client (openuds-client) — клиентское приложение для подключения к брокеру и последующего доступа к виртуальному рабочему окружению;
  • OpenUDS Tunnel (openuds-tunnel) — решение для туннелирования трафика от клиента к виртуальному окружению. Предназначен для предоставления доступа из недоверенных сетей (например, из Интернета). Устанавливается на отдельный сервер;
  • OpenUDS Actor (openuds-actor) — программное обеспечение, устанавливаемое на гостевые виртуальные машины (ВМ). Обеспечивает связь между ВМ и брокером OpenUDS.

Таблица 60.1. Системные требования

Компонент
ОЗУ
ЦП
Диск
OpenUDS Server
2 ГБ
2 vCPU
8 ГБ
SQL Server
1 ГБ
2 vCPU
10 ГБ
OpenUDS Tunnel
2 ГБ
2 vCPU
13 ГБ

Примечание

Если SQL-сервер размещён на том же хосте, что и OpenUDS Server, объём оперативной памяти следует суммировать (минимум 3 ГБ)

60.1. Установка

60.1.1. Установка MySQL (MariaDB)

Установить MySQL (MariaDB):
# alteratorctl components install mariadb
или:
# apt-get install mariadb
Запустить службу и добавьте её в автозагрузку:
# systemctl enable --now mariadb.service
Выполнить базовую настройку безопасности:
# mysql_secure_installation
Создать базу данных dbuds, пользователя базы данных dbuds с паролем password и предоставить ему привилегии в базе данных dbuds:
$ mysql -u root -p
Enter password:

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;

60.1.2. Установка OpenUDS Server

Установить компонент openuds:
# alteratorctl components install openuds
или пакет openuds-server-nginx:
# 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',
            'USER': 'dbuds',
            'PASSWORD': 'password',
            'HOST': 'localhost',
            'PORT': '3306',
        }
    }
    
  • выполнить миграции базы данных:
    # 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
    

Важно

Перед запуском nginx необходимо убедиться, что веб-сервер Apache остановлен и отключен:
# systemctl disable --now httpd2
Веб-интерфейс OpenUDS будет доступен по адресу https://<адрес-сервера>/:
Форма входа в интерфейс OpenUDS

Примечание

Учётные данные по умолчанию: root/udsmam0

Примечание

Для перехода в панель администрирования следует в меню пользователя выбрать пункт Панель управления:
OpenUDS. Меню пользователя

60.1.3. OpenUDS Tunnel

60.1.3.1. Установка OpenUDS Tunnel

OpenUDS Tunnel рекомендуется устанавливать на отдельный сервер.
Установить компонент openuds-tunnel:
# alteratorctl components install openuds-tunnel
или пакет openuds-tunnel:
# apt-get install openuds-tunnel

Примечание

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

60.1.3.2. Настройка OpenUDS Tunnel

На туннельном сервере:
  • указать адрес сервера OpenUDS (брокера) в файле /etc/openuds-tunnel/udstunnel.conf :
    uds_server = http://192.168.0.53/uds/rest/tunnel/ticket
    uds_token = 5ba9d52bb381196c2a22e495ff1c9ba4bdc03440b726aa8b
    
    где:
    • 192.168.0.53 — IP-адрес сервера OpenUDS (брокера);
    • uds_token — токен, сгенерированный при установке туннельного сервера.
  • запустить и добавить в автозагрузку службу:
    # systemctl enable --now openuds-tunnel.service
    
На сервере OpenUDS зарегистрировать туннельный сервер:
# openuds_tunnel_register -H 192.168.0.88 -n Tunnel \
 -t 5ba9d52bb381196c2a22e495ff1c9ba4bdc03440b726aa8b \
 -m 08:00:27:31:2d:14
Результат:
Tunnel token register success. (With token: 5ba9d52bb381196c2a22e495ff1c9ba4bdc03440b726aa8b)
Параметры:
  • -H — IP-адрес туннельного сервера;
  • -n — название туннеля;
  • -t — токен туннельного сервера (из файла udstunnel.conf);
  • -t — MAC-адрес туннельного сервера.
При создании туннеля указать IP-адрес и порт туннельного сервера: 192.168.0.88:7777

Примечание

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

60.1.3.3. Настройка 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-подключения (порт 8080): остановить службу ahttpd:
      # systemctl disable --now ahttpd
      
      либо изменить порт Tomcat в файле /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-адрес и порт туннельного сервера:
  • http://192.168.0.88:8080 — для подключения по HTTP;
  • https://192.168.0.88:10443 — для подключения по HTTPS.