Как установить Apache Guacamole через Docker в Ubuntu 22.04

Apache Guacamole поддерживается Apache Software Foundation и находится под лицензией Apache 2.0.

Apache Guacamole — это шлюз удаленного рабочего стола без клиента. Вы можете получить доступ к Apache Guacamole, используя только веб-браузер, из любого места и в любое время. Вам следует использовать Apache Guacamole, если у вас есть несколько удаленных операционных систем с разными протоколами, например Windows с RDP и системы Linux с VNC и SSH.

В этом руководстве вы установите Apache Guacamole — шлюз удаленного рабочего стола/сервера — через Docker на сервере Ubuntu 22.04. Сюда входит установка и настройка Nginx в качестве обратного прокси-сервера для Apache Guacamole. Наконец, у вас будет Apache Guacamole, работающий как контейнер Docker и защищающий установку с помощью сертификата SSL/TLS на обратном прокси-сервере Nginx.

Предварительные условия

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

  1. Сервер Linux под управлением сервера Ubuntu 22.04.
  2. Пользователи без полномочий root имеют права администратора sudo/root.
  3. Доменное имя указывает на IP-адрес сервера.

Как только требования будут готовы, вы можете начать установку Apache Guacamole.

Установите Docker Engine и Docker Compose.

В этом руководстве вы запустите и установите Apache Guacamole в качестве контейнерной службы через Docker и Docker Compose. В этом примере используется новый сервер Ubuntu 22.04, поэтому включена установка Docker и Docker Compose.

Чтобы начать, запустите приведенную ниже команду apt, чтобы установить основные зависимости. Введите y при появлении запроса и нажмите ENTER, чтобы продолжить.

sudo apt install CA-сертификаты Curl GnupG LSB-Release

Выход:

Как установить Apache Guacamole через Docker в Ubuntu 22.04. Изображение 1.

Затем выполните приведенную ниже команду, чтобы добавить ключ GPG и репозиторий для пакетов Docker.

sudo mkdir -p /etc/apt/keyrings curl -fsSL | sudo gpg –dearmor -o /etc/apt/keyrings/docker.gpg echo “deb (arch=$(dpkg –print-architecture) Signed-by=/etc/apt/keyrings/docker.gpg) $(lsb_release -cs) стабильный” | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Выход:

Как установить Apache Guacamole через Docker в Ubuntu 22.04. Изображение 2.

Затем обновите индекс пакета Ubuntu с помощью приведенной ниже команды apt.

обновление sudo apt

Выход:

Как установить Apache Guacamole через Docker в Ubuntu 22.04. Изображение 3.

После добавления репозитория Docker вы можете установить движок Docker и плагин Docker Compose, используя приведенную ниже команду apt. При появлении запроса введите y и нажмите клавишу ВВОД, чтобы продолжить.

sudo apt install docker-ce docker-ce-cliContainerd.io docker-compose-plugin

Выход:

Как установить Apache Guacamole через Docker в Ubuntu 22.04. Изображение 4.

Служба Docker запустится и активируется автоматически. Вы можете проверить службу Docker с помощью следующей командной утилиты systemctl.

docker с включенным sudo systemctl docker sudo systemctl status

Вы получите результат, указывающий, что служба Docker включена и будет автоматически запускаться при запуске. И статус службы Docker — работает.

Наконец, чтобы разрешить пользователям без полномочий root запускать контейнеры Docker, вы должны добавить своего пользователя в группу «docker». Запустите команду usermod ниже, чтобы добавить пользователя в группу «docker». Также не забудьте изменить имя пользователя на своего пользователя.

sudo usermod -aG докер Алиса

Теперь вы можете войти в систему под своим пользователем и запустить контейнер Docker с помощью команды ниже.

su — Алиса Докер запускает hello-world

В случае успеха вы получите уведомление hello-world от контейнера Docker, как показано на следующем снимке экрана.

Как установить Apache Guacamole через Docker в Ubuntu 22.04. Рисунок 5.

После установки Docker и Docker Compose вы начнете создавать каталог проекта для развертывания Apache Guacamole.

Настройка каталога проекта

Сначала убедитесь, что вы вошли в систему как пользователь без полномочий root, выполнив следующую команду.

су – Алиса

