Was ist OpenConnect?
Sichere VPN-Verbindungen: OpenConnect ist ein Open-Source-Client und -Server mit TLS/DTLS, kompatibel mit Unternehmens-SSL-VPNs und einer Komplettlösung.
Inhalt des Artikels
OpenConnect ist eine Open-Source-Software-Anwendung zur Verbindung mit virtuellen privaten Netzwerken (VPN), die sichere Point-to-Point-Verbindungen ermöglicht.
Ursprünglich wurde sie als Open-Source-Ersatz für den proprietären Cisco AnyConnect SSL VPN-Client entwickelt, der von mehreren Cisco-Routern unterstützt wird. Seit 2013 bietet das OpenConnect-Projekt zudem einen kompatiblen AnyConnect-Server, ocserv, und stellt somit eine vollständige Client-Server-VPN-Lösung bereit.
Der OpenConnect-Client fügte in Version 7.05 Unterstützung für Juniper Networks SSL VPN hinzu. Später wurde ein Fork entwickelt, der die Unterstützung für Palo Alto Networks' GlobalProtect VPN integrierte, welche mit der Version 8.00 veröffentlicht wurde.
Protokolle
Cisco AnyConnect VPNs nutzen TLS für die Authentifizierung und das Routing-Setup, anschließend DTLS für eine effiziente Verschlüsselung und den Transport der getunnelten Daten. Der VPN-Datenverkehr kann jedoch auf TLS-basierte Übertragung zurückfallen, wenn Firewalls UDP-basierten Datenverkehr blockieren. Das von Cisco AnyConnect eingesetzte DTLS-Protokoll basierte ursprünglich auf einem nicht standardisierten Entwurf von DTLS 1.0, bevor 2018 die Unterstützung für den DTLS 1.2 Standard hinzukam.
OpenConnect und ocserv implementieren eine erweiterte Version des AnyConnect VPN-Protokolls (das als Internet-Standard vorgeschlagen wurde) als eigenständiges Open-Source-Projekt unabhängig von Cisco. Sowohl OpenConnect als auch ocserv sind bestrebt, voll kompatibel zu Cisco AnyConnect-Servern und -Clients zu bleiben.
Der OpenConnect-Client unterstützt zudem die VPN-Protokolle von Juniper und GlobalProtect. Diese verfolgen eine ähnliche Struktur wie das AnyConnect-Protokoll: Authentifizierung und Routing-Einrichtung erfolgen über TLS, allerdings verwenden sie ESP für den effizienten und verschlüsselten Transport des Tunnelverkehrs (anstelle von DTLS). Auch hier ist ein Rückfall auf TLS-basierte Übertragung möglich.
Architektur
Der OpenConnect-Client ist hauptsächlich in C geschrieben und umfasst den Großteil der Infrastruktur, die benötigt wird, um zusätzliche VPN-Protokolle zu integrieren, die ähnlich funktionieren, und sie über eine gemeinsame Benutzeroberfläche zugänglich zu machen:
- Erstverbindung zum VPN-Server über TLS
- Authentifizierungsphase über HTTPS (mit HTML-Formularen, Client-Zertifikaten, XML etc.)
- Vom Server bereitgestellte Routing-Konfiguration in einem Standardformat, das von vpnc-script verarbeitet werden kann
- Datentransferphase durch UDP-basierten Tunnel (DTLS oder ESP) mit Fallback auf TLS-basierten Tunnel
- Integrierter Event-Loop zur Handhabung von Dead Peer Detection, Keepalive, Schlüsselwechsel usw.
Plattformen
OpenConnect ist auf Solaris, Linux, OpenBSD, FreeBSD und macOS verfügbar und bietet grafische Clients für Windows, GNOME und KDE. Ein grafischer OpenConnect-Client ist ebenfalls für Android-Geräte verfügbar und in Router-Firmware-Pakete wie OpenWrt integriert.