Поиск по сайту:

Как установить Apache Guacamole на Debian 11


На этой странице

  1. Предпосылки
  2. Установка зависимостей сборки
  3. Установка Apache Tomcat 9
  4. Сборка гуакамоле-сервера
  5. Настройка сервера гуакамоле
  6. Установка клиентского веб-приложения Guacamole
  7. Настройка обратного прокси-сервера Nginx для гуакамоле
  8. Проверьте установку Apache Guacamole
  9. Заключение

Apache Guacamole — это бесплатный шлюз удаленного рабочего стола с открытым исходным кодом, который позволяет вам удаленно подключаться к вашему компьютеру/серверу с использованием различных протоколов, таких как SSH, RDP и VNC. Apache Guacamole поддерживается Apache Software Foundation и лицензируется Apache License 2.0. =div-gpt-ad-howtoforge_com-box-3-0;var ffid=1;var alS=1002%1000;var container=document.getElementById(slotId);container.style.width=100%;var ins=document .createElement(ins);ins.id=slotId+-asloaded;ins.className=adsbygoogle ezasloaded;ins.dataset.adClient=pid;ins.dataset.adChannel=cid;if(ffid==2){ins.dataset.fullWidthResponsive =правда;}

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

В этом руководстве вы установите и настроите Apache Guacamole на Debian 11 Bullseye. Это включает в себя установку некоторых зависимостей пакетов и Apache Tomcat 9, затем сборку сервера Guacamole и установку Java-приложения, веб-приложения Guacamole. В конце вы настроите Nginx в качестве обратного прокси-сервера для веб-приложения Guacamole, который позволит вам получить доступ к вашим серверам из любого места, если у вас есть веб-браузер.

Предпосылки

Для выполнения этого руководства вам потребуются следующие требования:

  • Сервер с оперативной памятью не менее 2 ГБ под управлением Debian 11 Bullseye.
  • Пользователь или пользователь без полномочий root с привилегиями root.
  • Базовые знания по редактору nano. Или вы можете использовать предпочитаемый вами редактор, например vim.

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

Сначала вы установите некоторые зависимости сборки для сборки сервера Apache Guacamole. Сюда входят некоторые базовые пакеты, такие как libvncserver-dev, обеспечивающий поддержку протокола VNC, libssh2-1 для протокола SSH, freerdp2-dev для протокола RDP и libwebsockets-dev для поддержки Kubernetes.

Обратите внимание: вы не будете устанавливать libtelnet-dev для поддержки Telnet. Это связано с тем, что telnet считается старым протоколом и небезопасным.

1. Теперь обновите список пакетов, выполнив приведенную ниже команду apt.

sudo apt update

2. После этого установите зависимости для сборки сервера Apache Guacamole, выполнив следующую команду.

sudo apt install -y freerdp2-dev libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libcairo2-dev libjpeg62-turbo-dev libjpeg-dev libpng-dev libtool-bin libpango1.0-dev libpango1.0-0 libssh2-1 libwebsockets16 libwebsocketpp-dev libossp-uuid-dev libssl-dev libwebp-dev libvorbis-dev libpulse-dev libwebsockets-dev libvncserver-dev libssh2-1-dev openssl

Выполнение этой команды может занять некоторое время, в зависимости от подключения вашего сервера к Интернету.

Установка Apache Tomcat 9

После установки зависимостей сборки вы установите Apache Tomcat 9. Этот пакет требуется для веб-приложения Guacamole, которое представляет собой веб-приложение, написанное на Java.

1. Выполните следующую команду, чтобы установить Apache Tomcat 9 в вашу систему.

sudo apt install -y tomcat9 tomcat9-admin tomcat9-common tomcat9-user

2. После установки Apache Tomcat 9 запустите и включите службу Apache Tomcat, выполнив приведенную ниже команду. В системах на основе Debian Apache Tomcat 9 поставляется со службой tomcat9.

sudo systemctl enable --now tomcat9

3. Теперь, если все в порядке, проверьте состояние службы tomcat9, выполнив приведенную ниже команду.

sudo systemctl status tomcat9

Вы получите следующий вывод. Убедитесь, что служба tomcat9 активна (работает).

Компиляция гуакамоле-сервера

