Метод доступа к Secure Shell через веб-браузеры
Веб-SSH — это предоставление доступа Secure Shell (SSH) через веб-браузер . SSH — это защищенный сетевой протокол, который обычно используется для удаленного управления серверами, сетевыми устройствами и другими устройствами. С помощью веб-SSH пользователи могут получать доступ к этим устройствам и управлять ими с помощью стандартного веб-браузера без необходимости установки какого-либо дополнительного программного обеспечения.
Веб-клиенты SSH обычно реализуются с использованием JavaScript и либо Ajax , либо WebSockets . Эти клиенты взаимодействуют с сервером SSH через прокси , что позволяет им обходить брандмауэры и другие меры сетевой безопасности, которые могут блокировать трафик SSH. Это делает веб-SSH удобным и безопасным способом доступа к удаленным серверам и устройствам из любого места с подключением к Интернету.
Веб-SSH полезен для различных целей, включая системное администрирование, управление сетями и удаленную разработку. Он часто используется ИТ-специалистами и разработчиками для удаленного доступа и управления серверами, а также отдельными лицами, которым необходимо получить доступ к своим домашним или офисным компьютерам из удаленного местоположения.
Технологии
Веб-клиенты SSH — это приложения, которые позволяют пользователям получать доступ к серверам Secure Shell (SSH) через веб-браузер . Они состоят из двух основных частей: клиентского компонента, который обычно реализуется с использованием JavaScript и динамического HTML , и серверного компонента или компонента веб-приложения, который обычно реализуется на сервере приложений .
Клиентский компонент захватывает нажатия клавиш, передает сообщения на сервер и с сервера и отображает результаты в веб-браузере пользователя. Серверный компонент обрабатывает входящие запросы и пересылает события клавиатуры клиенту защищенной оболочки, который взаимодействует с подключенным сервером SSH. Вывод терминала либо передается клиенту, где преобразуется в HTML с помощью JavaScript, либо транслируется в HTML сервером перед передачей клиенту.
Эмуляция терминала
Веб-серверы SSH могут использовать эмуляцию терминала как на стороне клиента, так и на стороне сервера.
Эмуляция клиентского терминала
Клиентская эмуляция терминала передает необработанный вывод терминала с сервера SSH напрямую клиенту, что имеет преимущество разгрузки процесса перевода вывода терминала в HTML на клиента. Однако она может быть ограничена возможностями JavaScript и может использовать значительный объем ЦП и памяти клиента.
Примером клиентского эмулятора терминала является vt100.js. [1]
Эмуляция терминала на стороне сервера
Эмуляция терминала на стороне сервера отслеживает экран терминала и его состояние в памяти и преобразует его в HTML, когда происходит обновление экрана или когда клиент запрашивает обновление. Этот метод имеет преимущество в сохранении состояния терминала, даже если пользователь подключается к своему текущему сеансу из другого веб-браузера, но он может использовать больше ресурсов ЦП и памяти на сервере.
Примером серверного эмулятора терминала является terminal.py. [2]
Преимущества
Основные преимущества веб- SSH можно обобщить следующим образом:
- Доступность : Веб-SSH, описанный в этой статье, не требует локальной установки клиентского программного обеспечения. Таким образом, можно получить доступ к серверам SSH через веб-браузер из любой точки мира. Поскольку связь основана на HTTP или HTTPS, также возможно получить доступ к серверам SSH из-за брандмауэра или прокси-сервера , которые ограничивают доступ в Интернет только портами 80 ( HTTP ) или 443 ( HTTPS ).
- Анонимный доступ : поскольку доступ SSH туннелируется через промежуточный сервер веб-приложений , именно этот сервер фактически взаимодействует с сервером SSH. Это означает, что сервер SSH будет знать только IP-адрес сервера веб-приложений, скрывая фактический IP-адрес клиента.
- Аудиторская проверка : поскольку все коммуникации между клиентом и сервером SSH должны проходить через сервер веб-приложений, эта коммуникация может быть зарегистрирована. Это не позволяет вредоносному клиенту удалять журналы своей деятельности. Ситуация точно такая же, как и с традиционным сервером SSH.
- Возобновление сеансов : некоторые веб-реализации SSH позволяют пользователю возобновлять сеансы SSH после отключения. Это невозможно с традиционным клиентом SSH.
- Встраиваемость : веб-реализации SSH могут быть встроены в любую веб-страницу, что позволяет интегрировать их в другие веб-приложения.
- Уникальные функции : многие веб-инструменты SSH обладают уникальными функциями, такими как возможность совместного использования терминалов с другими пользователями, возможность отображения изображений внутри терминалов и другие полезные возможности.
Важные вопросы
При использовании веб-клиента SSH необходимо учитывать следующие моменты:
- Безопасность : Важно убедиться, что HTTPS используется при взаимодействии с сервером веб-приложений . В противном случае все отправляемые данные будут доступны для чтения с помощью простых анализаторов пакетов , которые могут раскрыть конфиденциальную информацию.
- Trust : данные, отправляемые на сервер веб-приложений, расшифровываются там. Это необходимо для пересылки выданных команд на реальный сервер SSH . Несмотря на то, что операторы веб-решений SSH обычно не регистрируют конфиденциальные данные, теоретически данные доступны им в открытом виде. Маловероятно, что это вызовет проблему безопасности, если сервер веб-приложений и сервер SSH работают на одном сервере или контролируются одной и той же сущностью.
- Туннелирование : в отличие от большинства традиционных клиентов SSH на основе приложений, клиенты SSH на основе веб-технологий не могут туннелировать («пересылать») трафик TCP . Например, запуск сеанса X поверх сеанса SSH на основе веб-технологий невозможен. Однако отсутствие возможности вызвано проблемами реализации, а не изначально. [3]
Бесплатные и открытые примеры
- Расширение Secure Shell от Google для Chrome и Chromium [4] связывает эмулятор терминала JavaScript hterm с клиентским кодом OpenSSH , работающим на Native Client . [5] Расширение Secure Shell работает с не-Google HTTP-to-SSH прокси через proxy hooks, а стороннее приложение nassh-relay [6] может использовать эти hooks, чтобы включить расширение Secure Shell для установки SSH-соединения через XMLHttpRequest или WebSocket transport.
- shellinabox [7] работает как автономная служба или совместно с nginx для предоставления HTTPS- доступа к оболочке входа и поставляется в комплекте для дистрибутивов Linux , производных от Debian и RedHat .
- webssh [8] — похожее решение, написанное на Python.
- Bastillion [9] — это самостоятельный веб-хостинг bastion с возможностями аудита и управления ключами. Пользователи подключаются к централизованному серверу через HTTPS , а SSH-соединения проксируются через защищенный транспорт WebSocket .
- FireSSH — это плагин для браузера, работающий в Firefox ESR и Waterfox.
Ссылки
- ^ «Архив Google Code — долгосрочное хранилище для хостинга проектов Google Code».
- ^ «Terminal.py — чистый эмулятор терминала Python — документация Gate One 1.2.0».
- ^ jcterm утверждает, что может обрабатывать переадресацию портов, например, переадресацию X11
- ^ «Приложение Secure Shell».
- ^ Часто задаваемые вопросы о Chromium Secure Shell
- ^ nassh-relay репозиторий GitHub
- ^ "Shellinabox". GitHub . 28 октября 2021 г.
- ^ «Webssh: веб-клиент SSH».
- ^ Bastillion — веб-доступ по протоколу SSH и управление ключами