Создайте новый каталог проекта «~/guacamole-server» и переместите в него свой рабочий каталог.

mkdir -p гуакамоле-сервер; cd гуакамоле-сервер/

Затем в каталоге «~/guacamole-server» создайте новый каталог «init» и файл «docker-compose.yml».

mkdir -p init touch docker-compose.yml

Затем выполните следующую команду docker pull, чтобы загрузить образы Docker, необходимые для установки Apache Guacamole. Вы загрузите 3 разных образа: guacd в качестве прокси-менеджера, гуакамоле в качестве внешнего интерфейса Apache Guacamole и postgres:13 будет использоваться в качестве серверной части базы данных для контейнера Apache Guacamole.

docker pull гуакамоле/guacd docker pull гуакамоле/гуакамоле docker pull postgres:13

Загрузите образ guacd.

Как установить Apache Guacamole через Docker в Ubuntu 22.04. Изображение 6.

Скачать изображение гуакамоле.

Как установить Apache Guacamole через Docker в Ubuntu 22.04. Изображение 7.

Загрузите образ PostgreSQL 13.

Как установить Apache Guacamole через Docker в Ubuntu 22.04. Изображение 8.

После загрузки необходимых образов Docker выполните следующую команду, чтобы запустить новый контейнер гуакамоле, и запустите сценарий initdb.sh, чтобы создать схему базы данных для вашего развертывания. Вы создадите схему базы данных гуакамоле как «init/initdb.sql».

docker run –rm guacamole/guacamole /opt/guacamole/bin/initdb.sh –postgres > init/initdb.sql

Проверьте содержимое схемы базы данных гуакамоле с помощью команды cat ниже.

кот init/initdb.sql

Выход:

Как установить Apache Guacamole через Docker в Ubuntu 22.04. Рисунок 9.

Настройте docker-compose.yml

Теперь, когда необходимые образы Docker загружены, вы можете приступить к настройке сценария docker-compose.yml и настройке установки Apache Guacamole.

Начните с открытия файла конфигурации docker-compose.yml с помощью следующей команды редактора nano.

нано docker-compose.yml

Добавьте в файл следующие строки.

версия: ‘3.7’ # сети сети: guacnet: драйвер: мост # службы службы: guacd: имя_контейнера: guac_guacd изображение: guacamole/guacd сети: guacnet: перезапуск: всегда postgres: имя_контейнера: среда guac_postgres: PGDATA: /var/lib/postgresql /data/guacamole POSTGRES_DB: guacamole_db POSTGRES_PASSWORD: ‘ChangeThisPassword’ POSTGRES_USER: изображение guacamole_user: postgres:13 сети: guacnet: перезапуск: всегда тома: – ./init:/docker-entrypoint-initdb.d:ro – ./data:/ var/lib/postgresql/data:rw гуакамоле: имя_контейнера: гуак_гуакамоле зависит_он: – guacd – среда postgres: GUACD_HOSTNAME: guacd POSTGRES_DATABASE: guacamole_db POSTGRES_HOSTNAME: postgres POSTGRES_PASSWORD: ‘ChangeThisPassword’ POSTGRES_USER: образ guacamole_user: Ссылки на гуакамоле/гуакамоле: – сети guacd: guacnet: порты: – 8080:8080/перезапуск TCP: всегда

По завершении сохраните и закройте файл docker-compose.yml.

С помощью этого скрипта docker-compose.yml вы создадите 3 контейнера/сервиса следующим образом:

  1. guacd – основной компонент Apache Guacamole будет использоваться для проксирования многих протоколов, таких как SSH, RDP, VNC и т. д.
  2. postgres — серверная часть базы данных для вашей установки Apache Guacamole. Ваши данные будут храниться в этом контейнере.
  3. guacamole — веб-приложение Apache Guacamole, подключенное к службам PostgreSQL и guacd. Этот контейнер предоставит порт 8080 на вашем сервере.

Запустить Apache Гуакамоле

Прежде чем начать, убедитесь, что вы находитесь в каталоге проекта «guacamole-server». Затем выполните следующую команду docker compose, чтобы создать и начать развертывание Apache Guacamole.

докер составить -d

Вы получите такой вывод: созданы и запущены 3 разных контейнера guac_postgres, guac_guacd и guac_guacamole.

Как установить Apache Guacamole через Docker в Ubuntu 22.04. Рисунок 10.

Проверьте список служб/контейнеров, работающих в вашем проекте Apache Guacamole, с помощью следующей команды.

докер составить PS

Если вы видите «СТАТУС» как «Вверх», значит, контейнер/служба запущена. В разделе «ПОРТЫ» вы увидите порты, отображаемые контейнером для хоста.

Контейнер «guac_guacamole» предоставляет TCP-порт 8080 как на контейнере, так и на узле Docker. Благодаря этому вы можете получить доступ к вашей установке Apache Guacamole.

Как установить Apache Guacamole через Docker в Ubuntu 22.04. Рисунок 11.

Откройте веб-браузер и перейдите по IP-адресу сервера, затем к порту 8080 (т. е.: ). Вы увидите страницу входа в Apache Guacamole.

Войдите в систему, используя пользователя по умолчанию «guacadmin» и пароль «guacadmin». Затем нажмите «Войти» для подтверждения.

Как установить Apache Guacamole через Docker в Ubuntu 22.04. Рисунок 12.

В случае успеха вы получите панель пользователя Apache Guacamole.

Как установить Apache Guacamole через Docker в Ubuntu 22.04. Рисунок 13.

При этом убедитесь, что установка Apache Guacamole через Docker и Docker Compose завершена и прошла успешно. Однако в рамках этого руководства необходимо предпринять некоторые действия для обеспечения безопасности развертывания Apache Guacamole.

Кроме того, при устранении ошибок при развертывании Apache Guacamole вы можете проверить журналы для каждого контейнера с помощью приведенной ниже команды docker compose.

Базовое использование Docker Compose для проверки журналов.

Docker Compose Logs Docker Compose Logs СЕРВИС

Проверьте журналы для конкретных контейнеров/сервисов с помощью команды docker compose.

docker Compose logs гуакамоле docker Compose logs guacd docker Compose logs postgres

Установите веб-сервер Nginx

В этом руководстве вы запустите Apache Guacamole с обратным прокси-сервером Nginx. В этом разделе вы установите веб-сервер Nginx и инструмент Certbot для создания сертификатов SSL/TLS. Затем вы проверите службу Nginx, чтобы убедиться, что она включена и работает.

Запустите следующую команду apt, чтобы установить плагины Nginx, Certbot и Certbot Nginx. Введите y, когда будет предложено подтверждение, и нажмите ENTER, чтобы продолжить.

sudo apt установить certbot nginx python3-certbot-nginx

Как установить Apache Guacamole через Docker в Ubuntu 22.04. Рисунок 14.

После установки Nginx и Certbot выполните следующую команду, чтобы проверить состояние службы Nginx. Это гарантирует, что служба Nginx включена и работает в вашей системе.

sudo systemctl включен nginx sudo systemctl status nginx

Выходные данные «включено» подтверждают, что служба Nginx включена и будет запускаться автоматически при загрузке системы. Выходные данные «активный (работает)» подтверждают, что служба Nginx запущена.

Как установить Apache Guacamole через Docker в Ubuntu 22.04. Рисунок 15.

Настройте брандмауэр UFW

После установки Nginx вам нужно настроить брандмауэр UFW, который по умолчанию установлен в вашей системе Ubuntu. В этом разделе вы добавите службу OpenSSH для открытия порта 22 и службу Nginx Full для открытия портов HTTP и HTTPS на ufw. Затем вы запустите и включите ufw. Наконец, вы проверите статус брандмауэра ufw.

Введите следующую команду, чтобы добавить службы OpenSSH и Nginx Full в брандмауэр ufw. Вывод «Правила обновлены» подтверждают, что в ufw добавлены новые правила.

sudo ufw разрешить OpenSSH sudo ufw разрешить «Nginx Full»

Затем введите следующую команду, чтобы запустить и включить брандмауэр ufw. Введите y при появлении запроса и нажмите ENTER, чтобы продолжить.

sudo ufw включить

Теперь вы получите вывод типа «Брандмауэр активен и включен при запуске системы», что означает, что брандмауэр ufw запущен, включен и запустится автоматически при запуске системы.

