Установите гуакамоле для удаленного доступа к Linux/Windows в Ubuntu
Как системный администратор, вы можете оказаться (сегодня или в будущем) работающим в среде, где Windows и Linux сосуществуют.
Ни для кого не секрет, что некоторые крупные компании предпочитают (или вынуждены) запускать некоторые из своих производственных сервисов на серверах Windows, а другие — на серверах Linux.
Если это ваш случай, вы примете это руководство с распростертыми объятиями (в противном случае обязательно добавьте его в свои закладки).
В этой статье мы познакомим вас с гуакамоле, шлюзом удаленного рабочего стола на базе Tomcat, который необходимо установить только на центральном сервере.
Гуакамоле предоставит веб-панель управления, которая позволит вам быстро переключаться с одного компьютера на другой – и все это в одном окне веб-браузера.
Тестовая среда
В этой статье мы использовали следующие машины. Мы установим Гуакамоле в систему Ubuntu и будем использовать его для доступа к системе Windows 10 через Протокол удаленного рабочего стола ( RDP) и поле RHEL, использующее сетевой протокол SSH:
Guacamole server: Ubuntu 20.04 - IP 192.168.0.100
Remote SSH box: RHEL 8 – IP 192.168.0.18
Remote desktop box: Windows 10 – IP 192.168.0.19
Тем не менее, давайте начнем.
Установка сервера гуакамоле в Ubuntu
1. Перед установкой гуакамоле вам необходимо сначала позаботиться о его зависимостях.
sudo apt update
sudo apt install -y gcc vim curl wget g++ libcairo2-dev libjpeg-turbo8-dev libpng-dev \
libtool-bin libossp-uuid-dev libavcodec-dev libavutil-dev libswscale-dev build-essential \
libpango1.0-dev libssh2-1-dev libvncserver-dev libtelnet-dev freerdp2-dev libwebsockets-dev \
libssl-dev libvorbis-dev libwebp-dev tomcat9 tomcat9-admin tomcat9-user
2. Загрузите и распакуйте архив. По состоянию на начало февраля 2021 г. последней версией Гуакамоле является 1.3.0. Вы можете перейти на страницу загрузок гуакамоле, чтобы узнать последнюю версию на данный момент.
wget https://dlcdn.apache.org/guacamole/1.3.0/source/guacamole-server-1.3.0.tar.gz
tar zxf guacamole-server-1.3.0.tar.gz
3. Скомпилируйте программное обеспечение.
cd guacamole-server-1.3.0/
./configure
Как и следовало ожидать, configure проверит вашу систему на наличие необходимых зависимостей и поддерживаемых протоколов связи (как видно из выделенного квадрата, Протокол удаленного рабочего стола ). (RDP) и SSH поддерживаются установленными ранее зависимостями).
Если все идет так, как ожидалось, вы должны увидеть это после завершения (в противном случае убедитесь, что вы установили все необходимые зависимости):
Как следует из последней строки на изображении выше, запустите make
и make install
, чтобы скомпилировать программу:
make
sudo make install
4. Обновите кэш установленных библиотек.
sudo ldconfig
и нажмите Ввод.
Установка клиента гуакамоле в Ubuntu
После выполнения вышеуказанных шагов сервер гуакамоле будет установлен. Следующие инструкции помогут вам настроить guacd (прокси-демон, который интегрирует Javascript с такими протоколами связи, как RDP или SSH) и guacamole.war (клиент). компонент, из которого состоит окончательное приложение HTML5, которое будет вам представлено.
Обратите внимание, что оба компонента (сервер гуакамоле и клиент) должны быть установлены на одном компьютере – нет необходимости устанавливать так называемый клиент на компьютеры, на которых вы хотите подключиться к).
Чтобы загрузить клиент, выполните следующие действия:
5. Загрузите архив веб-приложения и измените его имя на guacamole.war.
Примечание. В зависимости от вашего дистрибутива каталог библиотек Tomcat может располагаться по адресу /var/lib/tomcat.
cd /var/lib/tomcat9/
sudo wget https://dlcdn.apache.org/guacamole/1.3.0/binary/guacamole-1.3.0.war
sudo mv guacamole-1.3.0.war webapps/guacamole.war
6. Создайте файл конфигурации (/etc/guacamole/guacamole.properties). Этот файл содержит инструкции по подключению гуакамоле к guacd:
sudo mkdir /etc/guacamole
sudo mkdir /usr/share/tomcat9/.guacamole
sudo nano /etc/guacamole/guacamole.properties
Вставьте следующее содержимое в /etc/guacamole/guacamole.properties. Обратите внимание, что мы ссылаемся на файл, который создадим на следующем шаге (/etc/guacamole/user-mapping.xml):
guacd-hostname: localhost
guacd-port: 4822
user-mapping: /etc/guacamole/user-mapping.xml
auth-provider: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider
basic-user-mapping: /etc/guacamole/user-mapping.xml
И создайте символическую ссылку, чтобы Tomcat мог прочитать файл:
sudo ln -s /etc/guacamole/guacamole.properties /usr/share/tomcat9/.guacamole/
7. Гуакамоле использует user-mapping.xml. Создайте этот файл, чтобы определить, каким пользователям разрешено проходить аутентификацию в веб-интерфейсе Гуакамоле (между <authorize>
) и какие соединения они могут использовать (между тегами <connection>
):
sudo nano /etc/guacamole/user-mapping.xml
Следующее сопоставление пользователей предоставляет доступ к веб-интерфейсу гуакамоле пользователю tecmint
с паролем tecmint01. Затем внутри SSH-соединения нам нужно указать действительное имя пользователя для входа в поле RHEL (вам будет предложено ввести соответствующий пароль, когда Гуакамоле инициирует соединение).
В случае с окном Windows 10 в этом нет необходимости, поскольку нам будет представлен экран входа в систему через RDP.
Чтобы получить хэш md5 пароля tecmint01, введите следующую команду:
printf '%s' "tecmint01" | md5sum
Затем вставьте вывод команды в поле пароля внутри тегов <authorize>
:
<user-mapping>
<authorize
username="tecmint"
password="8383339b9c90775ac14693d8e620981f"
encoding="md5">
<connection name="RHEL 8">
<protocol>ssh</protocol>
<param name="hostname">192.168.0.18</param>
<param name="port">22</param>
<param name="username">gacanepa</param>
</connection>
<connection name="Windows 10">
<protocol>rdp</protocol>
<param name="hostname">192.168.0.19</param>
<param name="port">3389</param>
</connection>
</authorize>
</user-mapping>
Как и в случае со всеми файлами, содержащими конфиденциальную информацию, важно ограничить разрешения и изменить владельца файла user-mapping.xml
:
sudo chmod 600 /etc/guacamole/user-mapping.xml
sudo chown tomcat:tomcat /etc/guacamole/user-mapping.xml
Запустите Tomcat и guacd.
sudo service tomcat9 start
sudo /usr/local/sbin/guacd &
Запуск веб-интерфейса гуакамоле
8. Чтобы получить доступ к веб-интерфейсу гуакамоле, запустите браузер и укажите в нем http://server:8080/guacamole
, где сервер — это имя хоста или IP-адрес вашего сервер (в нашем случае это http://192.168.0.100:8080/guacamole
) и войдите в систему, используя данные ранее (имя пользователя: tecmint, пароль: tecmint01):
9. После нажатия кнопки «Войти» вы попадете в административный интерфейс, где увидите список подключений, к которым пользователь tecmint имеет доступ, согласно user- маппинг.xml
:
10. Нажмите на поле RHEL 8, чтобы войти в систему как gacanepa (имя пользователя, указанное в определении соединения).
Обратите внимание, что в качестве источника подключения установлено значение 192.168.0.100 (IP-адрес сервера гуакамоле), независимо от IP-адреса компьютера, который вы используете для открытия веб-интерфейса:
11. Если вы хотите закрыть соединение, введите exit и нажмите Enter. Вам будет предложено вернуться в главный интерфейс (Домой), повторно подключиться или выйти из Гуакамоле:
12. Теперь пришло время попробовать подключение к удаленному рабочему столу в Windows 10:
Поздравляем! Теперь вы можете получить доступ к компьютеру с Windows 10 и серверу RHEL 8 из веб-браузера.
Краткое содержание
В этой статье мы объяснили, как установить и настроить Гуакамоле, чтобы разрешить доступ к удаленным машинам через RDP и SSH. На официальном веб-сайте представлена обширная документация, которая поможет вам настроить доступ с использованием других протоколов, таких как VNC, и других механизмов аутентификации, например, на основе БД…
Как всегда, не стесняйтесь, напишите нам, если у вас есть какие-либо вопросы или предложения по поводу этой статьи. Мы также с нетерпением ждем ваших историй успеха.