OpenConnect - OpenConnect

OpenConnect
Originalautor(en) David Woodhouse
Entwickler Daniel Lenski, Nikos Mavrogiannopoulos
Erstveröffentlichung 18. März 2009 ( 2009-03-18 )
Stabile Version
8.10 / 14. Mai 2020 ; vor 16 Monaten ( 2020-05-14 )
Repository
Typ VPN
Lizenz GNU LGPL v2.1
Webseite www .infradead .org / Openconnect /

OpenConnect ist eine Open-Source-Softwareanwendung für die Verbindung mit virtuellen privaten Netzwerken (VPN), die sichere Punkt-zu-Punkt- Verbindungen implementieren .

Es wurde ursprünglich als Open-Source - Ersatz für schriftlich Cisco ‚s proprietären AnyConnect SSL VPN - Client, der von mehreren Cisco unterstützt wird Router . Der OpenConnect-Client hat in Version 7.05 Unterstützung für SSL-VPN von Juniper Networks hinzugefügt . Ein Fork entwickelte dann Unterstützung für Palo Alto Networks ' GlobalProtect VPN, das in der Version 8.00 enthalten war.

Server

Seit 2013 bietet das OpenConnect-Projekt auch einen AnyConnect-kompatiblen Server, ocserv , und damit eine vollständige Client-Server- VPN-Lösung.

OpenConnect und ocserv implementieren nun eine erweiterte Version des AnyConnect VPN-Protokolls, das als Internet-Standard vorgeschlagen wurde . Sowohl OpenConnect als auch ocserv bemühen sich um Abwärtskompatibilität mit Cisco AnyConnect-Servern und -Clients.

Protokolle

Cisco AnyConnect

Cisco AnyConnect VPNs verwenden TLS zur Authentifizierung und Konfiguration des Routings, dann DTLS zum effizienten Verschlüsseln und Transportieren des getunnelten VPN-Datenverkehrs und können auf TLS-basierten Transport zurückgreifen, bei dem Firewalls UDP- basierten Datenverkehr blockieren . Das von Cisco AnyConnect-Servern verwendete DTLS-Protokoll basierte auf einem nicht standardmäßigen Vorab-Entwurf von DTLS 1.0, bis 2018 die Unterstützung für den DTLS 1.2-Standard hinzugefügt wurde.

Die Implementierung des AnyConnect-Protokolls durch OpenConnect ist so vollständig, dass einige von Ciscos eigenen IP-Telefongeräten eine sehr alte Version von OpenConnect (und nicht Ciscos eigene proprietäre Software) einbetten, um sich mit Cisco SSL VPNs verbinden zu können.

DTLS

Ciscos proprietäre AnyConnect-Clients und -Server wurden ursprünglich für eine gepatchte Version von OpenSSL 0.9.8f aus dem Jahr 2007 entwickelt, die eine Vorabversion von DTLS implementierte, die nicht mit DTLS 1.0 kompatibel war, wie in RFC 4347 standardisiert . Aus diesem Grund war es schwierig, OpenConnect dazu zu bringen, eine Cisco-kompatible Version von DTLS zu implementieren, ohne gegen OpenSSL zu verknüpfen.

Explizite Unterstützung für Ciscos Nicht-Standard-Version von DTLS wurde in OpenSSL 0.9.8m (wo es als bekannt ist DTLS1_BAD_VER) und dann in GnuTLS 3.2.1 (wo es als bekannt ist GNUTLS_DTLS0_9) enthalten. Neuere Versionen der AnyConnect-Clients und -Server von Cisco unterstützen DTLS 1.2 in seiner standardisierten On-the-Wire-Form ( RFC 6347 ), verwenden jedoch weiterhin einen nicht standardmäßigen Mechanismus (basierend auf Sitzungswiederaufnahme) für den DTLS-Schlüsselaustausch.

Moderne Versionen von OpenConnect können erstellt werden, um entweder GnuTLS oder OpenSSL für TLS , DTLS und kryptografische Primitive zu verwenden.

Andere Protokolle

Der OpenConnect-Client implementiert auch die VPN-Protokolle Juniper , Junos Pulse und GlobalProtect . Diese haben eine sehr ähnliche Struktur wie das AnyConnect-Protokoll: Sie authentifizieren und konfigurieren das Routing über TLS, verwenden jedoch ESP für den effizienten, verschlüsselten Transport von getunneltem Verkehr (anstelle von DTLS), können aber auch auf TLS-basierten Transport zurückgreifen. Ab Mai 2020 befindet sich die Unterstützung für mehrere PPP-basierte Protokolle in der Entwicklung.

Die Architektur

Der OpenConnect-Client ist hauptsächlich in C geschrieben und enthält einen Großteil der Infrastruktur, die erforderlich ist, um zusätzliche VPN-Protokolle hinzuzufügen, die in einem ähnlichen Ablauf arbeiten, und um eine Verbindung zu ihnen über eine gemeinsame Benutzeroberfläche herzustellen:

  • Erstverbindung zum VPN-Server über TLS
  • Authentifizierungsphase über HTTPS (mit HTML-Formularen , Clientzertifikaten , XML usw.)
  • Vom Server bereitgestellte Routing-Konfiguration in einem protokollunabhängigen Format, das von einem VPN-Skript verarbeitet werden kann
  • Datentransportphase über einen UDP-basierten Tunnel (DTLS oder ESP), mit Fallback auf einen TLS-basierten Tunnel

OpenConnect kann erstellt werden, um entweder die GnuTLS- oder OpenSSL- Bibliotheken für TLS , DTLS und kryptografische Primitive zu verwenden.

Plattformen

OpenConnect ist unter Solaris , Linux , OpenBSD , FreeBSD , MacOS verfügbar und verfügt über Clients mit grafischer Benutzeroberfläche für Windows , GNOME und KDE . Ein grafischer Client für OpenConnect ist auch für Android- Geräte verfügbar und wurde in Router- Firmware-Pakete wie OpenWrt integriert .

Verweise

Externe Links

Einige nützliche Nutzungsinformationen.