Установка и конфигурирование

Скачивание и распаковка архива с компонентами модуля

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

  1. Скачайте архив с deb-пакетами требуемой версии и соответствующие файлы контрольных сумм из предоставленного хранилища любым доступным способом.

  2. (Опционально) убедитесь в целостности архива, сравнив его контрольные суммы с контрольными суммами в соответствующих файлах.

    Пример команды, запускаемой в консоли для проверки целостности:

    shasum -a 512 -c osmax-all-1.13.0.tar.gz osmax-all-1.13.0.tar.gz.sha512
  3. Перенесите скачанный архив на машину, на которой будут запускаться компоненты, выполнив команду scp (secure copy):

    Пример команд:

    scp osmax-all-1.13.0.tar.gz 10.6.32.218
  4. Создайте временный каталог для распаковки и распакуйте архив.

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

    mkdir osmax-all
    tar xvf osmax-all-1.13.0.tar.gz -C osmax-all

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

    packages/osmax-ira-guacamole-server_1.4.0_amd64.deb
    packages/osmax-ira-guacamole-client_1.4.0_amd64.deb
    packages/osmax-ira-tigervnc_1.3.0_amd64.deb
    packages/osmax-ira-openssh_1.3.0_amd64.deb
    packages/osmax-ira-xrdp_1.3.0_amd64.deb

Установка и конфигурирование osmax-ira-guacamole-server

Установка выполняется на сервере шлюза удаленного доступа.

Шаги выполнения:

  1. Установите зависимый пакет libosmaxvncserver компонента osmax-ira-guacamole-server, выполнив команду:

    sudo apt install ./libosmaxvncserver_1.2.0_amd64.deb
  2. Установите зависимый пакет libosmaxfreerdp компонента osmax-ira-guacamole-server, выполнив команду:

    sudo apt install ./libosmaxfreerdp_1.2.0_amd64.deb
  3. Установите пакет osmax-ira-guacamole-server, выполнив команду:

    sudo apt install ./osmax-ira-guacamole-server_1.1.0-1_amd64.deb

    После успешной установки будет создана и запущена systemd-служба guacd.

  4. Создайте конфигурационный файл для сервера Guacamole, выполнив команду:

    touch /etc/guacamole/guacd.conf
  5. В файле /etc/guacamole/guacd.conf задайте значения параметров:

    Наименование Описание Значение по умолчанию Обязательный параметр

    Секция настройки сервера ([server])

    bind_host

    Хост компонента guacd

    localhost

    Да

    bind_port

    Порт компонента guacd

    4822

    Да

    Секция настройки daemon-сервера ([daemon])

    log_level

    Уровень логирования

    info

    Нет

    log_file_path

    Путь к файлу журналирования. Если путь не задан, то лог-сообщения будут записаны в stderr

    Нет

    audit_file_path

    Путь к файлу аудита. Если путь не задан, то лог-сообщения будут записаны в stderr

    Нет

    Секция настройки SSL-соединения ([ssl])

    server_certificate

    Путь до SSL-сертификата

    Нет

    server_key

    Путь до ключа SSL-сертификата

    Нет

    Пример файла:

    [server]
    bind_host = ira-server.domain.local
    bind_port = 4822
    
    [daemon]
    
    log_level = debug
    log_file_path = /var/log/guacamole-server.log
    audit_file_path = /var/log/audit/guacamole-server.log
    
    [ssl]
    server_certificate = /ssl/domain.pem
    server_key = /ssl/domain.key
  6. Перезапустите systemd-службу guacd, выполнив команду:

    sudo systemctl restart guacd

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

    sudo systemctl status guacd

    В случае успешного запуска система вернет ответ, где в поле Active будет указано значение active (running):

    systemctl status guacd
    ● guacd.service - Guacamole Server
       Loaded: loaded (/usr/local/lib/systemd/system/guacd.service; disabled; vendor preset: enabled)
       Active: active (running) since Thu 2024-05-30 09:00:29 MSK; 1s ago
         Docs: man:guacd(8)
     Main PID: 19060 (guacd)
        Tasks: 1 (limit: 4651)
       Memory: 10.1M
          CPU: 15ms
       CGroup: /system.slice/guacd.service
               └─19060 /usr/local/sbin/guacd -f
    
    мая 30 09:00:29 ira-server systemd[1]: Started Guacamole Server.
    мая 30 09:00:29 ira-server guacd[19060]: IRC: Guacamole proxy daemon (guacd) version 1.5.4 started
    мая 30 09:00:29 ira-server guacd[19060]: IRC: Successfully bound AF_INET socket to host 127.0.0.1, port 4822
    мая 30 09:00:29 ira-server guacd[19060]: IRC: Communication will require SSL/TLS.
    мая 30 09:00:29 ira-server guacd[19060]: IRC: Using PEM keyfile /ssl/domain.key
    мая 30 09:00:29 ira-server guacd[19060]: IRC: Using certificate file /ssl/domain.pem
    мая 30 09:00:29 ira-server guacd[19060]: IRC: Listening on host 127.0.0.1, port 4822

    При неуспешном запуске поле Active будет содержать иное значение. В этом случае проверьте логи системы.

    == Установка и конфигурирование osmax-ira-guacamole-client

