Начиная с сегодняшнего дня, мы рады сообщить, что теперь вы можете перенести другой традиционный вариант использования, управляемый клиентом, на браузер. Теперь команды могут предоставить своим пользователям клиент виртуальных сетевых вычислений (VNC), полностью отображаемый в браузере со встроенными элементами управления Zero Trust.
Подобно потоку SSH, это позволяет пользователям подключаться из любого браузера на любом устройстве без необходимости в клиентском программном обеспечении. Эта функция работает в каждом из наших центров обработки данных в более чем 200 городах по всему миру, делая ее доступной для ваших конечных пользователей. Мы также создали этот опыт с помощью Cloudflare Workers, чтобы обеспечить почти мгновенное время запуска. В будущем мы будем поддерживать полную возможность аудита действий пользователей в их сессиях VNC и SSH.
Быстрое напоминание о VNC
VNC — это платформа для совместного использования рабочего стола, построенная на основе протокола удаленного буфера кадров, которая позволяет использовать графический интерфейс на любом сервере. Он построен так, чтобы быть независимым от платформы, и предоставляет администраторам простой способ сделать интерфейсы доступными для пользователей, которым для работы с удаленным компьютером менее комфортно работать с командной строкой. Или для завершения работы, лучше подходящей для визуального интерфейса.
В моем случае наиболее частая причина, по которой я использую VNC, — это играть в игры, у которых есть проблемы с совместимостью. Использование виртуальной машины для запуска Windows Server было намного дешевле, чем покупка нового ноутбука.
В большинстве случаев использования в бизнесе VNC не используется для игр, это обусловлено требованиями безопасности или управления ИТ. VNC может быть полезным для создания среды в стиле «чистой комнаты», где пользователи могут взаимодействовать с защищенной информацией, которую нельзя перенести на их персональный компьютер.
Как традиционно развертывается VNC
Обычно для развертывания VNC требуется, чтобы программное обеспечение было установлено на компьютере пользователя. Это программное обеспечение позволяет пользователю установить соединение VNC и отобразить графический интерфейс сервера VNC. Это связано с проблемами совместимости с операционной системой (помните, как VNC должен был быть независимым от платформы?), Безопасности и накладных расходов на управление.
Для управления программным обеспечением, таким как программа просмотра VNC, обычно требуется программное обеспечение для управления мобильными устройствами (MDM) или пользователи, вносящие индивидуальные изменения в свои машины. Это дополнительно осложняется подрядчиками и внешними пользователями, которым требуется доступ через VNC.
Проблемы с развертыванием VNC
VNC часто используется для создания среды, в которой пользователь может взаимодействовать с конфиденциальными данными. Однако может быть очень сложно отслеживать, когда пользователь подключается к серверу VNC, а затем то, что он делает во время сеанса, без значительной конфигурации сети.
Помимо проблем безопасности, программное обеспечение, установленное на компьютере пользователя, такое как программа просмотра VNC, обычно сложно управлять — подумайте о проблемах совместимости с операционными системами, обновлениях безопасности и многих других проблемах.
В отличие от SSH, где большинство серверов и клиентов преимущественно используют OpenSSH, существует множество коммерческих и бесплатных серверов / клиентов VNC разного качества и стоимости.
Мы хотели это исправить!
Пришло время для браузера VNC
Одной из основных проблем рендеринга графического интерфейса пользователя является задержка: если пользователь нажимает кнопку мыши или нажимает медленно, процесс становится практически бесполезным. Используя Cloudflare Tunnel, мы можем доставить VNC-соединение на нашу границу, что означает, что мы менее чем в 50 мс от 99% пользователей Интернета.
Для этого мы создали полную реализацию программы просмотра VNC, которая работает в веб-браузере. Что-то вроде этого обычно требует запуска прокси-сервера TCP → WebSocket на стороне сервера (например, websockify, поскольку сегодня TCP-соединения не поддерживаются в браузерах изначально). Поскольку у нас уже есть именно это с Cloudflared + Cloudflare Tunnel, мы можем подключиться к существующим TCP-туннелям и обеспечить полностью встроенный интерфейс VNC в браузере. Поскольку прокси на стороне сервера происходит на уровне TCP, сеанс VNC зашифрован между веб-клиентом и сервером VNC в вашей сети.

Как только мы устанавливаем соединение, мы используем noVNC для рендеринга любого VNC-сервера в браузере.
Все это осуществляется с помощью Cloudflare Workers. Мы смогли построить весь этот опыт на нашей бессерверной платформе, чтобы реализовать возможности VNC на нашем краю.
Последний шаг — аутентификация трафика, идущего в туннель, установленный с вашим сервером VNC. Для этого мы можем использовать Cloudflare Access, поскольку он позволяет нам проверять личность пользователя и применять дополнительные проверки безопасности. После правильной аутентификации пользователя ему предоставляется файл cookie, который затем проверяется при каждом запросе к серверу VNC.

И тогда пользователь может использовать свой терминал VNC!

Почему будущее за браузером
Прежде всего, работа с браузером проста для пользователей. Все, что им нужно, — это подключение к Интернету и URL-адрес для доступа к своим экземплярам SSH и VNC. Раньше им требовалось программное обеспечение, такое как клиент puTTY и RealVNC.
Устаревшие приложения, в том числе серверы VNC, служат еще одним вектором атаки для злоумышленников, поскольку их сложно отслеживать и обновлять с помощью обновлений безопасности. VNC на основе браузера означает, что мы можем мгновенно отправлять обновления безопасности. А также воспользоваться встроенными функциями безопасности современных браузеров (например, хромовой песочницей).
Видимость — еще одно важное улучшение. В будущих выпусках мы будем поддерживать запись экрана и ведение журнала сетевых запросов, чтобы предоставить подробную информацию о том, что именно было выполнено во время сеанса VNC. Мы уже предоставляем четкие журналы в любое время, когда пользователь обращается к своему серверу VNC или SSH через браузер.

Мы только начинаем!
Браузерный VNC теперь доступен в каждом плане Cloudflare for Teams. Здесь вы можете бесплатно начать работу для 50 пользователей.
Вскоре мы объявим о наших планах по поддержке дополнительных протоколов, доступных только в локальных развертываниях. Сообщите нам в Сообществе, есть ли какие-то конкретные протоколы, которые вы хотели бы, чтобы мы рассмотрели!
Если у вас есть вопросы о начале работы, не стесняйтесь оставлять сообщения в сообществе. Если вы хотите начать сегодня, следуйте нашему пошаговому руководству.