Перейти к содержанию

Обзор развертывания Apache Guacamole на сервере

Предпосылки и предварительные требования

Для успешного развертывания приложения требуется сервер с одной из следующих операционных систем: - Debian - Ubuntu (включая версии Focal и Lunar) - RHEL (Red Hat Enterprise Linux)

Необходимы права доступа пользователя root или учетной записи с правами sudo для выполнения команд установки и конфигурации.

Система должна иметь доступ к интернету для загрузки исходного кода и бинарных файлов с репозитория Apache.

Структура файлов и каталогов

Конечная конфигурация приложения размещается в следующих директориях:

  • /etc/guacamole/ — основной каталог конфигурации Apache Guacamole.
  • /etc/guacamole/guacd.conf — файл конфигурации демона Guacamole.
  • /etc/guacamole/user-mapping.xml — файл маппинга пользователей.
  • /etc/guacamole/extensions/ — каталог для расширений.
  • /etc/guacamole/lib/ — каталог для библиотек.
  • /var/lib/tomcat9/webapps/guacamole.war — файл веб-приложения Tomcat.
  • /etc/default/tomcat9 — файл переменных окружения для Tomcat.
  • /root/nginx/ — каталог для конфигурации прокси-сервера (при использовании Docker).
  • /root/nginx/compose.yml — файл конфигурации Docker Compose.
  • /home/user/ — домашняя директория пользователя для графической сессии (при установке Xubuntu).
  • /home/user/.xsession — файл сессии для Xrdp.

Процесс установки приложения

Установка выполняется путем компиляции серверной части из исходного кода и развертывания веб-интерфейса через Tomcat.

  1. Устанавливаются необходимые системные библиотеки и утилиты. Для Debian/Ubuntu это пакеты: gawk, curl, dnsutils, make, libcairo2-dev, libjpeg62-turbo-dev, libpng-dev, libtool-bin, uuid-dev, libavcodec-dev, libavformat-dev, libavutil-dev, libswscale-dev, freerdp2-dev, libpango1.0-dev, libssh2-1-dev, libtelnet-dev, libvncserver-dev, libwebsockets-dev, libpulse-dev, libssl-dev, libvorbis-dev, libwebp-dev. Для RHEL используются аналогичные пакеты с суффиксом -devel.
  2. Определяется актуальная версия Apache Guacamole через запрос к репозиторию.
  3. Скачивается архив с исходным кодом guacamole-server-<версия>.tar.gz в директорию /root/.
  4. Архив распаковывается, выполняется конфигурация сборки командой ./configure --with-init-dir=/etc/init.d. В зависимости от версии Ubuntu могут добавляться флаги --disable-dependency-tracking, --disable-guacenc или переменная LDFLAGS="-lrt".
  5. Сборка и установка выполняются командами make и make install.
  6. Устанавливается веб-сервер tomcat9.
  7. Скачивается бинарный файл guacamole-<версия>.war и размещается в /var/lib/tomcat9/webapps/guacamole.war.
  8. Создаются директории /etc/guacamole/extensions и /etc/guacamole/lib.
  9. В файл /etc/default/tomcat9 добавляется переменная окружения GUACAMOLE_HOME=/etc/guacamole.
  10. Файл конфигурации guacd.conf копируется в /etc/guacamole/.
  11. Обновляется кэш динамических библиотек командой ldconfig.
  12. Генерируется хеш пароля для доступа и создается файл /etc/guacamole/user-mapping.xml.

Контейнеры Docker и их запуск

Для обеспечения работы прокси-сервера и получения SSL-сертификатов используется Docker.

  1. Устанавливается Docker Engine.
  2. Создается директория /root/nginx.
  3. Генерируется файл конфигурации compose.yml в директории /root/nginx.
  4. Запускаются контейнеры командой docker compose up -d из директории /root/nginx.

Конфигурация контейнеров включает: - Сервис nginx на основе образа jonasal/nginx-certbot:latest. - Режим сети host. - Монтирование тома nginx_secrets в /etc/letsencrypt. - Монтирование директории /data/nginx/user_conf.d в /etc/nginx/user_conf.d. - Переменная окружения CERTBOT_EMAIL=hkadm@hostkey.com.

Прокси серверы

Прокси-сервер развертывается в контейнере Docker с использованием образа jonasal/nginx-certbot:latest.

Конфигурация включает: - Автоматическое получение и обновление SSL-сертификатов через Certbot. - Электронная почта для уведомлений: hkadm@hostkey.com. - Хранение секретов в внешнем томе nginx_secrets. - Пользовательские конфигурации Nginx размещаются в /data/nginx/user_conf.d.

Настройки прав

Права доступа на файлы и директории устанавливаются следующим образом:

  • Директории /etc/guacamole/extensions и /etc/guacamole/lib: владелец root, группа root, права 0750 (на Debian/RHEL) или 0755 (на Ubuntu).
  • Файл /etc/guacamole/guacd.conf: владелец root, группа root, права 0644 (на Debian/RHEL) или 0755 (на Ubuntu).
  • Файл /etc/guacamole/user-mapping.xml: владелец root, группа root, права 0750 (на Debian/RHEL) или 0755 (на Ubuntu).
  • Файл /var/lib/tomcat9/webapps/guacamole.war: права 0755.
  • Файл /usr/local/bin/start-xubuntu: владелец root, группа root, права 0755.
  • Файл /home/user/.xsession: владелец user, группа user.
  • Файл /usr/lib/policykit-1/polkit-agent-helper-1: права 5755.

Запуск, остановка и обновление

Управление сервисами осуществляется через systemd.

Для запуска и включения автозагрузки демона Guacamole используется команда:

systemctl start guacd
systemctl enable guacd

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

systemctl restart tomcat9
systemctl enable tomcat9

При установке графической среды Xubuntu и Xrdp: - Сервис xrdp перезапускается и включается в автозагрузку:

systemctl restart xrdp
systemctl enable xrdp
- После установки графической среды может потребоваться перезагрузка сервера.

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

docker compose up -d
из директории /root/nginx.

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×