пятница, 20 февраля 2026 г.

Apache Guacomole

 Для удаленного доступа пользователей, посредством протоколов SSH, RDP, VNC, возможно использовать Apache Guacomole - инструмент работающий в браузере, посредством HTML5 отображающий графику удаленных рабочих столов. Возможно интегрировать посредством LDAP с работой в  домене, использовать второй фактор - TOTP. Помимо возможной безопасной реализации доступа, представляет несомненный плюс в своей простоте для пользователей, которым для работы теперь нужен только современный браузер поддерживающий HTML5, для администраторов и сотрудников ИБ, с которых снимает головную боль о соблюдении необходимых соответствий (compliance) на удаленных ПК пользователей. 

В Сети масса инструкций по сборке конструктора - Apache Guacomole, Tomcat9, mysql (pgsql) и т.п., Nginx, LetsEncrypt и т.д. в разных вариациях.
Предлагается сборка из исходников, скачивание ПО непосредственно с сайта производителя, с последующей инсталляцией, установка из репозиториев, установка сразу всего в контейнере Docker.
В данной статье приводится пример инсталляции полученной из репозиториев ОС - Ubuntu 22.04.

Для понимания, что есть что:

guacd — основной сервер Guacamole, который обрабатывает подключения и передает данные между клиентом и удаленными системами;
tomcat9 — веб-сервер для развертывания веб-приложения Guacamole;
поддержка протоколов:
libguac-client-rdp0 — протокол RDP (для подключения к Windows и Linux с xrdp);
libguac-client-ssh0 — протокол SSH (терминальный доступ);
libguac-client-vnc0 — протокол VNC (удаленный рабочий стол);
libguac-client-telnet0 — протокол Telnet;
guacamole.war — Java-приложение (Apache Tomcat).


1. Обновим содержимое репозиториев:
apt update
2. Установим нужное, если оно отсутствует:
apt install nano wget mc  
3. Установим нужное ПО:
apt install guacd libguac-client-rdp0 libguac-client-ssh0 libguac-client-telnet0 libguac-client-vnc0 tomcat9 tomcat9-admin tomcat9-common tomcat9-user libguac19 libguac-dev
4. Скачиваем web-приложение Guacomole. Для начала смотрим, какая версия пришла из репозитория, они обязательно должны совпадать:
dpkg -l | grep guacd

видим:  ii  guacd  1.3.0-1.1

скачиваем:
wget https://downloads.apache.org/guacamole/1.3.0/binary/guacamole-1.3.0.war
и затем копируем его:
cp guacamole-1.3.0.war /var/lib/tomcat9/webapps

Создадим символическую ссылку на каталог, чтобы в дальнейшем было удобнее  писать адрес в адресной строке браузера:
ln -s /var/lib/tomcat9/webapps/guacamole-1.3.0 /var/lib/tomcat9/webapps/guacamole

5. Наполним файл /etc/guacamole/guacd.conf следующим содержимым:

[server]
bind_host = 127.0.0.1
bind_port = 4822

Если файл отсутствует, его нужно создать.

6. Создадим хэш пароля администратора для использования в вэб-интерфейсе:
echo -n password | openssl md5
(stdin)= 5f4dcc3b5aa765d61d8327deb882cf99

вставим хэш в файл /etc/guacamole/user-mapping.xml

<user-mapping>

<!-- Per-user authentication and config information --> 

<!-- A user using md5 to hash the password

example below uses the md5 hash of "PASSWORD")--> 

    <authorize 

            username="admin"

            password="5f4dcc3b5aa765d61d8327deb882cf99"

            encoding="md5">


        <!-- RDP connection -->

                <connection name="RDP SL">

            <protocol>rdp</protocol>

            <param name="hostname">192.168.0.128</param>

            <param name="port">3389</param>

            <param name="username">user</param>

            <param name="ignore-cert">true</param>

        </connection>


        <!-- SSH connection -->

        <connection name="SSH SL">

            <protocol>ssh</protocol>

            <param name="hostname">192.168.0.190</param>

            <param name="port">22</param>

           </connection>

        <!-- VNC authorized connection -->

        <connection name="VNC WORK">

            <protocol>vnc</protocol>

            <param name="hostname">192.168.0.120</param>

            <param name="port">5900</param>

            <param name="username">user</param>

            <param name="password">123</param>

        </connection>

   </authorize>

</user-mapping> 

В секциях RDP SL, SSH SL, VNC WORK требуется указать ip серверов, и порты которые используют протоколы. Команду с паролем лучше удалить из истории.
Смотрим историю:
history
смотрим номер команды, и удаляем его:
history -d XX

7. Далее следует открыть (создать если нет) файл nano /etc/guacamole/guacamole.properties, и вставить в него следующее содержимое:
guacd-hostname: localhost
guacd-port:     4822
user-mapping:   /etc/guacamole/user-mapping.xml
auth-provider: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider

Здесь описывается на каких основаниях производится подключение к guacomole.

8. Рестартуем guacomole и tomcat:
systemctl restart tomcat9 guacd

9. После всего вышеперечисленного мы можем открыть web-интерфейс Guacomole:
http://192.168.X.X:8080/guacamole

Должна открыться страница авторизации Guacomole:

После авторизации (admin:password), мы увидим настроенные ранее ( в фале файл user-mapping.xml) соединения:










На данном этапе базовую настройку Guacomole можно считать оконченной.

 

  

Комментариев нет:

Отправить комментарий