OpenConnect - OpenConnect

OpenConnect
Автор (ы) оригинала Дэвид Вудхаус
Разработчики) Даниэль Ленски, Никос Маврогианнопулос
Первый выпуск 18 марта 2009 г. ( 2009-03-18 )
Стабильный выпуск
8.10 / 14 мая 2020 г . ; 16 месяцев назад ( 2020-05-14 )
Репозиторий
Тип VPN
Лицензия GNU LGPL v2.1
Веб-сайт www .infradead .org / openconnect /

OpenConnect - это программное приложение с открытым исходным кодом для подключения к виртуальным частным сетям (VPN), которые реализуют безопасные двухточечные соединения.

Первоначально она была написана как замена с открытым исходным кодом для Cisco «s патентованного AnyConnect клиент SSL VPN, которая поддерживается несколько Cisco маршрутизаторов . Клиент OpenConnect добавил поддержку SSL VPN от Juniper Networks в версии 7.05. Затем форк разработал поддержку GlobalProtect VPN от Palo Alto Networks , которая была включена в выпуск версии 8.00.

Сервер

По состоянию на 2013 год проект OpenConnect также предлагает сервер ocserv , совместимый с AnyConnect , и, таким образом, предлагает полное решение клиент-серверной VPN.

OpenConnect и ocserv теперь реализуют расширенную версию протокола AnyConnect VPN, который был предложен в качестве стандарта Интернета . И OpenConnect, и ocserv стремятся поддерживать обратную совместимость с серверами и клиентами Cisco AnyConnect.

Протоколы

Cisco AnyConnect

Cisco AnyConnect VPN использует TLS для аутентификации и настройки маршрутизации, затем DTLS для эффективного шифрования и транспортировки туннелированного трафика VPN и может вернуться к транспорту на основе TLS, где межсетевые экраны блокируют трафик на основе UDP . Протокол DTLS, используемый серверами Cisco AnyConnect, был основан на нестандартном предварительном проекте DTLS 1.0, пока в 2018 году не была добавлена ​​поддержка стандарта DTLS 1.2.

Реализация протокола AnyConnect в OpenConnect является достаточно полной, так что некоторые из собственных IP-телефонов Cisco встраивают очень старую версию OpenConnect (а не собственное программное обеспечение Cisco), чтобы иметь возможность подключаться к Cisco SSL VPN.

DTLS

Проприетарные клиенты и серверы Cisco AnyConnect изначально создавались на основе исправленного выпуска 2007 года OpenSSL 0.9.8f, в котором реализована предварительная версия DTLS , несовместимая с DTLS 1.0, как это стандартизовано в RFC 4347 . Из-за этого было сложно заставить OpenConnect реализовать Cisco-совместимую версию DTLS без связывания с OpenSSL.

Явная поддержка нестандартной версии Cisco DTLS была включена в OpenSSL 0.9.8m (где он известен как DTLS1_BAD_VER), а затем в GnuTLS 3.2.1 (где он известен как GNUTLS_DTLS0_9). Новые версии клиентов и серверов Cisco AnyConnect поддерживают DTLS 1.2 в его стандартизированной интерактивной форме ( RFC 6347 ), хотя они продолжают использовать нестандартный механизм (основанный на возобновлении сеанса) для обмена ключами DTLS.

Современные версии OpenConnect могут быть созданы для использования либо GnuTLS, либо OpenSSL для TLS , DTLS и криптографических примитивов.

Другие протоколы

Клиент OpenConnect также реализует протоколы Juniper , Junos Pulse и GlobalProtect VPN. Они имеют очень похожую структуру с протоколом AnyConnect: они аутентифицируют и настраивают маршрутизацию через TLS, за исключением того, что они используют ESP для эффективного, зашифрованного транспорта туннельного трафика (вместо DTLS), но они тоже могут вернуться к транспорту на основе TLS. По состоянию на май 2020 года поддержка нескольких протоколов на основе PPP находится в стадии разработки.

Архитектура

Клиент OpenConnect написан в основном на C и содержит большую часть инфраструктуры, необходимой для добавления дополнительных протоколов VPN, работающих в аналогичном потоке, и для подключения к ним через общий пользовательский интерфейс:

  • Первоначальное подключение к VPN-серверу через TLS
  • Фаза аутентификации через HTTPS (с использованием HTML-форм , клиентских сертификатов , XML и т. Д.)
  • Предоставляемая сервером конфигурация маршрутизации в независимом от протокола формате, которая может быть обработана сценарием vpnc.
  • Фаза передачи данных через туннель на основе UDP (DTLS или ESP) с откатом к туннелю на основе TLS

OpenConnect может быть построен , чтобы использовать либо в GnuTLS или OpenSSL библиотеки для TLS , DTLS и криптографических примитивов.

Платформы

OpenConnect доступен в Solaris , Linux , OpenBSD , FreeBSD , MacOS и имеет клиенты с графическим пользовательским интерфейсом для Windows , GNOME и KDE . Графический клиент для OpenConnect также доступен для устройств Android и интегрирован в пакеты прошивки маршрутизатора, такие как OpenWrt .

использованная литература

внешние ссылки

Некоторая полезная информация об использовании.