Обзор развертывания Apache Guacamole на сервере¶
Предварительные требования¶
Для корректной работы приложения требуются следующие параметры системы:
-
Операционная система: Ubuntu, Debian или RHEL (CentOS, Rocky Linux, AlmaLinux).
-
Права доступа: права суперпользователя (
root) для установки системных пакетов и компиляции исходного кода. -
Порты:
-
8080— внутренний порт приложения. -
443— внешний порт (через прокси). -
22— SSH (для управления сервером).
FDQN итоговой панели на домене hostkey.in¶
| Параметр | Значение |
|---|---|
| Префикс | guacamole |
| Домен | hostkey.in |
| Полный шаблон | guacamole{Server_ID}.hostkey.in/guacamole/ |
Структура файлов и каталогов¶
Основные директории, используемые в системе:
-
/etc/guacamole— конфигурационные файлы приложения (включая расширения и библиотеки). -
/var/lib/tomcat9/webapps/— рабочая директория веб-приложения. -
/root/nginx— конфигурация прокси-сервера Nginx. -
/data/nginx/user_conf.d— пользовательские настройки Nginx.
Процесс установки приложения¶
Процесс развертывания включает в себя несколько этапов: подготовку системы, компиляцию серверной части и настройку веб-интерфейса.
-
Подготовка среды: Установка системных зависимостей (библиотеки для работы с видео, аудио, графикой, RDP, VNC, SSH и др.).
-
Компиляция Guacamole Server:
-
Загрузка исходного кода версии
1.6.0(или актуальной доступной). -
Распаковка архива в директорию
/root/. -
Конфигурирование с помощью
./configureс указанием пути к системным инициализаторам (--with-init-dir=/etc/init.d). -
Компиляция и установка через
makeиmake install. -
Установка веб-сервера: Установка и запуск
tomcat9. -
Развертывание веб-интерфейса: Загрузка файла
guacamole.warв директорию веб-приложения Tomcat. -
Настройка окружения:
-
Создание конфигурационных файлов для Guacamole.
-
Настройка переменной
GUACAMOLE_HOMEв параметрах запуска Tomcat. -
Настройка графической оболочки (для Ubuntu): Установка рабочего стола
xubuntu-desktopи сервера удаленного доступаxrdp.
Права доступа и безопасность¶
-
Для работы сервиса создается системная группа
user. -
Пользователь в системе имеет домашнюю директорию
/home/user. -
Настройка
xrdpвключает изменение уровней шифрования для обеспечения совместимости. -
Конфигурационные файлы Guacamole имеют ограниченный доступ (права
0750или0644).
Базы данных¶
В данной конфигурации база данных не используется; аутентификация пользователей осуществляется через файл сопоставления имен (user-mapping.xml).
Контейнеры Docker и их запуск¶
Для обеспечения работы SSL-сертификатов и проксирования используется контейнер:
| Имя образа | Порты | Тома (volumes) | Переменные окружения | Политика перезапуска |
|---|---|---|---|---|
jonasal/nginx-certbot:latest | host mode | nginx_secrets:/etc/letsencrypt, /data/nginx/user_conf.d:/etc/nginx/user_conf.d | CERTBOT_EMAIL=hkadm@hostkey.com | unless-stopped |
Кастомные скрипты и дополнительные настройки¶
В процессе установки выполняются следующие действия:
-
Настройка X11 сессии: Создается файл
.xsessionв домашней директории пользователя для корректного запуска графической оболочки через RDP. -
Скрипт инициализации рабочего стола: Устанавливается вспомогательный скрипт
/usr/local/bin/start-xubuntuдля управления сессиями XFCE4. -
Настройка системных лимитов: Выполняется
ldconfigдля обновления кэша динамических библиотек после установки скомпилированного сервера.
Инструкция по обновлению приложения¶
Для обновления основного приложения необходимо:
-
Скачать новую версию исходного кода Guacamole Server.
-
Пересобрать и установить серверную часть (
make install). -
Заменить файл
guacamole.warна новую версию в директории/var/lib/tomcat9/webapps/. -
Перезапустить службу
tomcat9.
Расположение конфигурационных файлов и данных¶
-
Конфигурация пользователей:
/etc/guacamole/user-mapping.xml -
Основной конфиг сервера:
/etc/guacamole/guacd.conf -
Настройки Nginx (Docker):
/root/nginx/compose.yml
Доступные порты для подключения¶
-
443— доступ к веб-интерфейсу Guacamole через HTTPS. -
3389— протокол RDP (внутренний трафик).
Запуск, остановка приложения¶
Управление основными компонентами осуществляется через системный менеджер:
-
Запуск/перезапуск сервера Guacamole:
systemctl restart guacd -
Запуск/перезапуск веб-сервера:
systemctl restart tomcat9 -
Управление прокси-сервером (Docker): Переход в
/root/nginxи выполнениеdocker compose up -d.
Прокси серверы¶
Для обеспечения защищенного соединения используется Nginx с интеграцией Certbot. Сертификаты SSL управляются через Docker-контейнер, который автоматически получает и обновляет сертификаты Let's Encrypt для домена приложения.