В инкубатор Apache принята система удалённого доступа к рабочему столу Guacamole

Автор: vik_kr Дата: . Категория: Новости

Организация Apache Software Foundation приняла под своё крыло проект Guacamole, в рамках которого развивается ПО для обеспечения удалённого доступа к рабочему столу с использованием в качестве клиента обычного web-браузера. Лицензия на код изменена с MIT на Apache 2.0 (новые версии будут выходить только под лицензией Apache, но старый код остаётся под MIT).

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

Guacamole написан на языках Си, Java и JavaScript, и реализует прослойку, позволяющую организовать управление рабочим столом из web-браузера. Для присоединения к рабочему столу в прослойке поддерживаются штатные протоколы VNC, RDP и SSH. Например, можно экспортировать своё окружение при помощи сервера VNC и использовать Guacamole вместо клиента VNC. Если вместо традиционного X-сервера использовать Xvnc, то при помощи Guacamole можно организовать работу облачных рабочих столов, в которых управление осуществляется через web-браузер. Кроме графического сеанса поддерживается трансляция в браузер терминального доступа по SSH и telnet.

Guacamole состоит из двух компонентов - сервера и web-клиента. Web-клиент написан на JavaScript и отвечает за интерфейс на стороне браузера. Сервер выступает в роли прокси, транслирующего бинарные протоколы, подобные VNC или RDP, в представление, передаваемое web-клиенту. При этом поддерживается не только передача картинки и ввода (мышь, клавиатура, сенсорный экран), но и проброс звука, интернационализация, возможность использования нескольких раскладок клавиатур и экранная клавиатура. Базовый управляющий демон сервера guacd, отвечающий за взаимодействие с рабочими столами, написан на языке Си, а обвязка для трансляции интерфейса в web-браузер написана на Java.

Для работы туннеля может использоваться технология WebSocket или обычный HTTP. Поддержка VNC, RDP и SSH реализована на стороне сервера при помощи нативных библиотек libVNCServer, FreeRDP и libssh2, что позволяет добиться хорошей производительности и совместимости, близким к стандартным клиентам VNC, RDP и SSH. Проектом также используются libwebp или libpng, libjpeg-turbo, libvorbis, OpenSSL, PulseAudio, Pango и Cairo. Предоставляется фреймворк для разработки расширений. Имеются средства аутентификации через LDAP или с использованием локальной базы пользователей в PostgreSQL или MySQL. Возможна организация централизованного доступа к группе машин, при котором система автоматически перенаправляет клиента на нужный сервер.