Установка ПО · 8 min read · Nov 28, 2025

Как создать шлюз удаленного рабочего стола через Apache Guacamole на AlmaLinux 9

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

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

В этом руководстве мы проведем вас через установку Apache Guacamole в качестве шлюза удаленного рабочего стола на машине AlmaLinux 9. Вы установите Apache Guacamole с сервером базы данных MariaDB, Nginx в качестве обратного прокси, а затем защитите установку с помощью SSL от Letsencrypt.

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

Перед тем как начать, убедитесь, что у вас есть следующее:

  • Сервер AlmaLinux 9 — Этот демон использует машину AlmaLinux с именем хоста guacamole-alma9.
  • Непривилегированный пользователь, который имеет права на выполнение sudo.
  • Доменное имя, указывающее на IP-адрес сервера.

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

Первый шаг, который вы должны сделать, это настроить дополнительные репозитории на вашем сервере AlmaLinux. Вы должны добавить репозиторий EPEL и включить репозиторий CRB (Code Ready Builder), который является заменой PowerTools в RHEL 8, затем вы должны добавить репозиторий RPMFusion.

Запустите команду dnf ниже, чтобы установить некоторые основные зависимости и репозиторий EPEL в вашу систему. Введите y, чтобы подтвердить установку, затем нажмите ENTER.

sudo dnf install wget nano epel-release dnf-utils

установка основных зависимостей

Теперь выполните следующую команду, чтобы включить репозиторий AlmaLinux CRB (Code Ready Builder). В RHEL 8 этот репозиторий называется PowerTools, а с RHEL 9 название изменилось на CRB.

sudo dnf config-manager --set-enabled crb

Затем выполните следующую команду, чтобы добавить репозиторий RPMFusion в вашу систему AlmaLinux. Этот репозиторий предоставляет пакет ffmpeg-devel, который необходим для Apache Guacamole.

sudo dnf install --nogpgcheck https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-$(rpm -E %rhel).noarch.rpm \  
https://mirrors.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-$(rpm -E %rhel).noarch.rpm

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

включение репозитория CRB и установка RPMFusion

Установка зависимостей

С добавленными репозиториями в вашу систему теперь вы можете перейти к установке зависимостей пакетов для Apache Guacamole. Вы будете устанавливать следующие пакеты:

  • Основные зависимости для компиляции и установки guacd.
  • Java и Apache Tomcat для запуска веб-приложения Apache Guacamole, которое основано на Java.
  • Сервер базы данных MariaDB, который будет использоваться для аутентификации пользователей для Apache Guacamole.
  • Веб-сервер Nginx в качестве обратного прокси для веб-приложения Apache Guacamole.
  • Certbot для защиты доступа к Apache Guacamole.

Установка зависимостей для компиляции guacd

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

sudo dnf install cairo-devel libjpeg-turbo-devel libjpeg-devel libpng-devel libtool libuuid-devel uuid-devel make cmake ffmpeg-devel freerdp-devel pango-devel libssh2-devel libtelnet-devel libvncserver-devel libwebsockets-devel pulseaudio-libs-devel openssl-devel compat-openssl11 libvorbis-devel libwebp-devel libgcrypt-devel

установка зависимостей

Также введите y, чтобы добавить GPG-ключ репозитория RPMFusion и EPEL.

принять gpg ключ

Установка Java и Apache Tomcat

Теперь выполните команду ниже, чтобы установить Java 11 и Apache Tomcat 9 на ваш сервер AlmaLinux. Оба пакета поддерживаются Apache Guacamole, поэтому вы можете установить оба пакета из репозитория appstream AlmaLinux.

sudo dnf install java-11-openjdk-devel tomcat

Введите y, когда будет предложено, затем нажмите ENTER.

После установки Java и Apache Tomcat выполните команду java ниже, чтобы проверить версию Java. Вы должны увидеть, что Java OpenJDK 11 установлена на вашей системе.

java --version

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

sudo systemctl start tomcat  
sudo systemctl enable tomcat

Затем проверьте службу tomcat, чтобы убедиться, что служба работает.

sudo systemctl status tomcat

Если сервер tomcat работает, вывод должен быть active (running).

проверка статуса tomcat

Установка сервера MariaDB

