Установка и использование Guacamole Remote Desktop на CentOS 8

Установка и использование Guacamole Remote Desktop на CentOS 8

 

Apache Guacamole — это бесклиентский шлюз удаленного рабочего стола, поддерживающий стандартные протоколы, такие как VNC, RDP и SSH. Благодаря HTML5, когда Guacamole установлен на сервере, все, что вам нужно для доступа к своим рабочим столам, — это веб-браузер.

Guacamole разделен на две части: guacamole-server, который предоставляет прокси-сервер guacd и связанные библиотеки, и guacamole-client, который предоставляет клиента для обслуживания вашим контейнером сервлетов. В большинстве случаев единственный источник, который вам нужно будет собрать, — это guacamole-server, и загрузки последней версии guacamole.war с веб-сайта проекта будет достаточно, чтобы предоставить клиенту.

 

Шаг 1: Подготовка сервера

Apache Guacamole имеет множество зависимостей, и на этом этапе мы разберемся с большинством из них. Вы заметите, что я использовал некоторые пакеты из репозитория Devel, потому что получить их из официальных репозиториев было непросто. Отключите его, когда все необходимые нам пакеты будут установлены.

sudo dnf update
sudo dnf install -y vim wget unzip make cmake wget gcc zlib-devel compat-openssl10
sudo dnf config-manager --set-enabled powertools
sudo dnf config-manager --enable Devel
sudo dnf -y install cairo-devel libuv-devel libjpeg-turbo-devel libjpeg-devel libpng-devel libtool uuid-devel freerdp-devel pango-devel libvncserver-devel pulseaudio-libs-devel openssl-devel libvorbis-devel libwebp-devel libssh2-devel libwebsockets-devel libtheora opus lame-libs
sudo dnf config-manager --disable devel

Установить другие библиотеки из исходников

Некоторые библиотеки пока недоступны в репозиториях. Они включают libtelnet

curl -s https://api.github.com/repos/seanmiddleditch/libtelnet/releases/latest | grep browser_download_url  | cut -d '"' -f 4 | wget -qi -
tar -xf libtelnet-*.tar.gz
cd libtelnet-*/
./configure
make && sudo make install

Шаг 2. Установите Apache Tomcat

После сортировки необходимых компонентов выполните приведенную ниже команду, чтобы установить контейнер сервлетов Java Apache Tomcat, который обслуживает клиент Java Guacamole и все необходимые зависимости. Поскольку он находится на Java, давайте сначала установим Java.

Установите Java на CentOS 8

Выполните команду ниже, чтобы получить java-11-openjdk.

sudo yum install java-11-openjdk-devel

Создайте файл и установите переменные среды Java.

$ sudo vim /etc/profile.d/java11.sh

export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which javac))))
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar

Загрузите файл, чтобы начать использовать его без выхода из системы.

source /etc/profile.d/java11.sh

Установите Apache Tomcat на CentOS 8

Чтобы установить Apache Tomcat, следуйте нашему подробному руководству по установке Apache Tomcat 9 на CentOS 8 . Не обращайте внимания на часть установки Java, поскольку она у нас уже установлена.

Шаг 3. Создайте сервер Guacamole из исходников

guacamole-server содержит все встроенные серверные компоненты, необходимые Guacamole для подключения к удаленным рабочим столам. Он предоставляет общую библиотеку C, libguac, от которой зависят все остальные собственные компоненты, а также отдельные библиотеки для каждого поддерживаемого протокола и прокси-демон, guacd, сердце Guacamole.

Загрузите последнюю стабильную версию guacamole-server

cd ~
wget http://mirror.cc.columbia.edu/pub/software/apache/guacamole/1.2.0/source/guacamole-server-1.2.0.tar.gz

Распакуйте скачанный архив.

tar -xvf guacamole-server-1.2.0.tar.gz

Перейдите в извлеченный каталог.

cd guacamole-server-1.2.0

Настройте среду сборки. Запуск configure определит, какие библиотеки доступны в вашей системе, и выберет соответствующие компоненты для сборки в зависимости от того, что вы на самом деле установили.

./configure --with-init-dir=/etc/init.d

Затем скомпилируйте guacamole-server. Довольно много вывода будет прокручиваться вверх по экрану, поскольку все компоненты скомпилированы.

make

Когда все закончится, все, что вам останется сделать, это ввести « sudo make install », чтобы установить компоненты, которые были собраны , а затем « ldconfig », чтобы обновить системный кеш установленных библиотек.

sudo make install

Обновите системный кеш установленных библиотек.

sudo ldconfig

Обновите systemd, чтобы найти службу guacd (Guacamole proxy daemon), установленную в каталоге /etc/init.d/.

sudo systemctl daemon-reload

После перезагрузки запустите службу guacd.

sudo systemctl start guacd
sudo systemctl enable guacd

И чтобы на вашем лице появилась эта улыбка, проверьте ее статус.

$ systemctl status guacd

● guacd.service - LSB: Guacamole proxy daemon
   Loaded: loaded (/etc/rc.d/init.d/guacd; generated)
   Active: active (running) since Thu 2020-08-27 10:26:04 UTC; 43s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 51357 ExecStart=/etc/rc.d/init.d/guacd start (code=exited, status=0/SUCCESS)
    Tasks: 1 (limit: 11070)
   Memory: 11.9M
   CGroup: /system.slice/guacd.service
           └─51360 /usr/local/sbin/guacd -p /var/run/guacd.pid

Шаг 4. Установите веб-приложение Guacamole

В развертывании Guacamole задействованы два важных файла: guacamole.war — файл, содержащий веб-приложение, и guacamole.properties — основной файл конфигурации для Guacamole. Рекомендуемый способ настройки Guacamole включает размещение этих файлов в стандартных местах, а затем создание на них символических ссылок, чтобы Tomcat мог их найти.

guacamole-client содержит все компоненты Guacamole Java и Maven (guacamole, guacamole-common, guacamole-ext и guacamole-common-js). Эти компоненты в конечном итоге составляют веб-приложение, которое будет обслуживать клиент HTML5 Guacamole для пользователей, которые подключаются к вашему серверу. Это веб-приложение будет подключаться к guacd, части сервера guacamole, от имени подключенных пользователей, чтобы обслуживать их любой удаленный рабочий стол, к которому они имеют доступ.

Установите клиент Guacamole на CentOS 8

Клиент Guacamole доступен в виде двоичного файла. Чтобы установить его, просто вытащите его со страницы загрузки двоичных файлов Guacamole, как показано ниже, скопируйте его в каталог /etc/guacamole/ и одновременно переименуйте.

cd ~
sudo mkdir /etc/guacamole
wget https://downloads.apache.org/guacamole/1.2.0/binary/guacamole-1.2.0.war
sudo mv guacamole-1.2.0.war /etc/guacamole/guacamole.war

Чтобы установить двоичный файл клиента Guacamole, создайте символическую ссылку клиента guacamole на каталог веб-приложений Tomcat, как показано ниже;

sudo ln -s /etc/guacamole/guacamole.war /usr/share/tomcat/webapps/

Шаг 5: Настройте сервер Guacamole

После установки демона сервера Guacamole вам необходимо определить, как клиент Guacamole будет подключаться к серверу Guacamole (guacd) в файле конфигурации /etc/guacamole/guacamole.properties . В этой конфигурации вам нужно просто определить имя хоста сервера Guacamole, порт, файл конфигурации сопоставления пользователей, поставщика аутентификации.

GUACAMOLE_HOME — это имя, присвоенное каталогу конфигурации Guacamole, который по умолчанию находится в / etc / guacamole . Все файлы конфигурации, расширения и т. Д. Находятся в этом каталоге.

Создать переменную среды GUACAMOLE_HOME