Установка выполняется на сервере шлюза удаленного доступа.

Чтобы установить пакет osmax-ira-guacamole-client, выполните команду:

sudo apt install ./<пакет>

Пример:

sudo apt install ./osmax-ira-guacamole-client_1.3.0_amd64.deb

После успешной установки пакета:

  1. Создан конфигурационный файл с настройками по умолчанию — /opt/osmax-ira-guacamole-client/guacamole.properties (см. раздел «Описание параметров конфигурационного файла guacamole.properties»).

    При обновлении продукта до более новой версии файл guacamole.properties остается неизменным, но дополнительно создается файл guacamole.example.properties. Этот файл носит ознакомительный характер и используется в качестве примера для самостоятельного переопределения параметров в конфигурационном файле guacamole.properties.
  2. Создана systemd-служба osmax-ira-guacamole-client.

    При установке пакета osmax-ira-guacamole-client автоматически создается пользователь osmax, от имени которого запускается systemd-служба osmax-ira-guacamole-client. При обновлении или удалении пакета пользователь удален не будет.

    Чтобы запустить systemd-службу osmax-ira-guacamole-client, выполните команду:

    sudo systemctl start <имя службы>

    Пример:

    sudo systemctl start osmax-ira-guacamole-client

    Для включения автозапуска systemd-службы osmax-ira-guacamole-client используйте команду:

    sudo systemctl enable osmax-ira-guacamole-client

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

    sudo systemctl status osmax-ira-guacamole-client

    В случае успешного запуска система вернет ответ, где в поле Active будет указано значение active (running):

    systemctl status osmax-ira-guacamole-client
    ● osmax-ira-guacamole-client.service - Osmax IRA Guacamole Client Service
       Loaded: loaded (/etc/systemd/system/osmax-ira-guacamole-client.service; enabled; vendor preset: enabled)
       Active: active (running) since Fri 2024-06-21 12:58:28 MSK; 12s ago
     Main PID: 130308 (osmax-guacamole)
        Tasks: 32 (limit: 19048)
       Memory: 200.3M
       CGroup: /system.slice/osmax-ira-guacamole-client.service
               └─130308 /opt/osmax-ira-guacamole-client/bin/osmax-ira-guacamole-client

    При неуспешном запуске поле Active будет содержать иное значение. В этом случае проверьте логи системы.

  3. Создана схема Guacamole и пользователь guacadmin c паролем guacadmin.

    При первом запуске приложения Guacamole пароль пользователя guacadmin должен быть изменен администратором.

Описание параметров конфигурационного файла guacamole.properties

Пример конфигурационного файла
## This is an example of `guacamole.properties` file as main configuration file for osmax-ira-guacamole-client backend

###############################################################################
# HTTP server properties section                                              #
###############################################################################

## Main application port
application-server-port: 8080

## To enable serving requests via HTTPS uncomment the following parameters:
#application-server-ssl: true
#application-server-ssl-keystore-path: /opt/osmax-ira-guacamole-client/keystore.jks
#application-server-ssl-keystore-password: keystore@12345
## Optionally if keystore specified by path is not in standard JKS format,
## use parameter below for specifying the truststore type (should be compatible with JSSE)
#application-server-ssl-keystore-type: jks

###############################################################################
# Guacamole server (guacd) integration properties section                     #
###############################################################################

## Guacamole server configuration
guacd-hostname: <guacamole server hostname>
guacd-port: 4822
## To enable SSL connection mode for Guacamole server uncomment the following parameters:
#guacd-ssl: true
#guacd-ssl-truststore-path: /etc/ssl/certs/java/cacerts
#guacd-ssl-truststore-password: changeit
## Optionally if truststore specified by path is not in standard JKS format,
## use parameter below for specifying the truststore type (should be compatible with JSSE)
#guacd-ssl-truststore-type: jks

## Additional configuration for managed connections
ignore-certs-in-rdp-connections: true
clipboard-encoding-in-vnc-connections: UTF-8

## Timeout in minutes for inactive sessions after which the session will be closed forcefully
api-session-timeout: 60

###############################################################################
# Guacamole extensions properties section                                     #
###############################################################################

## Extensions load order
extension-priority: postgresql,ldap,quickconnect,*

###############################################################################
# Guacamole PostgreSQL authentication extension properties section            #
###############################################################################

postgresql-username: <db-user-name>
postgresql-password: <db-user-password>
postgresql-url: jdbc:postgresql://<db-host>:<dp-port>/<db_name>

postgresql-default-max-connections-per-user: 1
postgresql-batch-size: 5000
## Timeout value '0' means there will be no timeout applied
postgresql-default-statement-timeout: 0
postgresql-socket-timeout: 0

## To enable SSL connection mode for DB uncomment the following parameters
## Use value 'required' for secure connections without certificates verification
## Use value 'verify-ca' for secure connections with certificates verification (but without hostname verification)
## Use value 'verify-full' for secure connections with certificates and hostname verifications
#postgresql-ssl-mode: verify-full
#postgresql-ssl-cert-file: /opt/osmax-ira-guacamole-client/postgresql.crt
#postgresql-ssl-key-file: /opt/osmax-ira-guacamole-client/postgresql.pk8
#postgresql-ssl-key-password: <ssl-key-file-password>
#postgresql-ssl-root-cert-file: /opt/osmax-ira-guacamole-client/root.crt

###############################################################################
# Guacamole LDAP authentication extension properties section                  #
###############################################################################

ldap-hostname: <ldap-host>
## To override default value of the LDAP port uncomment and set the parameter below.
## Otherwise, the LDAP port will be defined from 'ldap-encryption-method' parameter.
## For 'ssl' mode it will be 636, for 'none' and 'starttls' it will be 389
#ldap-port: 389

# LDAP integration parameters
ldap-user-base-dn: DC=domain,DC=local
ldap-group-base-dn: DC=domain,DC=local
ldap-username-attribute: sAMAccountName
ldap-group-name-attribute: sAMAccountName
ldap-member-attribute-type: dn
ldap-member-attribute: member
ldap-group-search-filter: (objectClass=*)
ldap-user-search-filter: (objectClass=*)
ldap-search-bind-dn: DC=domain,DC=local
ldap-search-bind-password: <password>

## To enable SSL connection mode for LDAP uncomment the following parameters:
## Use value 'ssl' for LDAPS connection
## Use value 'starttls' for secure connections to be negotiated over standard LDAP port for non-encrypted connections
#ldap-encryption-method: ssl
#ldap-ssl-truststore-path: /etc/ssl/certs/java/cacerts
#ldap-ssl-truststore-password: changeit
## Optionally if truststore specified by path is not in standard JKS format,
## use parameter below for specifying the truststore type (should be compatible with JSSE)
#ldap-ssl-truststore-type: jks
## For disabling SSL connection verification you can use option below
#ldap-trust-all-certs: true

###############################################################################
# Logging section                                                             #
###############################################################################

## Log level for root application logger
log-level: info

## Application main log file configuration
log-file: /var/log/osmax/ira-guacamole-client/osmax-ira-guacamole-client.log
log-file-rotation-suffix: yyyy-MM-dd
log-file-rotation-max-file-size: 10MB
log-file-rotation-max-history: 5

## Application audit log file configuration
audit-log-file: /var/log/osmax/ira-guacamole-client/audit-osmax-ira-guacamole-client.log
audit-log-file-rotation-suffix: yyyy-MM-dd
audit-log-file-rotation-max-file-size: 10MB
audit-log-file-rotation-max-history: 5

Параметры подключения к HTTP-серверу

Наименование Описание Значение по умолчанию/Шаблон значения Пример значения

application-server-port

Основной порт подключения

8080

8080

Параметры подключения к HTTPS-серверу

Настройки, описанные в разделе, являются опциональными и используются, только при подключении по протоколу SSL.
Наименование Описание Значение по умолчанию/Шаблон значения Пример значения

application-server-ssl

Возможные значения:

  • true — включение выполнения запросов по HTTPS;

  • false — выключение выполнения запросов по HTTPS

true

application-server-ssl-keystore-path

Путь к хранилищу (keystore-файлу), где хранятся закрытые ключи и сертификаты, необходимые для установки защищенного HTTPS-соединения

/opt/osmax-ira-guacamole-client/keystore.jks

application-server-ssl-keystore-password

Пароль для доступа к keystore-файлу

keystore@12345

application-server-ssl-keystore-type

Опционально: если хранилище ключей не в формате JKS, укажите тип хранилища сертификатов, совместимый с JSSE

jks

Параметры сервера Guacamole

