Несмотря на то, что я являюсь поклонником операционных систем от Microsoft (в частности — Windows 7 и Windows Server 2008 R2), в своих проектах я зачастую не опираюсь на решения от мелкомягких, а выбираю по принципу где и что удобнее. Так, например, вместо MS SQL я использую MySQL, а вместо IIS предпочитаю веб-сервер Apache. Один из заказчиков попросил реализовать возможность подключения к парку своих машин через браузер, а парк, на минуточку, состоит сплошь из сборной солянки: тут и там компьютеры под Ubutntu, кто-то сидит на свежей Windows 10, в уголке притаился сервер под CentOS. Очевидно, что в первом случае мы имеем дело с VNC+SSH, во втором с RDP, ну а в третьем только с SSH. У Microsoft есть своя реализация клиентского шлюза для RDP, но мне она не по нраву, да и полностью задачу не покрывает. К счастью есть продукт который выбивает просто 10 из 10: встречайте, на сцену выходит Apache Guacamole.

Что же такое этот Guacamole? Если кратко и просто, то это такой клиентский шлюз для удаленного подключения посредством браузера. Он работает на HTML5 и позволяет использовать целый ворох протоколов – тут VNC и RDP, SSH и Telnet, даже Kubernetes. И, поскольку он работает через браузер, от пользователя больше не требуется ничего. Единственный момент – нет версии для MS Windows, только Linux, только хардкор. Есть мануал по установке на официальном сайте, но те, кто, как и я, привык работать с Windows, посмотрев на эту инструкцию, сочтут, что в ней сам черт ногу сломит (и будут очень близки к истине). Поэтому я предложу более простой пошаговый вариант установки. У заказчика есть Debian в виртуальной машине — туда я и проведу установку, у себя я для этих же целей держу отдельную машину (в прошлой жизни была тонким клиентом). К слову, для Guacamole рекомендуется выделять не менее 2Gb RAM. Debian у меня установлен совсем «без ничего», нет даже wget. Все действия я произвожу из-под суперпользователя (обратите внимание, знак «минус» после команды нужен!):

su −

Далее ввожу пароль от root. После авторизации ставлю непосредственно wget:

apt install wget

Если у вас уже установлен wget, то вы увидите соответствующее сообщение; в противном случае появится сообщение о том, сколько места займут новые пакеты и попросят подтвердить установку. Подтверждаем (Y), ждем завершения установки. Теперь скачиваем скрипт установки:

wget https://zeratyl.one/aynn/guacamole.sh

После успешного скачивания выдаем скрипту права на исполнение:

chmod +x guacamole.sh

И запускаем установку:

./guacamole.sh

Сразу же будет задан вопрос, нужно ли устанавливать TOTP – генерацию временных одноразовых паролей через Google Authenticator, в моем случае необходимости нет, я отказываюсь (N). Дальше спрашивают, нужно ли устанавливать Duo – двухфакторную аутентификацию в Guacamole, снова отказываюсь (N). Далее спрашивают, нужно ли устанавливать MySQL (там будут храниться пароли-явки пользователей Guacamole, данные подключений и т.д.), соглашаемся (Y). Сначала попросят указать пароль для root пользователя MySQL, затем – для пользователя guacamole. Указываем, подтверждаем, ждем несколько минут. Установка завершена:

Открываем в браузере страничку по адресу http://localhost:8080/guacamole/ (подставив нужный IP) и попадаем на страницу авторизации Guacamole. Дефолтные логин и пароль — guacadmin. Как и написано в терминале, настоятельно рекомендуется поменять реквизиты после установки, проще всего это сделать создав нового пользователя с правами администратора и удалив дефолтную учетную запись.