Добрый день.
Встала передо мной задача: иметь доступ к своему компьютеру из любого места. При этом доступ нужен с планшета, телефона, с работы (где заблокированы все известные программы удаленного управления, rdp, vnc и т.д.).
Остановился на реализации: Ubuntu+ guacamole + Tomcat.
Для данной реализации нужен компьютер с установленной операционной системой Ubuntu и домашний выделенный ip адрес, его можно заказать у своего провайдера, если у вас белый динамический адрес, то можно попробовать настроить DDNS, но это за рамками статьи.
Заглавие:
- Установка серверного модуля guacamole на Ubuntu.
- Установка Tomcat.
- Установка клиентского модуля guacamole.
- Настройка guacamole.
- Установка серверного модуля guacamole на Ubuntu.
Про guacamole можно почитать на официальном сайте https://guacamole.apache.org/ — это программа с открытым исходным кодом. В Ubuntu нужно собирать из исходников. В данной статье собрал самое главное для запуска guacamole.
Собираем guacamole сервер.
Устанавливаем зависимости:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
sudo apt install libcairo2-dev sudo apt install libjpeg-turbo8-dev sudo apt install libpng-dev (в официальной документации указан libpng12-dev, его заменяем на libpng-dev) sudo apt install libtool-bin sudo apt install libossp-uuid-dev sudo apt install libavcodec-dev sudo apt install libavformat-dev sudo apt install libavutil-dev (уже была установлена) sudo apt install libswscale-dev sudo apt install freerdp2-dev sudo apt install libpango1.0-dev sudo apt install libssh2-1-dev sudo apt install libtelnet-dev sudo apt install libvncserver-dev sudo apt install libwebsockets-dev sudo apt install libpulse-dev sudo apt install libssl-dev (уже была установлена) sudo apt install libvorbis-dev sudo apt install libwebp-dev |
Далее нам нужны исходники guacamole-server.
Рекомендую скачать с этого сайта (т.к. статья была написана по релизу 1.3.0) в введя в терминале:
1 |
wget https://write1c.ru/wp-content/files/guacamole/guacamole-server-1.3.0.tar.gz |
Актуальные исходники guacamole сервер можно скачать с сайта: https://guacamole.apache.org/releases/
Распаковываем архив:
1 |
tar -xzf guacamole-server-1.3.0.tar.gz |
Переходим в созданную папку:
1 |
cd guacamole-server-1.3.0/ |
Конфигурируем исходники:
1 2 |
sudo ./configure --disable-dependency-tracking --with-init-dir=/etc/i nit.d |
P.S. в документации написано нужно конфигурировать с параметрами : ./configure —with-init-dir=/etc/init.d, но это не сработало, поэтому мы сделали с ./configure —disable-dependency-tracking —with-init-dir=/etc/i nit.d.
Вы должны увидеть такую картину:
Если у вас идентичная картина, то конфигурирование прошло успешно, если нет, то вы установили не все зависимости.
Далее компилируем приложение:
Если у вас чистая Ubuntu, только что установленная, то устанавливаем make
1 |
sudo apt install make |
Далее:
1 2 |
sudo make sudo make install |
Затем выполните следующую команду, чтобы обновить системный кеш установленных библиотек:
1 |
sudo ldconfig |
Теперь можно включить и запустить службу Guacamole, используя следующую команду:
1 2 |
sudo systemctl start guacd sudo systemctl enable guacd |
Проверить статус службы Guacamole можно с помощью следующей команды:
1 |
sudo systemctl status guacd |
Мы установили серверную службу guacamole.
2. Установка Tomcat.
Tomcat — это одна из разновидностей Apache только tomcat заточен под java приложения, которые написаны для сайтов. Про Tomcat можно почитать на сайте https://tomcat.apache.org/.
Я ставил tomcat 9, для сборки рекомендую ее.
В терминале вводим:
1 |
sudo apt install tomcat9 tomcat9-admin tomcat9-common tomcat9-user -y |
После установки сервера Tomcat запустите службу Tomcat и включите ее запуск при перезагрузке системы с помощью следующей команды:
1 2 |
sudo systemctl start tomcat9 sudo systemctl enable tomcat9 |
Вы также можете проверить статус службы Tomcat с помощью следующей команды:
1 |
sudo systemctl status tomcat9 |
Мы установили серверную службу tomcat.
3. Установка клиентского модуля guacamole.
Нам нужно собрать клиентский модуль guacamole, который будет работать на tomcat.
Исходники для клиентской части рекомендую скачать с этого сайта (т.к. статья была написана по релизу 1.3.0) в введя в терминале:
1 |
wget https://write1c.ru/wp-content/files/guacamole/guacamole-client-1.3.0.tar.gz |
Актуальные исходники guacamole клиент можно скачать с сайта: https://guacamole.apache.org/releases/
Распаковываем архив:
1 |
tar -xzf guacamole-client-1.3.0.tar.gz |
Переходим в созданную папку:
1 |
cd guacamole-client-1.3.0 |
Если у вас только установленная Ubuntu, то нужно установить maven:
1 |
sudo apt install maven |
Установить JAVA 11:
1 |
sudo apt install openjdk-11-jdk |
Редактируем файл /etc/environment, чтобы указать переменной $JAVA_HOME каталог с JAVA.
1 |
sudo nano /etc/environment |
Вставляем строку JAVA_HOME=»/usr/lib/jvm/java-11-openjdk-amd64/»
Обновляем переменные среды:
1 |
source /etc/environment |
Смотрим чтобы переменная $JAVA_HOME выдала записанное значение «/usr/lib/jvm/java-11-openjdk-amd64/»
1 |
echo $JAVA_HOME |
Собираем клиента:
1 |
sudo mvn package |
Должна быть такая картина:
После сборки в папке guacamole/target появится файл «guacamole-1.3.0.war»
Копируем файл в рабочую папку tomcat:
1 |
sudo cp guacamole/target/guacamole-1.3.0.war /var/lib/tomcat9/webapps/guacamole.war |
P.S. путь /var/lib/tomcat9/webapps/ в tomcat может различаться, его можно посмотреть на приветственной странице Tomcat http://localhost:8080. Например в Ubuntu 20.04 desktop tomcat по умолчанию все установил в папку /opt/tomcat/, но в Ubuntu 20.04 server в папку /var/lib/tomcat9/
Перезапускаем Tomcat:
1 |
sudo service tomcat9 restart |
После на ip компьютера по адресу http://localhost:8080/guacamole должно появится приветственное окно guacamole. Это значит, что мы идем к успеху и осталось настроить только учетные записи guacamole.
4. Настройка guacamole.
Создадим каталог /etc/guacamole
1 |
sudo mkdir /etc/guacamole |
Создадим основной файл конфигурации Guacamole с именем guacamole.properties
1 |
sudo nano /etc/guacamole/guacamole.properties |
Добавьте следующие строки:
1 2 3 |
guacd-hostname: localhost guacd-port: 4822 user-mapping: /etc/guacamole/user-mapping.xml |
Сохраните и закройте файл.
Далее вам нужно будет создать каталоги для библиотеки и расширения.
1 |
sudo mkdir /etc/guacamole/{extensions,lib} |
Затем вам нужно будет создать файл с именем user-mapping.xml, чтобы определить пользователя, которому разрешен доступ к веб-интерфейсу Guacamole.
Перед его созданием сгенерируйте хеш md5 для пароля с помощью следующей команды:
1 |
echo -n ВашПароль | openssl md5 |
Запомните результат команды.
Создание нового файла user-mapping.xml.
1 |
sudo nano /etc/guacamole/user-mapping.xml |
Заполните файл данный:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<user-mapping> <authorize username="Введите пользователя для guacamole" password="Введите сохраненное значение md5 сгенерированной из вашего пароля" encoding="md5"> <!-- конфигурация подключения --> <!-- protocol - rdp,vnc,ssh ... --> <connection name="Ubuntu20.04"> <protocol>ssh</protocol> <param name="hostname">192.168.1.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> |
Перезапускаем службы:
1 2 |
sudo systemctl restart tomcat9 sudo systemctl restart guacd |
Это минимальная настройка guacamole на этом закончена, теперь по адресу http://localhost:8080/guacamole вы должны увидеть авторизацию guacamole:
Введите логин и пароль, который вводили в файле «user-mapping.xml» в
<authorize
username=»Введите пользователя для guacamole»
password=»Введите сохраненное значение md5 сгенерированной из вашего пароля»
encoding=»md5″>
После авторизации у вас появятся настроенные компьютеры для подключения: