OpenVerbinden - OpenConnect
| Oorspronkelijke auteur(s) | David Woodhouse |
|---|---|
| Ontwikkelaar(s) | Daniel Lenski, Nikos Mavrogiannapoulos |
| Eerste uitgave | 18 maart 2009 |
| Stabiele vrijlating | 8.10 / 14 mei 2020
|
| Opslagplaats | |
| Type | VPN |
| Vergunning | GNU LGPL v2.1 |
| Website | www |
OpenConnect is een open-source softwaretoepassing om verbinding te maken met virtuele privénetwerken (VPN), die veilige point-to-point- verbindingen implementeren .
Het is oorspronkelijk geschreven als een open-source vervanging voor Cisco 's eigen AnyConnect SSL VPN-client, die wordt ondersteund door verschillende Cisco- routers . De OpenConnect-client heeft ondersteuning toegevoegd voor Juniper Networks ' SSL VPN in versie 7.05. Een fork ontwikkelde vervolgens ondersteuning voor Palo Alto Networks 'GlobalProtect VPN, die was opgenomen in de versie 8.00-release.
Server
Vanaf 2013 biedt het OpenConnect-project ook een AnyConnect-compatibele server, ocserv , en biedt daarmee een volledige client-server VPN-oplossing.
OpenConnect en ocserv implementeren nu een uitgebreide versie van het AnyConnect VPN-protocol, dat is voorgesteld als een internetstandaard . Zowel OpenConnect als ocserv streven ernaar om achterwaartse compatibiliteit met Cisco AnyConnect-servers en -clients te behouden.
Protocollen
Cisco AnyConnect
Cisco AnyConnect VPN's gebruiken TLS om de routering te verifiëren en configureren, en vervolgens DTLS om het getunnelde VPN-verkeer efficiënt te coderen en te transporteren, en kunnen terugvallen op TLS-gebaseerd transport waarbij firewalls op UDP gebaseerd verkeer blokkeren . Het DTLS-protocol dat door Cisco AnyConnect-servers wordt gebruikt, was gebaseerd op een niet-standaard, pre-releaseversie van DTLS 1.0, totdat in 2018 ondersteuning voor de DTLS 1.2-standaard werd toegevoegd.
OpenConnect's implementatie van het AnyConnect-protocol is voldoende volledig dat sommige van Cisco's eigen IP-telefoonapparaten een zeer oude versie van OpenConnect insluiten (in plaats van Cisco's eigen propriëtaire software) om verbinding te kunnen maken met Cisco SSL VPN's.
DTLS
De eigen AnyConnect-clients en -servers van Cisco zijn oorspronkelijk gebouwd tegen een gepatchte versie van OpenSSL 0.9.8f uit 2007, die een pre-releaseversie van DTLS implementeerde die niet compatibel was met DTLS 1.0 zoals gestandaardiseerd in RFC 4347 . Hierdoor was het moeilijk om OpenConnect een Cisco-compatibele versie van DTLS te laten implementeren zonder koppeling met OpenSSL.
Expliciete ondersteuning voor Cisco's niet-standaard versie van DTLS was opgenomen in OpenSSL 0.9.8m (waar het bekend staat als DTLS1_BAD_VER) en vervolgens GnuTLS 3.2.1 (waar het bekend staat als GNUTLS_DTLS0_9). Nieuwere versies van Cisco's AnyConnect-clients en -servers ondersteunen DTLS 1.2 in zijn gestandaardiseerde on-the-wire vorm ( RFC 6347 ), hoewel ze nog steeds een niet-standaard mechanisme gebruiken (gebaseerd op hervatting van sessies) voor DTLS-sleuteluitwisseling.
Moderne versies van openconnect kan worden gebouwd om te gebruiken ofwel de GnuTLS of OpenSSL voor TLS , DTLS en cryptografische primitieven.
Andere protocollen
De openconnect cliënt voert ook Juniper , Junos Pulse en GlobalProtect VPN-protocollen. Deze hebben een zeer vergelijkbare structuur als het AnyConnect-protocol: ze authenticeren en configureren routering via TLS, behalve dat ze ESP gebruiken voor efficiënt, versleuteld transport van getunneld verkeer (in plaats van DTLS), maar ook zij kunnen terugvallen op TLS-gebaseerd transport. Vanaf mei 2020 is ondersteuning voor verschillende PPP-gebaseerde protocollen in ontwikkeling.
architectuur
De OpenConnect-client is voornamelijk in C geschreven en bevat veel van de infrastructuur die nodig is om aanvullende VPN-protocollen toe te voegen die in een vergelijkbare stroom werken, en om er verbinding mee te maken via een gemeenschappelijke gebruikersinterface:
- Eerste verbinding met de VPN-server via TLS
- Authenticatiefase via HTTPS (met behulp van HTML-formulieren , clientcertificaten , XML , enz.)
- Door de server geleverde routeringsconfiguratie, in een protocolonafhankelijk formaat, dat kan worden verwerkt door een vpnc-script
- Gegevenstransportfase via een UDP-gebaseerde tunnel (DTLS of ESP), met fallback naar een TLS-gebaseerde tunnel
- Ingebouwde gebeurtenislus voor het afhandelen van Dead Peer-detectie , keepalive , rekeying , enz.
Openconnect kunnen worden gebouwd om te gebruiken ofwel de GnuTLS of OpenSSL bibliotheken voor TLS , DTLS en cryptografische primitieven.
Platformen
OpenConnect is beschikbaar op Solaris , Linux , OpenBSD , FreeBSD , MacOS en heeft grafische gebruikersinterface-clients voor Windows , GNOME en KDE . Een grafische client voor OpenConnect is ook beschikbaar voor Android- apparaten en is geïntegreerd in routerfirmwarepakketten zoals OpenWrt .
Referenties
Externe links
Enkele nuttige gebruiksinformatie.