Для удаленного доступа пользователей, посредством протоколов 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>
Смотрим историю:
history
смотрим номер команды, и удаляем его:
history -d XX
7. Далее следует открыть (создать если нет) файл nano /etc/guacamole/guacamole.properties, и вставить в него следующее содержимое:
Здесь описывается на каких основаниях производится подключение к 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 можно считать оконченной.