Наименование Описание Значение по умолчанию/Шаблон значения Пример значения

guacd-hostname

Имя хоста guacd-сервера

<guacamole server hostname>

localhost

guacd-port

Порт guacd-сервера

4822

4822

ignore-certs-in-rdp-connections

Возможные значения:

  • true — игнорировать проверки сертификатов при установлении RDP-соединений;

  • false — не игнорировать проверки сертификатов при установлении RDP-соединений

true

true

clipboard-encoding-in-vnc-connections

Кодировка для буфера обмена в VNC-соединениях

UTF-8

UTF-8

api-session-timeout

Время ожидания (в минутах) для неактивных сессий API

60

60

Блок опциональных параметров, которые задаются при использовании SSL-соединения

guacd-ssl

Возможные значения:

  • true — использовать SSL-соединение;

  • false — не использовать SSL-соединение

false

false

guacd-ssl-truststore-path

Путь к файлу хранилища доверенных сертификатов (truststore), который содержит сертификаты доверенных центров сертификации

/etc/ssl/certs/java/cacerts

/etc/ssl/certs/java/cacerts

guacd-ssl-truststore-password

Пароль для доступа к хранилищу доверенных сертификатов

changeit

12345

guacd-ssl-truststore-type

Опционально: если хранилище ключей не в формате JKS, укажите тип хранилища сертификатов, совместимый с JSSE

jks

jks

Параметры расширения свойств Guacamole

Наименование Описание Значение по умолчанию/Шаблон значения Пример значения

extension-priority

Порядок загрузки расширений

postgresql,ldap,quickconnect,*

postgresql,ldap,quickconnect,*

Параметры подключение к БД PostgreSQL

Наименование Описание Значение по умолчанию/Шаблон значения Пример значения

postgresql-username

Имя пользователя БД PostgreSQL

<db-user-name>

osmax

postgresql-password

Пароль пользователя БД PostgreSQL

<db-user-password>

12345

postgresql-url

Строка подключения к базе данных PostgreSQL. Можно указать несколько хостов с портами через запятую для отказоустойчивости; в простом варианте (не отказоустойчивом) достаточно одной пары хост/порт

jdbc:postgresql://<db-host>:<dp-port>/<db_name>

jdbc:postgresql://host1:port1,host2:port2/database

postgresql-default-max-connections-per-user

Максимальное количество соединений с базой данных PostgreSQL, которое может установить один пользователь

1

1

postgresql-batch-size

Количество объектов, которые можно получить из базы данных за один запрос

5000

5000

postgresql-default-statement-timeout

Время ожидания ответа от БД в секундах

0

0

postgresql-socket-timeout

Время ожидания выполнения операций чтения сокета

0

0

Блок опциональных параметров, которые задаются при использовании SSL-соединения

postgresql-ssl-mode:

Возможные значения:

  • required — для безопасных подключений без проверки сертификатов;

  • verify-ca — для безопасных подключений с проверкой сертификатов (но без проверки имени хоста);

  • verify-full — для безопасных подключений с сертификатами и проверкой имени хоста

verify-full

verify-full

postgresql-ssl-cert-file

Файл, содержащий SSL-сертификат клиента, который используется при установке соединения с сервером Postgres в формате PEM

/opt/osmax-ira-guacamole-client/postgresql.crt

/opt/osmax-ira-guacamole-client/postgresql.crt

postgresql-ssl-key-file

Файл, содержащий закрытый ключ клиента

/opt/osmax-ira-guacamole-client/postgresql.pk8

/opt/osmax-ira-guacamole-client/postgresql.pk8

postgresql-ssl-key-password

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

<ssl-key-file-password>

12345

postgresql-ssl-root-cert-file

Файл, содержащий корневой и промежуточный сертификаты

/opt/osmax-ira-guacamole-client/root.crt

/opt/osmax-ira-guacamole-client/root.crt

Параметры LDAP

Наименование Описание Значение по умолчанию/Шаблон значения Пример значения

ldap-hostname

Имя хоста LDAP-сервера

<ldap-host>

ldap-port

Опциональный параметр. Имя порта LDAP-сервера

389 или 636 (в зависимости от значения параметра ldap-encryption-method)

389

ldap-user-base-dn

Базовый DN для всех пользователя Guacamole

DC=domain,DC=local

DC=domain,DC=local

ldap-group-base-dn

Базовый DN для все пользовательских групп

DC=domain,DC=local

DC=domain,DC=local

ldap-username-attribute

Атрибут, который содержит имя пользователя во всех объектах пользователей Guacamole в каталоге LDAP

sAMAccountName

sAMAccountName

ldap-group-name-attribute