В этом разделе вы скачаете и скомпилируете сервер Guacamole. Это основной компонент Apache Guacamole, содержащий библиотеки для подключения к удаленным серверам и рабочим столам. Сервер Guacamole содержит библиотеку C libguacd и все библиотеки для поддерживаемых протоколов, а также сердце Guacamole, guacd.

guacd обрабатывает все клиентские подключения, которые туннелируются из веб-приложения гуакамоле, а затем подключается к удаленным серверам и рабочим столам от их имени. Создав и скомпилировав сервер Guacamole, вы получите новый сервис guacd в своей системе.

1. Начните с перехода рабочего каталога к /usr/src. Весь исходный код для сборки и компиляции находится в этом каталоге.

cd /usr/src

2. Теперь вы загрузите исходный код сервера Guacamole, выполнив приведенную ниже команду wget. Обязательно посетите страницу загрузки гуакамоле и скопируйте последнюю версию гуакамоле-сервера. На момент написания этой статьи последняя версия — 1.3.0.

wget https://dlcdn.apache.org/guacamole/1.3.0/source/guacamole-server-1.3.0.tar.gz

3. Затем извлеките исходный код, и вы получите новый каталог guacamole-server-VERSION-NUMBER. Перейдите в этот каталог.

tar -xzvf guacamole-server-1.3.0.tar.gz
cd guacamole-server-*/

4. Теперь проверьте все системные требования для создания сервера Guacamole и настройте среду, выполнив следующую команду. Параметр --with-systemd-dir=/etc/systemd/system/ используется для настройки служебного файла systemd, который будет доступен в каталоге /etc/systemd/system/ .

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

Вы получите вывод, подобный этому:

------------------------------------------------
guacamole-server version 1.3.0
------------------------------------------------

   Library status:

     freerdp2 ............ yes
     pango ............... yes
     libavcodec .......... yes
     libavformat.......... yes
     libavutil ........... yes
     libssh2 ............. yes
     libssl .............. yes
     libswscale .......... yes
     libtelnet ........... no
     libVNCServer ........ yes
     libvorbis ........... yes
     libpulse ............ yes
     libwebsockets ....... yes
     libwebp ............. yes
     wsock32 ............. no

   Protocol support:

      Kubernetes .... yes
      RDP ........... yes
      SSH ........... yes
      Telnet ........ no
      VNC ........... yes

   Services / tools:

      guacd ...... yes
      guacenc .... yes
      guaclog .... yes

   FreeRDP plugins: /usr/lib/x86_64-linux-gnu/freerdp2
   Init scripts: no
   Systemd units: /etc/systemd/system/

Type "make" to compile guacamole-server.

Ознакомьтесь с разделами Статус библиотек и Поддержка протокола. Вы можете настроить поддержку протоколов, установив дополнительные зависимости и библиотеки.

5. Далее скомпилируйте и установите Guacamole-сервер, выполнив приведенную ниже команду.

make
make install

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

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

sudo ldconfig

В этом разделе вы установили пакет Guacamole-server. Далее вы создадите некоторые необходимые конфигурации для сервера Guacamole.

Настройка гуакамоле-сервера

Чтобы заставить сервер Guacamole работать, вы должны создать каталог конфигурации /etc/guacamole/, а затем создать новый файл guacamole.properties в качестве конфигурации сервера Guacamole по умолчанию, файл logback.xml для системы ведения журнала Guacamole и файл user-mapping.xml для определения аутентификации пользователей Guacamole и подключений к удаленным серверам и рабочим столам.

1. Для начала выполните следующую команду, чтобы создать новый каталог /etc/guacamole/ в дополнительных каталогах extensions и lib внутри. Затем добавьте переменную среды GUACAMOLE_HOME=/etc/guacamole в файл /etc/default/tomcat9. Это укажет контейнеру сервлетов Tomcat 9 искать каталог GUACAMOLE_HOME в /etc/guacamole/.

mkdir -p /etc/guacamole/{extensions,lib}
echo 'GUACAMOLE_HOME=/etc/guacamole' >> /etc/default/tomcat9

2. Теперь создайте основную конфигурацию guacamole.properties с помощью nano или предпочитаемого вами редактора.

sudo nano /etc/guacamole/guacamole.properties

Введите следующую конфигурацию:

# Hostname and port of guacamole proxy
guacd-hostname: localhost
guacd-port:     4822

