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

Как установить веб-клиент удаленного рабочего стола Guacamole на Ubuntu 20.04 LTS


Это руководство существует для этих версий ОС

  • Ubuntu 20.04 (Focal Fossa)
  • Ubuntu 18.04 (Bionic Beaver)

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

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

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

В этом руководстве мы покажем вам, как установить и настроить клиент удаленного рабочего стола Guacamole на сервере Ubuntu 20.04.

Предпосылки

  • Сервер под управлением Ubuntu 20.04 с оперативной памятью не менее 2 ГБ.
  • Пароль root настраивается на сервере.

Начиная

Во-первых, вам нужно будет обновить вашу систему до последней стабильной версии. Вы можете сделать это, обновив все системные пакеты с помощью следующей команды:

apt-get update -y

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

Установите необходимые зависимости

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

apt-get install make gcc g++ libcairo2-dev libjpeg-turbo8-dev libpng-dev libtool-bin libossp-uuid-dev libavcodec-dev libavutil-dev libswscale-dev freerdp2-dev libpango1.0-dev libssh2-1-dev libvncserver-dev libtelnet-dev libssl-dev libvorbis-dev libwebp-dev -y

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

Установите сервер Tomcat

Гуакамоле использует Tomcat для предоставления содержимого клиента гуакамоле пользователям, которые подключаются к серверу гуакамоле через веб-браузер. Поэтому сервер Tomcat должен быть установлен на вашем сервере. Если он не установлен, вы можете установить его с помощью следующей команды:

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

После установки сервера Tomcat запустите службу Tomcat и включите ее запуск при перезагрузке системы с помощью следующей команды:

systemctl start tomcat9
systemctl enable tomcat9

Вы также можете проверить состояние службы Tomcat с помощью следующей команды:

systemctl status tomcat9

Вы должны получить следующий результат:

