Guacamole

Материал из ALT Linux Wiki
Версия от 18:08, 16 февраля 2023; Elena Mishina (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Guacamole — бесплатная и свободная программа с открытым исходным кодом, которая после установки на сервер и поднятия RDP-сервера предоставляет вам дистанционный доступ ко всем своим клиентским машинам через веб-интерфейс. То есть на ваш собственный компьютер, с которого вы удалённо администрируете клиентскими машинами, не нужно устанавливать никаких плагинов и стороннего программного обеспечения, всё работает по HTML5.

Установка

Установка Guacamole

Необходимо установить пакеты:

  • guacd — сервер guacamole;

В зависимости от того, какие протоколы необходимо поддерживать, следует установить один или несколько пакетов libguac-client-* для обеспечения поддержки этих протоколов:

Установка пакетов:

# 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:

  1. Создать зашифрованный пароль (вместо password следует указать свой пароль):
    # echo -n password | openssl md5
    (stdin)= 5f4dcc3b5aa765d61d8327deb882cf99
    
  2. Отредактировать файл /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>
    
  3. После внесения изменений в файл /etc/guacamole/user-mapping.xml, перезапустить сервис:
    # systemctl restart guacd.service
    
Примечание: Т.к. tomcat, также как и веб-интерфейс ЦУС, по умолчанию работает на порту 8080, то перед запуском tomcat необходимо, либо остановить службу ahttpd:
# 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:

Авторизация в веб-интерфейсе Guacamole

Доступные подключения:

Веб-интерфейс Guacamole

Пример подключения по ssh:

Пример подключения по ssh

Пример подключения по RDP (на удалённой системе, к которой происходит подключение, должен быть настроен XRDP-сервер):

Пример подключения по RDP

Пример подключения по VNC (на удалённой системе, к которой происходит подключение, должен быть настроен VNC-сервер):

Пример подключения по VNC