Включите исполнение JavaScript в браузере, чтобы запустить приложение.

OpenSSH: свободная реализация сетевого протокола

18 сен 2024
OpenSSH: свободная реализация сетевого протокола. История создания, развитие, компоненты OpenSSH | GitVerse

В настоящее время для защиты данных многие сайты используют соединение https, однако такое решение устраивает не всех. Поэтому ряд компаний по тем или иным причинам предпочитают протокол SSH. В нашей статье расскажем про OpenSSH, его возможности и правила установки.

Общее описание и назначение

OpenSSH — Open Secure Shell или открытая безопасная оболочка — это набор инструментов с открытым исходным кодом, который применяется администраторами IT-систем для удаленного управления кроссплатформенными системами. 

Преимущества OpenSSH:

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

OpenSSH интегрирован в базовые системы различных продуктов и операционных систем. Например, этот протокол защиты используют: Mac OS X с версии 10.1 и выше, Microsoft Windows, Nokia IPSO, Alcatel OmniSwitch, все системы Linux, включая Red Hat.

Краткая история создания и развития 

В конце 1995 года дебютировал проект операционной системы OpenBSD на базе NetBSD 1.0. В 1999 году его разработчики поставили перед собой задачу создать открытый протокол SSH, который должен был получить развитие в будущем.

Впервые видоизмененный протокол SSH появился в 1999 году благодаря Бьорну Гренваллю. Он создал его на базе бесплатной версии SSH 1.2.12 от Тату Юленена, исправив выявленные в ней ошибки и назвав свое детище OSSH. По слухам, этот продукт был внедрен в ряд швейцарских коммерческих продуктов. Кстати, лицензия Тату, которая содержалась в этом выпуске, до сих пор встречается в некоторых частях Open Secure Shell.

Однако созданный Гренваллем OSSH поддерживал только протокол SSH 1.3, который был недостаточно защищен от кибератак. То есть риск утечки информации оставался значительным. В итоге OSSH так и не перешел на SSH2.

В декабре 1999 года после выхода OpenBSD 2.6 Маркусом Фридлом была продолжена разработка поддержки протокола SSH 2. В результате с июня 2000 года OpenSSH 2.0 поставлялась совместно с OpenBSD 2.7 под стандартной публичной лицензией GNU.

Современные релизы доступны под малой общей публичной лицензией GNU, то есть облегченной версией GPL. В последнем выпуске OpenSSH 9.7 от 11 марта 2024 года протокол SSH 2.0 реализован на 100%, также в нем присутствует поддержка клиента sftp и server. К слову, OpenBSD тоже продолжает активно развиваться. Так, 5 апреля 2024 года вышел 56 релиз, получивший название OpenBSD 7.5. 

Основные компоненты и команды

В последней версии OpenSSH реализован протокол SSH 2, который включает в себя три компонента, каждый из которых состоит из нескольких слоев.

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

В OpenSSH 9.7 доступен следующий пул команд:

  • ssh — базовая клиентская программа для входа на удаленную машину и выполнения команд на ней;
  • sshd — daemon для входа в систему, который обеспечивает безопасность зашифрованной связи через незащищенную сеть между двумя ненадежными хостами;
  • ssh_config — файл конфигурации клиента;
  • sshd_config — файл конфигурации daemon;
  • ssh-agent — агент аутентификации, позволяющий хранить закрытые ключи;
  • ssh-add — инструмент добавления идентификаторов закрытого ключа в ssh-agent;
  • sftp — ftp-подобная программа для безопасной передачи файлов по протоколам ssh1 и ssh2;
  • scp — программа для безопасного копирования файлов между хостами в сети;
  • ssh-keygen — утилита, предназначенная для генерации, управления и преобразования ключей аутентификации;
  • sftp-server — подсистема sftp-сервера;
  • ssh-keyscan — эффективная утилита для сбора общедоступных ключей ssh нескольких хостов;
  • ssh-keysign — помощник для аутентификации на основе хоста, по умолчанию отключен, для включения нужно перейти в файл глобальной конфигурации клиента и выставить соответствующие настройки.

Функции и возможности

Открытый исходный код и бесплатное лицензирование. Такой подход позволяет пользователям получить доступ к OpenSSH с возможностью аудита кода и исправления выявленных ошибок. Эта разработка гарантирует безопасность продукта, так как его тестирует много людей. В исходном коде нет патентов, ограничивающих пользователей, а все лицензированные или патентованные компоненты добавляются из LibreSSL и иных внешних библиотек.

Криптографическое шифрование. В OpenSSH любая информация передается только в зашифрованном виде, а шифры и типы ключей регулярно обновляются. В настоящее время также реализованы алгоритмы RSA, AES, ECDSA, ChaCha20, схема цифровой подписи Ed25519. Помимо передачи данных, криптография обеспечивает защиту от поддельных пакетов.

Перенаправление соединений X11 (X Window System 11 версии) по защищенному каналу. Злоумышленники не смогут отследить удаленные эмуляторы терминалов наподобие xtrem или отправить вредоносную команду. 

Переброс портов. Позволяет создать между локальным и удаленным компьютером защищенный туннель. Применяется для соединений TCP/IP. За счет этого можно обеспечить безопасность самых разных интернет-приложений, включая почтовые протоколы типа POP.

Жесткая аутентификация. В OpenSSH используются одноразовые пароли, протокол Kerebros, открытые ключи. Это обеспечивает защиту от подмены DNS, IP, поддельных маршрутов.

Среди других функций и возможностей — автоматическая переадресация агента аутентификации, поддержка всех криптографических алгоритмов для разных релизов SSH, поддержка сервера и sftp-клиента, повышенная производительность медленных сетевых каналов за счет дополнительного сжатия данных перед шифрованием.

Обзор мер безопасности

В OpenSSH реализован жесткий процесс обеспечения безопасности, аналогичный тому, что используется в OpenBSD. В каждом новом релизе есть исправленные ошибки, выявленные внимательными пользователями, что значительно снижает риск потери данных. 

Так, в последней версии 9.7 добавлен «глобальный» тип тайм-аута, который отслеживает все открытые каналы. Если ни на одном из них в течение заданного промежутка времени не будет трафика, все открытые каналы автоматически закроются. Это нововведение появилось как дополнение к существующим тайм-аутам для недавно добавленных каналов. Глобальный тайм-аут полезен, например, для ситуаций, когда один из каналов активно используется, а другой простаивает.

Если при работе с OpenSSH вы обнаружили проблему безопасности, сообщите об этом в службу поддержки GitVerse или напишите нам на почту support@gitverse.ru.