? tomcat9.service - Apache Tomcat 9 Web Application Server
     Loaded: loaded (/lib/systemd/system/tomcat9.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2020-08-25 14:48:50 UTC; 29min ago
       Docs: https://tomcat.apache.org/tomcat-9.0-doc/index.html
    Process: 27982 ExecStartPre=/usr/libexec/tomcat9/tomcat-update-policy.sh (code=exited, status=0/SUCCESS)
   Main PID: 27990 (java)
      Tasks: 38 (limit: 4691)
     Memory: 241.5M
     CGroup: /system.slice/tomcat9.service
             ??27990 /usr/lib/jvm/default-java/bin/java -Djava.util.logging.config.file=/var/lib/tomcat9/conf/logging.properties -Djava.util.l>

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

Установить гуакамоле

По умолчанию пакет гуакамоле недоступен в стандартном репозитории Ubuntu 20.04. Поэтому вам нужно будет скомпилировать его из исходного кода.

Сначала загрузите последнюю версию гуакамоле с веб-сайта Apache, используя следующую команду:

wget https://downloads.apache.org/guacamole/1.1.0/source/guacamole-server-1.1.0.tar.gz

После завершения загрузки извлеките загруженный файл с помощью следующей команды:

tar -xvzf guacamole-server-1.1.0.tar.gz

Затем измените каталог на извлеченный каталог и запустите скрипт configure, чтобы проверить, отсутствует ли какая-либо требуемая зависимость:

cd guacamole-server-1.1.0
./configure --with-init-dir=/etc/init.d

Если все в порядке, вы должны увидеть следующий вывод:

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

   Protocol support:

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

   Services / tools:

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

   FreeRDP plugins: /usr/lib/x86_64-linux-gnu/freerdp2
   Init scripts: /etc/init.d
   Systemd units: no

Type "make" to compile guacamole-server.

Теперь скомпилируйте и установите сервер Guacamole, выполнив следующую команду:

make
make install

Затем выполните следующую команду, чтобы обновить системный кеш установленных библиотек:

ldconfig

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

systemctl enable guacd
systemctl start guacd

Теперь вы можете проверить статус службы гуакамоле с помощью следующей команды:

systemctl status guacd

Вы должны получить следующий результат:

? guacd.service - LSB: Guacamole proxy daemon
     Loaded: loaded (/etc/init.d/guacd; generated)
     Active: active (running) since Tue 2020-08-25 12:02:26 UTC; 4s ago
       Docs: man:systemd-sysv-generator(8)
    Process: 27536 ExecStart=/etc/init.d/guacd start (code=exited, status=0/SUCCESS)
      Tasks: 1 (limit: 4691)
     Memory: 10.1M
     CGroup: /system.slice/guacd.service
             ??27555 /usr/local/sbin/guacd -p /var/run/guacd.pid

Aug 25 12:02:26 ubunt4 systemd[1]: Starting LSB: Guacamole proxy daemon...
Aug 25 12:02:26 ubunt4 guacd[27551]: Guacamole proxy daemon (guacd) version 1.1.0 started
Aug 25 12:02:26 ubunt4 guacd[27536]: Starting guacd:
Aug 25 12:02:26 ubunt4 guacd[27551]: Starting guacd:
Aug 25 12:02:26 ubunt4 guacd[27551]: uacd[27551]: INFO:        Guacamole proxy daemon (guacd) versio
Aug 25 12:02:26 ubunt4 systemd[1]: Started LSB: Guacamole proxy daemon.
Aug 25 12:02:26 ubunt4 guacd[27555]: Listening on host 127.0.0.1, port 4822
Aug 25 12:02:26 ubunt4 guacd[27536]: uacd[275

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

Установить клиент гуакамоле

Далее вам нужно будет установить клиент Guacamole на ваш сервер. Клиент гуакамоле написан на Java и является кроссплатформенным. Это будет окончательное приложение HTML5, которое будет представлено вам.

Сначала загрузите двоичный файл Guacamole с помощью следующей команды:

wget https://mirrors.estointernet.in/apache/guacamole/1.1.0/binary/guacamole-1.1.0.war

После загрузки бинарного файла Guacamole скопируйте его в каталог /etc/guacamole с помощью следующей команды:

mkdir /etc/guacamole
mv guacamole-1.1.0.war /etc/guacamole/guacamole.war

Затем создайте символическую ссылку клиента гуакамоле на каталог веб-приложений Tomcat с помощью следующей команды:

ln -s /etc/guacamole/guacamole.war /var/lib/tomcat9/webapps/

Наконец, перезапустите службу Tomcat и Guacamole, чтобы развернуть новое веб-приложение:

systemctl restart tomcat9
systemctl restart guacd

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

Настроить гуакомоле

Далее вам нужно настроить пользователей и соединения, чтобы Гуакамоле работал правильно.

Сначала создайте основной файл конфигурации гуакамоле с именем guacamole.properties.

nano /etc/guacamole/guacamole.properties

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

guacd-hostname: localhost
guacd-port:    4822
user-mapping:    /etc/guacamole/user-mapping.xml

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

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

mkdir /etc/guacamole/{extensions,lib}

Затем установите переменную среды домашнего каталога гуакамоле и добавьте ее в файл конфигурации /etc/default/tomcat9.

echo "GUACAMOLE_HOME=/etc/guacamole" >> /etc/default/tomcat9

Затем вам нужно будет создать файл с именем user-mapping.xml, чтобы определить пользователя, которому разрешен доступ к веб-интерфейсу Guacamole.

Перед его созданием сгенерируйте хэш md5 для пароля с помощью следующей команды:

echo -n yoursecurepassword | openssl md5

Вы должны увидеть следующий вывод:

(stdin)= 55b38b03e7587a45fd886977842ff9b8

Примечание. Запомните указанный выше пароль md5. Вам нужно будет определить это в файле user-mapping.xml.

Затем создайте новый файл user-mapping.xml с помощью следующей команды:

nano /etc/guacamole/user-mapping.xml
<user-mapping>
    <authorize 
            username="admin"
            password="55b38b03e7587a45fd886977842ff9b8"
            encoding="md5">

        <connection name="Ubuntu20.04-Server">
            <protocol>ssh</protocol>
            <param name="hostname">192.168.10.50</param>
            <param name="port">22</param>
            <param name="username">root</param>
        </connection>
        <connection name="Windows Server">
            <protocol>rdp</protocol>
            <param name="hostname">192.168.10.51</param>
            <param name="port">3389</param>
        </connection>
    </authorize>
</user-mapping>

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

Где:

  • 192.168.10.50 — это IP-адрес удаленного сервера Ubuntu.
  • 192.168.10.51 — это IP-адрес удаленного сервера Windows.

Затем перезапустите службу Tomcat и Guacamole, чтобы изменения вступили в силу:

systemctl restart tomcat9
systemctl restart guacd

На данный момент сервер и клиент гуакамоле установлены и настроены.

Доступ к веб-интерфейсу гуакамоле

Теперь откройте веб-браузер и войдите в веб-интерфейс Guacamole, используя URL-адрес http://your-server-ip:8080/guacamole. Вы будете перенаправлены на страницу входа в систему Guacamole:

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

Теперь нажмите на Ubuntu20.04-Server, чтобы подключиться к удаленному серверу с использованием протокола SSH. Вы должны увидеть экран входа в систему сервера Ubuntu, как показано ниже:

Укажите корневой пароль вашего сервера Ubuntu и нажмите Enter. Вы войдете на сервер Ubuntu, как показано ниже:

Настройте Nginx для гуакамоле

Рекомендуется настроить Nginx в качестве обратного прокси-сервера для доступа к гуакамоле через порт 80.

Сначала установите веб-сервер Nginx с помощью следующей команды:

apt-get install nginx -y

После установки Nginx создайте новый файл конфигурации виртуального хоста Nginx:

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

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

server {
        listen 80;
        server_name your-server-ip;
        access_log  /var/log/nginx/guac_access.log;
        error_log  /var/log/nginx/guac_error.log;

        location / {
                    proxy_pass http://your-server-ip: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/ /;
        }

}

Сохраните и закройте файл, когда закончите. Затем включите виртуальный хост Nginx с помощью следующей команды:

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

Затем перезапустите службу Nginx, чтобы применить изменения конфигурации:

systemctl restart nginx

Теперь вы можете получить доступ к своему гуакамоле, используя URL-адрес http://your-server-ip.

Заключение

Поздравляем! вы успешно установили и настроили клиент удаленного рабочего стола Guacamole на сервере Ubuntu 20.04. Теперь вы можете добавить больше подключений RDP или VNC к своему гуакамоле и начать управлять ими из веб-интерфейса.