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

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


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

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

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

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

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

В этом руководстве мы покажем, как установить шлюз удаленного рабочего стола Apache Guacamole на сервер Ubuntu 18.04 LTS.

Предпосылки

  • Сервер под управлением Ubuntu 18.04.
  • На вашем сервере установлен пароль root.

Начиная

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

apt-get update -y
apt-get upgrade -y

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

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

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

apt-get install gcc-6 g++-6 libossp-uuid-dev libavcodec-dev libpango1.0-dev libssh2-1-dev libcairo2-dev libjpeg-turbo8-dev libpng-dev libavutil-dev libswscale-dev libfreerdp-dev libvncserver-dev libssl-dev libvorbis-dev libwebp-dev -y

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

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

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

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

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

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

Guacamole разделен на два компонента: guacamole-server, который предоставляет прокси-сервер guacd и связанные библиотеки, и guacamole-client, который предоставляет клиент, который будет обслуживаться вашим сервером Tomcat. По умолчанию сервер гуакамоле недоступен в стандартном репозитории Ubuntu 18.04. Поэтому вам нужно будет собрать его из исходников.

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

wget http://apachemirror.wuchna.com/guacamole/1.1.0/source/guacamole-server-1.1.0.tar.gz

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

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

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

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

После успешной настройки вы должны получить следующий вывод:

   Library status:

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

   Protocol support:

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

   Services / tools:

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

   FreeRDP plugins: no
   Init scripts: /etc/init.d
   Systemd units: no

Type "make" to compile guacamole-server.

Затем выполните следующую команду для компиляции guacamole-server:

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 Sat 2020-04-11 14:48:03 UTC; 7s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 28833 ExecStart=/etc/init.d/guacd start (code=exited, status=0/SUCCESS)
    Tasks: 1 (limit: 2359)
   CGroup: /system.slice/guacd.service
           ??28847 /usr/local/sbin/guacd -p /var/run/guacd.pid

Apr 11 14:48:03 ubuntu1804 systemd[1]: Starting LSB: Guacamole proxy daemon...
Apr 11 14:48:03 ubuntu1804 guacd[28834]: Guacamole proxy daemon (guacd) version 1.1.0 started
Apr 11 14:48:03 ubuntu1804 guacd[28833]: Starting guacd: guacd[28834]: INFO:        Guacamole proxy daemon (guacd) version 1.1.0 started
Apr 11 14:48:03 ubuntu1804 guacd[28833]: SUCCESS
Apr 11 14:48:03 ubuntu1804 systemd[1]: Started LSB: Guacamole proxy daemon.
Apr 11 14:48:03 ubuntu1804 guacd[28847]: Listening on host 127.0.0.1, port 4822

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

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

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

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

После завершения загрузки скопируйте его в каталог /etc/guacamole:

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

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

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

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

systemctl restart tomcat8
systemctl restart guacd

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

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

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

nano /etc/guacamole/guacamole.properties

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

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

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

mkdir /etc/guacamole/{extensions,lib}

Затем переменная среды домашнего каталога гуакамоле в файле конфигурации по умолчанию tomcat8.

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

Метод аутентификации по умолчанию гуакамолес считывает всех пользователей и соединения из одного файла с именем user-mapping.xml. Этот файл будет определять пользователя, которому разрешен доступ к веб-интерфейсу Guacamole, серверы для подключения и метод подключения.

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

echo -n yoursecurepassword | openssl md5

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

(stdin)= 55b38b03e7587a45fd886977842ff9b8

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

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

nano /etc/guacamole/user-mapping.xml

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

<user-mapping>
    <authorize 
            username="admin"
            password="55b38b03e7587a45fd886977842ff9b8"
            encoding="md5">

        <connection name="Ubuntu-Server">
            <protocol>ssh</protocol>
            <param name="hostname">192.168.0.150</param>
            <param name="port">22<param>
            <param name="username">root</param>
        </connection>
        <connection name="Windows Server">
            <protocol>rdp</protocol>
            <param name="hostname">192.168.0.100</param>
            <param name="port">3389</param>
        </connection>
    </authorize>
</user-mapping>

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

systemctl restart tomcat8
systemctl restart guacd

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

На этом этапе сервер гуакамоле установлен и настроен. Теперь пришло время получить к нему доступ через веб-браузер.

Откройте веб-браузер и введите URL-адрес http://ваш-сервер-ip:8080/guacamole/. Вы будете перенаправлены на страницу входа в систему Apache Guacamole:

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

Теперь нажмите на Ubuntu-Server, и вам будет предложено ввести пароль для пользователя, который вы определили в user-mapping.xml, как показано ниже:

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

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

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

apt-get install nginx -y

После установки создайте новый файл конфигурации виртуального хоста 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 на наличие синтаксической ошибки с помощью следующей команды:

nginx -t

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

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

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

systemctl restart nginx

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

Заключение

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