Product SiteDocumentation Site

Глава 17. OpenUDS

17.1. Установка
17.1.1. Установка MySQL (MariaDB)
17.1.2. Установка OpenUDS Server
17.1.3. OpenUDS Tunnel
17.2. Обновление OpenUDS
17.3. Настройка OpenUDS
17.3.1. Поставщики услуг
17.3.2. Настройка аутентификации пользователей
17.3.3. Настройка менеджера ОС
17.3.4. Транспорт
17.3.5. Пулы услуг
17.3.6. Управление доступом по календарю
17.3.7. Настройка разрешений
17.4. Подготовка шаблона виртуальной машины
17.4.1. Шаблон ВМ с ОС Альт
17.4.2. Шаблон ВМ с ОС Windows
17.5. Настройка клиента OpenUDS
17.5.1. Клиент с ОС Альт
17.5.2. Клиент с ОС Windows
17.6. Подключение пользователя к виртуальному рабочему месту
17.7. Отказоустойчивое решение
17.7.1. Конфигурация серверов MySQL
17.7.2. Настройка серверов HAProxy
17.7.3. Настройка OpenUDS
OpenUDS это многоплатформенный брокер подключений для создания и управления виртуальными рабочими местами и приложениями.
Основные компоненты решения VDI на базе OpenUDS:
  • OpenUDS Server (openuds-server) — брокер подключений пользователей, а так же интерфейс администратора для настройки;
  • SQL Server. Для работы django-приложения, которым является openuds-server, необходим SQL сервер, например mysql или mariadb. SQL Server может быть установлен как на отдельном сервере, так и совместно с openuds-server;
  • Платформа для запуска клиентских окружений и приложений. OpenUDS совместима со множеством систем виртуализации: PVE, OpenNebula, oVirt, OpenStack. Так же возможно использование с отдельным сервером без виртуализации (аналог терминального решения);
  • OpenUDS Client (openuds-client) — клиентское приложение для подключения к брокеру соединений и дальнейшего получения доступа к виртуальному рабочему окружению;
  • OpenUDS Tunnel (openuds-tunnel) — решение для туннелирования обращений от клиента к виртуальному рабочему окружению. OpenUDS Tunnel предназначен для предоставления доступа из недоверенных сегментов сети, например из сети Интернет. Устанавливается на отдельный сервер;
  • OpenUDS Actor (openuds-actor) — ПО для гостевых виртуальных машин, реализует связку виртуальной машины и брокера соединений.

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

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

Примечание

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

17.1. Установка

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

Установить MySQL (MariaDB):
# apt-get install mariadb
Запустить сервер mariadb и добавить его в автозагрузку:
# systemctl enable --now mariadb.service
Задать пароль root для mysql и настройки безопасности:
# 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;

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

При этом будут установлены:
  • openuds-server — django приложение;
  • gunicorn — сервер приложений (обеспечивает запуск django как стандартного WSGI приложения);
  • nginx — http-сервер, используется в качестве reverse-proxy для доступа к django приложению, запущенному с помощью gunicorn.
Установить пакет openuds-server-nginx:
# apt-get install openuds-server-nginx
Настройка 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
    $ 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

Примечание

Имя/пароль по умолчанию: root/udsmam0

Примечание

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

17.1.3. OpenUDS Tunnel

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

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

Примечание

Установить пакет openuds-tunnel:
# apt-get install openuds-tunnel

Примечание

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

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

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

17.1.3.3. Настройка HTML5

На OpenUDS Tunnel:
  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 для подключения по https в файл /etc/tomcat/server.xml добавить новый Connector, в котором указать порт (в примере 10443), сертификат (файл .crt, .pem и т.д.), закрытый ключ (.key, .pem и т.д.):
    <Connector port="10443" protocol="org.apache.coyote.http11.Http11AprProtocol" SSLEnabled="true"
                  ciphers="A-CHACHA20-POLY1305,ECDHE-RSA-CHACHA20-POLY1305,
    ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-RSA-AES128-GCM-SHA256,
    ECDHE-ECDSA-AES256-GCM-SHA384,ECDHE-RSA-AES256-GCM-SHA384,
    DHE-RSA-AES128-GCM-SHA256,DHE-RSA-AES256-GCM-SHA384,
    ECDHE-ECDSA-AES128-SHA256,ECDHE-RSA-AES128-SHA256,
    ECDHE-ECDSA-AES128-SHA,ECDHE-RSA-AES256-SHA384,
    ECDHE-RSA-AES128-SHA,ECDHE-ECDSA-AES256-SHA384,
    ECDHE-ECDSA-AES256-SHA,ECDHE-RSA-AES256-SHA,
    DHE-RSA-AES128-SHA256,DHE-RSA-AES128-SHA,
    DHE-RSA-AES256-SHA256,DHE-RSA-AES256-SHA,
    ECDHE-ECDSA-DES-CBC3-SHA,ECDHE-RSA-DES-CBC3-SHA,
    EDH-RSA-DES-CBC3-SHA,AES128-GCM-SHA256,AES256-GCM-SHA384,
    AES128-SHA256,AES256-SHA256,AES128-SHA,AES256-SHA,DES-CBC3-SHA"
                  maxThreads="500" scheme="https" secure="true"
                  SSLCertificateFile="/etc/openuds-tunnel/ssl/certs/openuds-tunnel.pem"
                  SSLCertificateKeyFile="/etc/openuds-tunnel/ssl/private/openuds-tunnel.key"
                  maxKeepAliveRequests="1000"
                  clientAuth="false" sslProtocol="TLSv1+TLSv1.1+TLSv1.2" />
    
  3. Запустить сервисы guacd и tomcat:
    # systemctl enable --now guacd tomcat
    
На сервере OpenUDS при создании нового туннельного транспорта HTML5RDP на вкладке Туннель указать IP-адрес и порт туннельного-сервера:
  • http://192.168.0.88:8080 — для подключения по http;
  • https://192.168.0.88:10443 — для подключения по https.