Атрибут, определяющий уникальные имена групп пользователей в каталоге LDAP

sAMAccountName

sAMAccountName

ldap-member-attribute-type

Атрибут, указывающий тип атрибута (заданного в парамтере ldap-member-attribute), который определяет членство пользователя в группе

dn

dn

ldap-member-attribute

Атрибут, содержащий участников всех групповых объектов в каталоге LDAP

member

member

ldap-group-search-filter

Фильтр, который определяет условия поиска для получения всех записей группы из LDAP

(objectClass=*)

(objectClass=group)

ldap-user-search-filter

Фильтр, который определяет условия поиска для получения всех записей пользователя из LDAP

Например, чтобы только члены группы CN=RCUsers,CN=Users,DC=windomain1,DC=com имели доступ к УД, задайте значение вида: (&(objectClass=user)(memberOf:1.2.840.113556.1.4.1941:=CN=RCUsers,CN=Users,DC=windomain1,DC=com))

(objectClass=*)

(objectClass=*)

ldap-search-bind-dn

DN пользователя для подключения к LDAP-серверу в формате: CN=RCUser,CN=Users,DC=windomain1,DC=com

DC=domain,DC=local

DC=domain,DC=local

ldap-search-bind-password

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

<password>

122345

Блок опциональных параметров, которые задаются при использовании SSL-соединения

ldap-encryption-method

Механизм шифрования LDAP-сервера. Возможные значения:

  • ssl — для взаимодействия с LDAP через SSL/TLS;

  • starttls — для STARTTLS;

  • none — не использовать шифрование

none

none

ldap-ssl-truststore-path

Путь к файлу хранилища доверенных сертификатов (truststore), который содержит сертификаты доверенных центров сертификации

/etc/ssl/certs/java/cacerts

/etc/ssl/certs/java/cacerts

ldap-ssl-truststore-password

Пароль для доступа к хранилищу доверенных сертификатов

changeit

12345

ldap-ssl-truststore-type

Опционально: если хранилище ключей не в формате JKS, укажите тип хранилища сертификатов, совместимый с JSSE

jks

jks

ldap-trust-all-certs

Параметр позволяет принудительно отключить проверку SSL-сертификатов при установке защищенного соединения.

Если параметр не задан в файле, система будет считать, что установлено значение false Возможные значения:
  • true — клиент LDAP игнорирует проверки SSL-сертификатов;

  • false —  клиент LDAP проверяет SSL-сертификаты

true

true

Параметры журналирования и аудита

Наименование Описание Значение по умолчанию/Шаблон значения Пример значения

log-level

Настройка уровня логирования. Возможные значения:

  • error — сообщение об ошибке, которая привела к некритическому сбою программы;

  • warn — предупреждение о потенциальной проблеме или необычном состоянии, которое не является ошибкой, но требует внимания;

  • info — информационное сообщение о ходе работы программы, которое может быть полезно для мониторинга и отладки;

  • debug — детальная отладочная информация, которая помогает разработчикам выявлять и исправлять проблемы в коде;

  • trace — cамый низкий уровень важности, предоставляющий еще более детальную информацию, которая используется для отслеживания каждого шага алгоритма или функции

info

info

log-file

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

/var/log/osmax/ira-guacamole-client/osmax-ira-guacamole-client.log

/var/log/osmax/ira-guacamole-client/osmax-ira-guacamole-client.log

log-file-rotation-suffix

Формат суффикса для ротации файлов журнала

yyyy-MM-dd

yyyy-MM-dd

log-file-rotation-max-file-size

Максимальный размер одного файла с логами, при достижении которого производится ротация (создается следующий файл и продолжается запись)

10MB

10MB

log-file-rotation-max-history

Предельное количество сохраняемых файлов с логами при ротации

5

5

audit-log-file

Путь к основному файлу, в который записываются логи аудита

/var/log/osmax/ira-guacamole-client/audit-osmax-ira-guacamole-client.log

/var/log/osmax/ira-guacamole-client/audit-osmax-ira-guacamole-client.log

audit-log-file-rotation-suffix

Формат суффикса для ротации файлов логов аудит

yyyy-MM-dd

yyyy-MM-dd

audit-log-file-rotation-max-file-size

Максимальный размер одного файла с логами аудита, при достижении которого производится ротация (создается следующий файл и продолжается запись)

10MB

10MB

audit-log-file-rotation-max-history

Предельное количество сохраняемых файлов с логами аудита при ротации

5

5

Установка на агенте (minion)

Для настройки удаленного доступа на агенте (minion) по протоколам VNC, RDP, SSH, задайте конфигурацию соответствующей формулы: