Product SiteDocumentation Site

Глава 50. OpenUDS

50.1. Установка
50.1.1. Установка MySQL (MariaDB)
50.1.2. Установка OpenUDS Server
50.1.3. OpenUDS Tunnel
50.2. Обновление OpenUDS
50.3. Настройка OpenUDS
50.3.1. Поставщики услуг
50.3.2. Настройка аутентификации пользователей
50.3.3. Настройка менеджера ОС
50.3.4. Транспорт
50.3.5. Сети
50.3.6. Пулы услуг
50.3.7. Мета-пулы
50.3.8. Управление доступом по календарю
50.3.9. Настройка разрешений
50.3.10. Конфигурация OpenUDS
50.4. Подготовка шаблона виртуальной машины
50.4.1. Шаблон ВМ с ОС Альт
50.4.2. Шаблон ВМ с ОС Windows
50.5. Настройка клиента OpenUDS
50.5.1. Клиент с ОС Альт
50.5.2. Клиент с ОС Windows
50.6. Подключение пользователя к виртуальному рабочему месту
50.7. Отказоустойчивое решение
50.7.1. Конфигурация серверов MySQL
50.7.2. Настройка серверов HAProxy
50.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) — ПО для гостевых виртуальных машин, реализует связку виртуальной машины и брокера соединений.

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

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

Примечание

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

50.1. Установка

50.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;

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

OpenUDS Server можно установить при установке системы, выбрав для установки пункт Сервер виртуальных рабочих столов OpenUDS (подробнее описано в главе Установка системы).
Установка 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
    

Важно

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

Примечание

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

Примечание

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

50.1.3. OpenUDS Tunnel

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

Установка OpenUDS Tunnel должна выполняться на отдельной от OpenUDS Server системе.
OpenUDS Tunnel можно установить при установке системы, выбрав для установки пункт Сервер туннелирования виртуальных рабочих столов OpenUDS (подробнее описано в главе Установка системы).
Установка OpenUDS Tunnel при установке системы

Примечание

В уже установленной системе можно установить пакет openuds-tunnel:
# apt-get install openuds-tunnel

Примечание

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

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

50.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:
    • для подключения по http: так как tomcat по умолчанию работает на порту 8080, то перед запуском tomcat необходимо, либо остановить службу ahttpd:
      # systemctl disable --now ahttpd
      
      либо изменить в файле /etc/tomcat/server.xml порт 8080 на другой допустимый номер порта, например 8081:
      <Connector port="8081" protocol="HTTP/1.1"
                     connectionTimeout="20000"
                     redirectPort="8443" />
      
    • для подключения по 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.