Как установить Apache Guacamole через Docker в Ubuntu 22.04. Рисунок 16.

Проверьте состояние брандмауэра ufw, введя следующую команду.

статус sudo ufw

Вы получите статус брандмауэра ufw как «активный», а включенные службы «OpenSSH» откроют порт SSH 22, а служба «Nginx Full» откроет порты HTTP и HTTPS.

Как установить Apache Guacamole через Docker в Ubuntu 22.04. Рисунок 17.

Настройте Nginx в качестве обратного прокси-сервера.

Чтобы защитить развертывание Apache Guacamole, вы будете использовать Nginx в качестве обратного прокси-сервера и включить на нем безопасные соединения HTTPS.

В этом разделе вы создадите новую блочную конфигурацию сервера Nginx, которая будет использоваться в качестве обратного прокси-сервера для Apache Guacamole, а затем создадите сертификат SSL/TLS через Certbot и Letsencrypt для защиты развертывания Apache Guacamole.

Создайте новую конфигурацию блока сервера Nginx «/etc/nginx/sites-available/guacamole.conf», используя следующую команду редактора nano.

sudo nano /etc/nginx/sites-available/guacamole.conf

Добавьте в файл следующие строки и обязательно измените имя домена в конфигурации ниже. При этом вы настроите Nginx в качестве обратного прокси-сервера для контейнера Apache Guacamole, который открыл порт 8080 на хосте Docker.

сервер {прослушать 80; имя_сервера guacamole.hwdomain.io; корень /вар/www/html; индекс index.html index.htm index.nginx-debian.html; access_log /var/log/nginx/guac_access.log; error_log /var/log/nginx/guac_error.log; местоположение / { proxy_pass proxy_buffering выключен; proxy_http_version 1.1; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Обновление $http_upgrade; proxy_set_header Соединение $http_connection; proxy_cookie_path /гуакамоле/ /; } }

Сохраните и закройте файл по завершении.

Затем выполните приведенную ниже команду, чтобы включить файл блокировки сервера Nginx «/etc/nginx/sites-available/guacamole.conf». Затем проверьте конфигурацию Nginx, чтобы убедиться, что у вас правильные настройки.

sudo ln -s /etc/nginx/sites-available/guacamole.conf /etc/nginx/sites-enabled/ sudo nginx -t

В случае успеха вы получите результат типа «тест успешен – синтаксис в порядке».

Теперь запустите следующую командную утилиту systemctl, чтобы перезапустить службу Nginx и применить изменения.

sudo systemctl перезапустить nginx

Выход:

Как установить Apache Guacamole через Docker в Ubuntu 22.04. Изображение 18.

На этом этапе Apache Guacamole работает с Nginx в качестве обратного прокси-сервера с вашим доменным именем — в этом примере используется доменное имя «guacamole.hwdomain.io». Теперь, чтобы защитить развертывание Apache Guacamole, вам необходимо создать сертификат SSL/TLS с помощью Certbot и Letsencrypt.

Введите следующую команду certbot, чтобы создать новый сертификат SSL для вашего виртуального сервера Nginx. Обязательно измените данные домена и адреса электронной почты в следующей команде.

sudo certbot –nginx –agree-tos –redirect –hsts –staple-ocsp –email alice@hwdomain.io -d guacamole.hwdomain.io

После создания ваш SSL-сертификат будет доступен в каталоге /etc/letsencrypt/live/guacamole.hwdomain.io/. Кроме того, блок вашего сервера Nginx будет автоматически изменен при включении SSL и автоматически перенаправлен с HTTP на HTTPS.

Посетите Апач Гуакамоле

Откройте веб-браузер и посетите домен установки Apache Guacamole (например, ).

Войдите в систему, используя пользователя и пароль по умолчанию «guacadmin».

Как установить Apache Guacamole через Docker в Ubuntu 22.04. Изображение 19.

В случае успеха вы получите панель пользователя Apache Guacamole.

Как установить Apache Guacamole через Docker в Ubuntu 22.04. Рисунок 20.

На этом этапе вы завершили установку Apache Guacamole через Docker и Docker Compose. Кроме того, вы настроили Nginx в качестве обратного прокси-сервера для Apache Guacamole и защитили его с помощью сертификата SSL/TLS от Letsencrypt.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *