Guacamole – это панель управления удаленным рабочим столом с открытым исходным кодом, используемая для управления системами Linux и Windows из веб-браузера. Он поддерживает стандартные протоколы, такие как VNC, RDP, SSH и Kubernetes, и на клиентском компьютере вам не нужно какое-либо дополнительное программное обеспечение . Guacamole поддерживает буфер обмена, передачу файлов через SFTP и позволяет управлять несколькими сеансами удаленного рабочего стола.
Рассмотрим как установить и настроить клиент удаленного рабочего стола Guacamole на сервере Ubuntu 20.04.
Первым делом обновим нашу систему
sudo apt-get update -y
После обновления перезагрузим систему, чтобы изменения вступили в силу.
Затем с помощью следующей команды нужно будет установить некоторые пакеты на сервере, чтобы скомпилировать Guacamole из исходников.
sudo 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
Для предоставления клиентского контента пользователям Guacamole использует Tomcat. Установить его можно с помощью следующей команды:
sudo apt-get install tomcat9 tomcat9-admin tomcat9-common tomcat9-user -y
После установки сервера Tomcat запустите службу Tomcat и включите ее запуск при перезагрузке системы с помощью следующей команды:
systemctl start tomcat9
systemctl enable tomcat9
Вы также можете проверить статус службы Tomcat с помощью следующей команды:
systemctl status tomcat9
Установка сервера Guacamole
По умолчанию пакет Guacamole недоступен в репозитории Ubuntu 20.04 по умолчанию. Поэтому вам нужно будет скомпилировать его из исходников.
Сначала загрузите последнюю версию Guacamole с веб-сайта Apache, используя следующую команду:
wget https://downloads.apache.org/guacamole/1.3.0/source/guacamole-server-1.3.0.tar.gz
После завершения загрузки извлеките загруженный файл с помощью следующей команды:
tar -xvzf guacamole-server-1.3.0.tar.gz
Перейдем в извлеченный каталог и запустим сценарий конфигурации, чтобы проверить, что все зависимости удовлетворены:
cd guacamole-server-1.3.0
./configure --with-init-dir=/etc/init.d
Если все в порядке, вы должны увидеть следующий результат:
Теперь скомпилируйте и установите Guacamole Server, выполнив следующую команду:
make
make install
Затем выполните следующую команду, чтобы обновить системный кеш установленных библиотек:
ldconfig
Теперь можно включить и запустить службу Guacamole, используя следующую команду
systemctl enable guacd
systemctl start guacd
Проверить статус службы Guacamole можно с помощью следующей команды:
systemctl status guacd
Установка клиента Guacamole
Затем вам нужно будет установить клиент Guacamole на свой сервер. Клиент Guacamole написан на Java и является кроссплатформенным.
Сначала загрузите двоичный файл Guacamole, используя следующую команду:
wget https://mirrors.estointernet.in/apache/guacamole/1.3.0/binary/guacamole-1.3.0.war
Создадим каталог /etc/guacamole и переместим туда скаченный файл.
mkdir /etc/guacamole
mv guacamole-1.3.0.war /etc/guacamole/guacamole.war
Затем создайте символическую ссылку клиента guacamole на каталог веб-приложений Tomcat с помощью следующей команды:
ln -s /etc/guacamole/guacamole.war /var/lib/tomcat9/webapps/
Наконец, перезапустите службу Tomcat и Guacamole, чтобы развернуть новое веб-приложение:
systemctl restart tomcat9
systemctl restart guacd
Настройка Guacomole
Далее необходимо настроить пользователей и подключения.
Сначала создайте основной файл конфигурации Guacamole с именем 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}
Затем установите переменную среды домашнего каталога Guacamole и добавьте ее в файл конфигурации /etc/default/tomcat9.
echo "GUACAMOLE_HOME=/etc/guacamole" >> /etc/default/tomcat9
Затем вам нужно будет создать файл с именем user-mapping.xml, чтобы определить пользователя, которому разрешен доступ к веб-интерфейсу Guacamole.
Перед его созданием сгенерируйте хеш md5 для пароля с помощью следующей команды:
echo -n YourSecurePassw0rd | openssl md5
Вы должны увидеть следующий результат:
(stdin) = 7e6a8b547cef30b2b24ac84965f7afdc
Примечание : запомните указанный выше пароль md5. Вам нужно будет определить это в файле user-mapping.xml.
Cоздайте новый файл user-mapping.xml с помощью следующей команды:
nano /etc/guacamole/user-mapping.xml
<user-mapping> <authorize username="admin" password="7e6a8b547cef30b2b24ac84965f7afdc" encoding="md5"> <connection name="Ubuntu20.04-Server"> <protocol>ssh</protocol> <param name="hostname">192.168.20.5</param> <param name="port">22</param> <param name="username">root</param> </connection> <connection name="Windows Server"> <protocol>rdp</protocol> <param name="hostname">192.168.20.6</param> <param name="port">3389</param> <param name="ignore-cert">true</param> <param name="color-depth">24</param> <param name="width">1920</param> <param name="height">1080</param> </connection> </authorize> </user-mapping>
Сохраните и закройте файл, когда закончите.
Где:
- 192.168.20.5 – это IP-адрес удаленного сервера Ubuntu.
- 192.168.20.6 – это IP-адрес удаляемого сервера Windows.
Затем перезапустите службу Tomcat и Guacamole, чтобы применить изменения:
systemctl restart tomcat9
systemctl restart guacd
На этом этапе сервер и клиент Guacamole установлены и настроены.
Доступ к веб-интерфейсу Guacamole
Теперь откройте свой веб-браузер и войдите в веб-интерфейс Guacamole, используя URL-адрес http://your-server-ip:8080/guacamole . Вы будете перенаправлены на страницу входа в Guacamole:
Введите имя пользователя и пароль, которые вы определили в файле user-mapping.xml , и нажмите кнопку «Login» . Вы должны увидеть панель управления Guacamole на следующей странице:
Настроить Nginx для Guacamole
Рекомендуется настроить 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
Теперь вы можете получить доступ к своему Guacamole, используя URL-адрес http://your-server-ip .