Установка и использование 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 с устойчивостью и гибкостью облачных вычислений. Проверьте его и воспользуйтесь его гибкостью и удобством, особенно в этот сезон, когда большинство из нас работает из дома.