Apache Guacamole поддерживает несколько методов аутентификации, включая аутентификацию через базу данных, LDAP, Radius, SAML и OpenID. В этом демонстрационном примере вы будете использовать аутентификацию через базу данных с помощью сервера MariaDB для Apache Guacamole.

Введите команду dnf ниже, чтобы установить сервер MariaDB. Когда будет предложено, введите y, чтобы подтвердить и нажмите ENTER.

sudo dnf install mariadb-server

установка mariadb

Затем выполните следующую команду, чтобы запустить и включить службу mariadb.

sudo systemctl start mariadb  
sudo systemctl enable mariadb

Затем проверьте службу mariadb, чтобы убедиться, что служба работает.

sudo systemctl status mariadb

Вывод должен быть active (running), когда статус mariadb работает.

проверка mariadb

Установка Nginx и Certbot

Теперь вы будете устанавливать Nginx, который будет использоваться в качестве обратного прокси для клиентского приложения Apache Guacamole, и Certbot для генерации SSL-сертификатов и защиты Apache Guacamole.

Запустите команду dnf ниже, чтобы установить Nginx и Certbot в вашу систему.

sudo dnf install nginx certbot python3-certbot-nginx

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

установка nginx certbot

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

sudo systemctl start nginx  
sudo systemctl enable nginx

Затем проверьте службу Nginx, чтобы убедиться, что служба работает.

sudo systemctl status nginx

Вывод active (running) указывает на то, что Nginx работает.

запуск включения проверки nginx

Настройка Firewalld

С установленными зависимостями пакетов следующим шагом вы настроите firewalld и откроете протоколы HTTP и HTTPS.

Запустите следующую команду, чтобы открыть протоколы HTTP и HTTPS на вашем сервере AlmaLinux. Затем перезагрузите firewalld, чтобы применить изменения.

sudo firewall-cmd --add-service={http,https} --permanent  
sudo firewall-cmd --reload

Теперь выполните команду firewall-cmd ниже, чтобы проверить список включенных правил на firewalld.

sudo firewall-cmd --list-all

В разделе протоколов вы должны увидеть, что оба протокола HTTP и HTTPS включены.

Настройка базы данных MariaDB

В следующем разделе вы защитите установку сервера MariaDB с помощью утилиты mariadb-secure-installation, а затем создадите новую базу данных MariaDB и пользователя для Apache Guacamole.

Сначала вы защитите сервер MariaDB с помощью утилиты mariadb-secure-installation. Запустите ее, чтобы защитить установку вашего сервера MariaDB.

sudo mariadb-secure-installation

В процессе введите y, чтобы применить конфигурацию, или n — нет. Ниже приведены некоторые конфигурации MariaDB, которые вы будете настраивать:

  • Переключить аутентификацию root MariaDB на unix_socket? Введите n.
  • Установить пароль root для MariaDB? Введите y, затем введите новый пароль и повторите.
  • Отключить удаленный вход для пользователя root? Введите y.
  • Удалить тестовую базу данных по умолчанию? Введите y снова.
  • Удалить анонимного пользователя по умолчанию? Введите y, чтобы подтвердить.
  • Перезагрузить привилегии таблиц, чтобы применить изменения? Введите y.

Затем войдите в сервер MariaDB, используя команду клиента mariadb ниже в качестве пользователя root. Когда будет предложено ввести пароль, введите пароль root для MariaDB или нажмите ENTER.

sudo mariadb -u root -p

После входа выполните следующие запросы, чтобы создать новую базу данных и пользователя для Apache Guacamole. В этом демонстрационном примере вы создадите новую базу данных guacamoledb, пользователя guacamole с паролем GuacamolePassword.

CREATE DATABASE guacamoledb;  
CREATE USER 'guacamole'@'localhost' IDENTIFIED BY 'GuacamolePassword';  
GRANT SELECT,INSERT,UPDATE,DELETE ON guacamoledb.* TO 'guacamole'@'localhost';  
FLUSH PRIVILEGES;

создание базы данных и пользователя

Затем выполните следующий запрос, чтобы проверить привилегии для пользователя guacamole.

SHOW GRANTS FOR 'guacamole'@'localhost';  
quit

Убедитесь, что пользователь guacamole может SELECT, INSERT, UPDATE и DELETE в базе данных guacamoledb.

показать привилегии пользователя