echo "GUACAMOLE_HOME=/etc/guacamole" | sudo tee -a /etc/default/tomcat

Создайте файл конфигурации /etc/guacamole/guacamole.properties и заполните его, как показано ниже:

$ sudo vim /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

После того, как конфигурация будет такой же, как указано выше, сохраните ее и свяжите каталог конфигураций Guacamole с каталогом сервлетов Tomcat, как показано ниже.

sudo ln -s /etc/guacamole /usr/share/tomcat/.guacamole

Шаг 6. Настройте метод аутентификации гуакамоле.

Метод проверки подлинности Гуакамоле по умолчанию считывает всех пользователей и подключения из одного файла с именем user-mapping.xml. В этом файле вам необходимо определить пользователей, которым разрешен доступ к веб-интерфейсу Guacamole, серверы для подключения и метод подключения.

Сгенерируйте MD5-хэш паролей для пользователя, которого вы собираетесь использовать для входа в веб-интерфейс пользователя Guacamole. Соответственно замените пароль.

$ echo -n StrongPassword | openssl md5
(stdin)= 0f6e4a1df0cf5ee97c2066953bed21b2

Как только ваш пароль будет готов, создайте файл сопоставления пользователей с примерами содержимого, показанными ниже. Вы можете разместить любое имя хоста, имена пользователей и хосты в соответствии с вашей средой.

$ sudo vim /etc/guacamole/user-mapping.xml

<user-mapping>

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

    <!-- A user using md5 to hash the password
         guacadmin user and its md5 hashed password below is used to 
             login to Guacamole Web UI-->
    <authorize 
            username="tech"
            password="0f6e4a1df0cf5ee97c2066953bed21b2"
            encoding="md5">

        <!-- First authorized Remote connection -->
        <connection name="RHEL 7 Maipo">
            <protocol>ssh</protocol>
            <param name="hostname">10.10.10.10</param>
            <param name="port">22</param>
        </connection>

        <!-- Second authorized remote connection -->
        <connection name="Windows Server 2019">
            <protocol>rdp</protocol>
            <param name="hostname">10.10.10.5</param>
            <param name="port">3389</param>
            <param name="username">tech</param>
            <param name="ignore-cert">true</param>
        </connection>

    </authorize>

</user-mapping>

Хорошая вещь. Как только все будет сделано, перезапустите Tomcat и guacd, чтобы изменения вступили в силу.

sudo systemctl restart tomcat guacd

Если у вас запущен брандмауэр и вы еще не разрешили порты, у вас есть шанс сделать это так же быстро, как показано ниже:

sudo firewall-cmd --permanent --add-port={4822,8080}/tcp
sudo firewall-cmd --reload

Шаг 7. Получение веб-интерфейса Guacamole

Пока мы все настроили хорошо, и поэтому мы должны быть готовы получить доступ к приложению, над созданием которого мы так долго работали. Чтобы получить доступ к веб-интерфейсу Guacamole, просто укажите в браузере http://ip-or-domain-name:8080/guacamole, и вы увидите экран входа в систему, как показано ниже:

Как видите, соединения, которые мы установили в файле конфигурации, уже загружаются при входе в систему.

Просто нажмите на тот, к которому вы хотите подключиться, и вам будет предложено ввести имя пользователя и пароль через SSH или RDP.

Введите пароль вашего сервера

И мы должны быть допущены

Заключительные замечания

Поскольку клиент Guacamole представляет собой веб-приложение HTML5, использование ваших компьютеров не привязано к какому-либо одному устройству или местоположению. Пока у вас есть доступ к веб-браузеру, у вас есть доступ к своим машинам. Используя как Guacamole, так и настольную операционную систему, размещенную в облаке, вы можете объединить удобство Guacamole с устойчивостью и гибкостью облачных вычислений. Проверьте его и воспользуйтесь его гибкостью и удобством, особенно в этот сезон, когда большинство из нас работает из дома.

Author: forgero