Установка ПО · 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, чтобы продолжить.

Установка зависимостей
С добавленными репозиториями в вашу систему теперь вы можете перейти к установке зависимостей пакетов для 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.

Установка 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).

Установка сервера MariaDB
Apache Guacamole поддерживает несколько методов аутентификации, включая аутентификацию через базу данных, LDAP, Radius, SAML и OpenID. В этом демонстрационном примере вы будете использовать аутентификацию через базу данных с помощью сервера MariaDB для Apache Guacamole.
Введите команду dnf ниже, чтобы установить сервер MariaDB. Когда будет предложено, введите y, чтобы подтвердить и нажмите ENTER.
sudo dnf install mariadb-server
Затем выполните следующую команду, чтобы запустить и включить службу mariadb.
sudo systemctl start mariadb
sudo systemctl enable mariadbЗатем проверьте службу mariadb, чтобы убедиться, что служба работает.
sudo systemctl status mariadbВывод должен быть active (running), когда статус mariadb работает.

Установка Nginx и Certbot
Теперь вы будете устанавливать Nginx, который будет использоваться в качестве обратного прокси для клиентского приложения Apache Guacamole, и Certbot для генерации SSL-сертификатов и защиты Apache Guacamole.
Запустите команду dnf ниже, чтобы установить Nginx и Certbot в вашу систему.
sudo dnf install nginx certbot python3-certbot-nginxВведите y, чтобы подтвердить установку и нажмите ENTER.

После завершения установки выполните команду systemctl ниже, чтобы запустить и включить службу Nginx.
sudo systemctl start nginx
sudo systemctl enable nginxЗатем проверьте службу Nginx, чтобы убедиться, что служба работает.
sudo systemctl status nginxВывод active (running) указывает на то, что 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
После завершения установки выполните следующую команду, чтобы перезагрузить кэш базы данных для системных библиотек.
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 и убедиться, что служба работает.
sudo systemctl status guacdПри успешной установке вы должны получить вывод службы guacd со статусом active (running).

Кроме того, вы также можете проверить службу 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 Get new posts in your inbox
No spam. Unsubscribe anytime.