# user mapping and user connections
user-mapping:    /etc/guacamole/user-mapping.xml

  • Опция guacd-hostname определяет имя хоста или IP-адрес, на котором будет работать служба guacd. В этом руководстве для запуска службы guacd используется локальный хост.
  • Параметр guacd-port определяет порт по умолчанию для службы guacd. В этом руководстве для службы guacd используется порт 4822.
  • Опция сопоставления пользователей определяет конфигурацию файла для аутентификации пользователей и список доступных подключений. В этом руководстве файл /etc/guacamole/user-mapping.xml используется для определения пользователей и соединений для сервера Guacamole. Возможно, вам будет интересно использовать другой метод аутентификации, ознакомьтесь с документацией по гуакамоле.

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

3. Затем создайте новую конфигурацию loogback.xml для ведения журнала и отладки. По умолчанию Guacamole будет заходить только в консоль. Использование этой конфигурации позволяет Guacamole вести журнал через структуру ведения журнала Logback.

sudo nano /etc/guacamole/logback.xml

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

<configuration>

    <!-- Appender for debugging -->
    <appender name="GUAC-DEBUG" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- Log at DEBUG level -->
    <root level="debug">
        <appender-ref ref="GUAC-DEBUG"/>
    </root>

</configuration>

Сохраните и закройте файл конфигурации.

4. Теперь вы сгенерируете новый хэш пароля md5 и создадите новый файл для аутентификации пользователей и подключений гуакамоле.

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

echo -n StrongPasswordUserJohnDoe | openssl md5

Вы получите вывод хешированного пароля mod5. Скопируйте его себе в заметку.

(stdin)= aca22211ffcfb8aa8ad7627195ad4fce

5. После этого создайте новый файл user-mapping.xml с помощью редактора nano.

sudo nano /etc/guacamole/user-mapping.xml

Введите следующие конфигурации. И обязательно измените имя пользователя и пароль. Кроме того, загляните в раздел ... и добавьте сведения о подключении к серверам или рабочим столам.

<user-mapping>

    <!-- Another user, but using md5 to hash the password
         (example below uses the md5 hash of "PASSWORD") -->
    <authorize
            username="johndoe"
            password="aca22211ffcfb8aa8ad7627195ad4fce"
            encoding="md5">

        <!-- First authorized connection -->
        <connection name="SSH localhost">
            <protocol>ssh</protocol>
            <param name="hostname">localhost</param>
            <param name="port">22</param>
            <param name="username">johndoe</param>
            <param name="password">SSHPASSWORD</param>
        </connection>

        <!-- Second authorized connection -->
        <connection name="localhost">
            <protocol>vnc</protocol>
            <param name="hostname">localhost</param>
            <param name="port">5901</param>
            <param name="password">VNCPASS</param>
        </connection>

        <!-- Third authorized connection -->
        <connection name="otherhost">
            <protocol>vnc</protocol>
            <param name="hostname">otherhost</param>
            <param name="port">5900</param>
            <param name="password">VNCPASS</param>
        </connection>

    </authorize>

</user-mapping>

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

Теперь вы завершили настройку гуакамоле-сервера. Затем вы установите и настроите веб-приложение Guacamole, которое вы увидите в своем браузере.

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

В этом разделе вы установите веб-приложение Guacamole в свою систему. Это можно сделать, загрузив скомпилированный двоичный файл веб-приложения Guacamole и развернув его в каталоге Tomcat webaps.

1. Перейдите в рабочий каталог /usr/src и загрузите скомпилированное веб-приложение Guacamole .war с помощью команды wget. Обязательно посетите страницу загрузки гуакамоле и скопируйте ссылку на последнюю версию веб-приложения гуакамоле.

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

2. Теперь разверните двоичное приложение Java guacamole-VERSION.war в каталоге Tomcat /var/lib/tomcat9/webapps/, выполнив следующую команду. Это делает веб-приложение Guacamole доступным через контейнер сервлетов Apache Tomcat.

sudo cp guacamole-1.3.0.war /var/lib/tomcat9/webapps/guacamole.war

3. После этого перезапустите службу Tomcat 9, чтобы применить новое веб-приложение.

sudo systemctl restart tomcat9

4. Затем запустите и включите службу guacd, выполнив приведенную ниже команду.

sudo systemctl enable --now guacd

Затем проверьте это с помощью следующей команды.

sudo systemctl status guacd