Установка сервера Apache Guacamole

Apache Guacamole состоит из двух компонентов:

  • guacd: Произвольный протокол удаленного рабочего стола, который может подключаться к RDP, SSH, VNC и другим.
  • Веб-приложение Guacamole: Контейнер сервлетов Java, который является фронтендом Apache Guacamole и может работать в Apache Tomcat.

Завершите следующие шаги, чтобы установить как guacd, так и веб-приложение Guacamole Java.

Компиляция и установка guacd

Переместите рабочий каталог в /usr/src и загрузите исходный код сервера Apache Guacamole с помощью wget.

cd /usr/src  
wget https://dlcdn.apache.org/guacamole/1.5.2/source/guacamole-server-1.5.2.tar.gz

После загрузки извлеките файл guacamole-server-1.5.2.tar.gz, и вы должны получить новый каталог guacamole-server-1.5.2. Перейдите в него с помощью cd.

tar -xf guacamole-server-1.5.2.tar.gz  
cd guacamole-server-*/

Теперь выполните следующую команду, чтобы настроить установку. В этом демонстрационном примере вы будете использовать дополнительный параметр –with-systemd-dir=, который автоматически создаст новый файл службы guacd.

./configure --with-systemd-dir=/etc/systemd/system/

настройка установки

После завершения процесса настройки убедитесь, что все имеет статус yes для статуса библиотеки, поддержки протоколов и служб/инструментов.

конфигурация модулей

Затем выполните следующую команду, чтобы скомпилировать и установить сервер Apache Guacamole guacd.

sudo make && sudo make install

компиляция и установка guacd

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

sudo ldconfig

Затем создайте новый каталог конфигурации /etc/guacamole и создайте конфигурацию guacd /etc/guacamole/guacd.conf с помощью редактора nano.

sudo mkdir -p /etc/guacamole/  
sudo nano /etc/guacamole/guacd.conf

Вставьте следующую конфигурацию для запуска службы guacd на localhost с портом 4822.

[server]  
bind_host = 127.0.0.1  
bind_port = 4822

Сохраните и выйдите из файла, когда закончите.

Затем выполните команду systemctl ниже, чтобы перезагрузить менеджер systemd.

sudo systemctl daemon-reload

Затем запустите и включите службу Apache Guacamole guacd, используя команду ниже.

sudo systemctl start guacd  
sudo systemctl enable guacd

запуск включения guacd

Наконец, выполните следующую команду, чтобы проверить службу guacd и убедиться, что служба работает.

sudo systemctl status guacd

При успешной установке вы должны получить вывод службы guacd со статусом active (running).

проверка службы guacd

Кроме того, вы также можете проверить службу guacd, убедившись, что порт 4822 на вашей системе.

ss -tulpn | grep 4822

Вывод должен показать, что служба guacd работает на localhost с портом 4822.

Установка веб-приложения Apache Guacamole

С установленным guacd теперь вы установите веб-приложение Apache Guacamole, которое является приложением сервлета Java.

Веб-приложение Apache Guacamole можно установить вручную, скомпилировав его из исходного кода, или установить его через пакет .war. В этом демонстрационном примере вы установите веб-приложение Apache Guacamole через файл .war.

Перейдите в каталог /usr/src и загрузите веб-приложение Apache Guacamole через команду wget.

cd /usr/src  
wget https://dlcdn.apache.org/guacamole/1.5.2/binary/guacamole-1.5.2.war

После загрузки выполните следующую команду, чтобы скопировать загруженный файл guacamole-1.5.2.war в каталог веб-приложений Apache Tomcat /var/lib/tomcat/webapps. С этим вы сможете получить доступ к веб-приложению Apache Guacamole через URL-адрес /guacamole.

sudo cp guacamole-1.5.2.war /var/lib/tomcat/webapps/guacamole.war

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

sudo systemctl restart tomcat

Настройка Apache Guacamole с аутентификацией MariaDB

Сначала выполните следующую команду, чтобы создать новые дополнительные каталоги extensions и lib в каталоге /etc/guacamole/. Затем создайте новую переменную окружения GUACAMOLE_HOME для конфигурации Apache Tomcat /etc/sysconfig/tomcat.

sudo mkdir -p /etc/guacamole/{extensions,lib}  
echo 
Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.