Product SiteDocumentation Site

17.7.3. Настройка OpenUDS

После настройки серверов MySQL и HAProxy можно приступить к установке и настройке компонентов OpenUDS Server и Tunnel.

17.7.3.1. Настройка OpenUDS Server

На обоих узлах OpenUDS Server:
  1. Установить OpenUDS Server:
    # apt-get install openuds-server-nginx
    
  2. Отредактировать содержимое файла /etc/openuds/settings.py, указав корректные данные для подключения к главному MySQL-серверу:
    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': '192.168.0.128',  # Set to empty string for localhost. Not used with sqlite3.
            'PORT': '3306',  # Set to empty string for default. Not used with sqlite3.
        }
    }
    
  3. Заполнить базу данных начальными данными (этот пункт следует выполнить только на одном узле!):
    # su -s /bin/bash - openuds
    $ cd /usr/share/openuds
    $ python3 manage.py migrate
    $ exit
    
  4. Запустить gunicorn:
    # systemctl enable --now openuds-web.service
    
  5. Запустить nginx:
    # ln -s ../sites-available.d/openuds.conf /etc/nginx/sites-enabled.d/openuds.conf
    # systemctl enable --now nginx.service
    
  6. Запустить менеджер задач OpenUDS:
    # systemctl enable --now openuds-taskmanager.service
    
  7. Подключиться к серверу OpenUDS (http://Виртуальный_IP-адрес).

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

На каждом узле OpenUDS Tunnel:
  1. Установить OpenUDS Tunnel:
    # apt-get install openuds-tunnel
    
  2. Настроить туннель:
    • указать виртуальный IP-адрес в файле /etc/openuds-tunnel/udstunnel.conf :
      uds_server = http://192.168.0.49/uds/rest/tunnel/ticket
      uds_token = 5ba9d52bb381196c2a22e495ff1c9ba4bdc03440b726aa8b
      
    • запустить и добавить в автозагрузку сервис OpenUDS Tunnel:
      # systemctl enable --now openuds-tunnel.service
      
  3. Настроить HTML5:
    • в файле /etc/guacamole/guacamole.properties привести значение параметра uds-base-url к виду:
      uds-base-url=http://192.168.0.49/uds/guacamole/auth/5ba9d52bb381196c2a22e495ff1c9ba4bdc03440b726aa8b
      
      где 192.168.0.49 — виртуальный IP-адрес;
    • настроить tomcat, для этого в файл /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,
      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" />
      
    • запустить сервисы guacd и tomcat:
      # systemctl enable --now guacd tomcat
      
На главном узле (Master) MySQL добавить в БД информацию о каждом 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.87','192.168.0.87','Tunnel','5ba9d52bb381196c2a22e495ff1c9ba4bdc03440b726aa8b','2022-11-15');
MariaDB> INSERT INTO `uds_tunneltoken` VALUES (ID,'admin','192.168.0.88','192.168.0.88','Tunnel','9ba4bdc03440b726aa8b5ba9d52bb381196c2a22e495ff1c','2022-11-15');
MariaDB> exit;
Оба сервера OpenUDS-Tunnel будут работать в активном режиме. Пользователи, использующие подключение через туннель, будут подключаться к этим серверам случайным образом. При падении одного из серверов, соединения пользователей, которые используют этот сервер, будут прерваны, но при повторном установлении соединения они автоматически получат доступ через другой активный туннельный сервер.

Примечание

При создании туннельного транспорта (X2Go, RDP) в поле Туннельный сервер (вкладка Туннель) следует указывать виртуальный IP-адрес и порт, указанный в разделе frontend tunnel-in файла /etc/haproxy/haproxy.cfg (в данном примере: 1443):
OpenUDS. Поле Туннельный сервер
При создании транспорта «HTML5 RDP (туннельный)» в поле Туннельный сервер (вкладка Туннель) следует указывать виртуальный IP-адрес и порт, указанный в разделе frontend tunnel-in-guacamole файла /etc/haproxy/haproxy.cfg (в данном примере: 10443):
OpenUDS. HTML5 RDP — вкладка Туннель
Пример подключения с использованием HTML5:
OpenUDS. Пример подключения с использованием HTML5