Вы получите вывод, как на скриншоте ниже.

На этом этапе вы завершили установку серверного приложения Guacamole (внутренняя часть) и веб-приложения Guacamole (внешняя часть). Затем вы настроите Nginx в качестве обратного прокси-сервера для веб-приложения Guacamole.

Настройте обратный прокси Nginx для гуакамоле

В этом разделе вы установите веб-сервер Nginx и настроите его в качестве обратного прокси-сервера для веб-приложения Guacamole. Это позволяет настроить доменное имя для вашего веб-приложения Guacamole и защитить его с помощью SSL-сертификатов.

1. Для начала выполните следующую команду apt, чтобы установить пакеты Nginx.

sudo apt install nginx -y

2. После установки всех пакетов Nginx создайте новый файл виртуального хоста guacamole в каталоге /etc/nginx/sites-available. Все конфигурации, связанные с обратным прокси-сервером Guacamole, будут храниться в этом файле.

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

Введите следующую конфигурацию. И обязательно измените доменное имя и путь сертификатов SSL. В этом примере используется домен example.io с закрытым ключом SSL privkey.pem и открытым ключом fullchain.pem, а также сертификаты ботов, доступные по адресу каталог /etc/letsencrypt/live/exmaple.io/.

server {
    listen      80;
    server_name example.io;
    rewrite     ^   https://$server_name$request_uri? permanent;
}

server {
    listen      443 ssl http2;
    server_name example.io;

    root /var/www/html;
    index index.html;

    location / {
       try_files $uri $uri/ =404;
    }

    ssl_certificate /etc/letsencrypt/live/example.io/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.io/privkey.pem;

    access_log /var/log/nginx/guacamole-access.log;
    error_log /var/log/nginx/guacamole-error.log;

    location /guacamole/ {
        proxy_pass http://127.0.0.1:8080/guacamole/;
        proxy_buffering off;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $http_connection;
        access_log off;
    }
}

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

3. Теперь активируйте файл виртуального хоста guacamole, создав новую символическую ссылку на каталог /etc/nginx/sites-enabled/. Затем проверьте все конфигурации Nginx на наличие синтаксических ошибок.

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

Вы получите вывод Syntax OK, что означает, что в конфигурации нет ошибок.

4. Затем перезапустите службу Nginx, чтобы применить новую конфигурацию, затем проверьте ее состояние, выполнив следующую команду.

sudo systemctl restart nginx
sudo systemtl status nginx

Вы получите вывод, аналогичный скриншоту ниже. Служба Nginx активна (работает).

5. Кроме того, если вы хотите развернуть веб-приложение Guacamole с другим вложенным URL-адресом, измените параметр location /guacamole/ { ... } на новый путь location /new-path/ { ... } и добавьте параметр proxy_cookie_path к новому пути, как показано ниже.

location /new-path/ {
    proxy_pass http://127.0.0.1:8080/guacamole/;
    proxy_buffering off;
    proxy_http_version 1.1;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $http_connection;
    proxy_cookie_path /guacamole/ /new-path/;
    access_log off;
}

В этом разделе вы завершили установку и настройку Nginx в качестве обратного прокси-сервера для веб-приложения Guacamole. На этом ваша установка Apache Guacamole завершена, и она доступна с вашего доменного имени.

Проверка установки Apache Guacamole

В этом разделе вы проверите установку Apache Guacamole.

Прежде всего, откройте веб-браузер и введите доменное имя для установки гуакамоле с путем по умолчанию /guacamole.

Теперь вы увидите страницу входа в систему Guacamole ниже. Введите имя пользователя и пароль, которые вы настроили в файле user-mapping.xml, затем нажмите кнопку «Войти».

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

Щелкните имя соединения, чтобы подключиться к целевому серверу. Этот пример будет подключаться к локальному серверу по протоколу SSH.

Теперь вы увидите новый сеанс терминала ssh на вашем сервере.

Заключение

Поздравляем! Из этого руководства вы узнали, как установить Apache Guacamole на Debian 11 Bullseye. Кроме того, вы узнали, как настроить аутентификацию пользователей и подключения с помощью файла конфигурации user-mapping.xml и настроить Nginx в качестве обратного прокси-сервера для веб-приложения Guacamole, что позволяет запускать Guacamaloe с помощью доменное имя и защитите его с помощью SSL-сертификатов.