Guacamole
Guacamole — бесплатная и свободная программа с открытым исходным кодом, которая после установки на сервер и поднятия RDP-сервера предоставляет вам дистанционный доступ ко всем своим клиентским машинам через веб-интерфейс. То есть на ваш собственный компьютер, с которого вы удалённо администрируете клиентскими машинами, не нужно устанавливать никаких плагинов и стороннего программного обеспечения, всё работает по HTML5.
Установка
Установка Guacamole
Необходимо установить пакеты:
- guacd — сервер guacamole;
В зависимости от того, какие протоколы необходимо поддерживать, следует установить один или несколько пакетов libguac-client-* для обеспечения поддержки этих протоколов:
- libguac-client-rdp — RDP;
- libguac-client-ssh — SSH;
- libguac-client-vnc — VNC;
- libguac-client-telnet — telnet.
Установка пакетов:
# apt-get update
# apt-get install guacd libguac-client-rdp libguac-client-ssh libguac-client-vnc libguac-client-telnet tomcat tomcat-webapps tomcat-admin-webapps tomcat-guacamole-webapps
Настройка Guacamole
Добавить в автозагрузку и запустить сервисы:
# systemctl enable --now tomcat.service guacd.service
После установки сервер будет доступен по адресу: ip_адрес:8080/guacamole
Тонкая настройка Guacamole:
- Создать зашифрованный пароль (вместо password следует указать свой пароль):
# 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>
- После внесения изменений в файл /etc/guacamole/user-mapping.xml, перезапустить сервис:
# systemctl restart guacd.service
# systemctl disable --now ahttpd
либо изменить порт 8080 в файле /etc/tomcat/server.xml на другой допустимый номер порта, например 8081:
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
и перезапустить tomcat:
# systemctl restart tomcat
Подключение
Веб-интерфейс доступен по адресу: ip_адрес:8080/guacamole:
Доступные подключения:
Пример подключения по ssh:
Пример подключения по RDP (на удалённой системе, к которой происходит подключение, должен быть настроен XRDP-сервер):
Пример подключения по VNC (на удалённой системе, к которой происходит подключение, должен быть настроен VNC-сервер):