OpenConnect
OpenConnect is an open-source software application for connecting to virtual private networks (VPN), which implement secure point-to-point connections.
Original author(s) | David Woodhouse |
---|---|
Initial release | March 18, 2009[1] |
Stable release | 8.10
/ May 14, 2020[1] |
Repository | ![]() |
Type | VPN |
License | GNU LGPL |
Website | www |
It was originally written as an open-source replacement for Cisco's proprietary AnyConnect SSL VPN client,[2] which is supported by several Cisco routers. As of 2013, the OpenConnect project also offers an AnyConnect-compatible server, ocserv,[3] and thus offers a full client-server VPN solution.
The OpenConnect client added support for Juniper Networks' SSL VPN in version 7.05,[1]. A fork then developed support for Palo Alto Networks' GlobalProtect VPN,[4] which was included in the version 8.00 release.[5]
Protocols
Cisco AnyConnect VPNs utilize TLS to authenticate and configure routing, then DTLS to efficiently encrypt and transport the tunneled VPN traffic,[6][7] and can fall back to TLS-based transport where firewalls block UDP-based traffic. The DTLS protocol used by Cisco AnyConnect servers was based on a non-standard, pre-release draft of DTLS 1.0, until support for the DTLS 1.2 standard was added in 2018.[7][8]
OpenConnect and ocserv implement an extended version of the AnyConnect VPN protocol (which has been proposed as an Internet Standard[9]), within an open-source project unaffiliated with Cisco. Both OpenConnect and ocserv strive to maintain seamless backwards-compatibility with Cisco AnyConnect servers and clients.
The OpenConnect client also implements Juniper and GlobalProtect VPN protocols. These have a very similar structure to the AnyConnect protocol: they authenticate and configure routing over TLS, except that they use ESP for efficient, encrypted transport of tunneled traffic (instead of DTLS), but they too can fall back to TLS-based transport.
Architecture
The OpenConnect client is written primarily in C, and it contains much of the infrastructure necessary to add additional VPN protocols operating in a similar flow, and to connect to them via a common user interface:
- Initial connection to the VPN server via TLS
- Authentication phase via HTTPS (using HTML forms, client certificates, XML, etc.)
- Server-provided routing configuration in a standard format that can be processed by a vpnc-script
- Data transport phase via a UDP-based tunnel (DTLS or ESP), with fallback to a TLS-based tunnel
- Built-in event loop to handle Dead Peer Detection, keepalive, rekeying, etc.
Platforms
OpenConnect is available on Solaris, Linux, OpenBSD, FreeBSD, MacOS, and has graphical user interface clients for Windows[10], GNOME,[11] and KDE.[12] A graphical client for OpenConnect is also available for Android devices,[13] and it has been integrated into router firmware packages such as OpenWrt.[14]
References
- infradead.org - OpenConnect: Changelog.
- ""Development of OpenConnect was started after a trial of the Cisco client under Linux found it to have many deficiencies …"". Infradead.org. Retrieved 2018-08-13.
- ocserv home page.
- dlenski/openconnect on GitHub
- "OpenConnect 8.00 release". Lists.infradead.org. Retrieved 2019-01-05.
-
Tiso, John; Scholfield, Mark D.; Teare, Diane (2011). Designing Cisco Network Service Architectures (ARCH): Foundation Learning Guide. Foundation Learning Guides (3 ed.). Cisco Press. p. 464. ISBN 9781587142888. Retrieved 2013-06-13.
Cisco AnyConnect is a Cisco implementation of the thick client. Because the SSL VPN network extension runs on top of the SSL protocol, it is simpler to manage and has greater robustness with different network topologies such as firewalls and Network Address Translation (NAT) than the higher security of IPsec.
- Mavrogiannopoulos, Nikos (2013-11-17). "nmav's Blog: Inside an SSL VPN protocol". Nmav.gnutls.org. Retrieved 2018-08-13.
- "Release Notes for the Cisco ASA Series, 9.10(x)". Cisco. December 12, 2018.
- N. Mavrogiannopoulos (October 2018). The OpenConnect VPN Protocol Version 1.1. IETF. I-D draft-mavrogiannopoulos-openconnect-02.
- "Openconnect graphical client". GitHub. Retrieved 2014-10-28.
- "NetworkManager". gnome.org. Retrieved 2014-10-28.
- "NetworkManagement". kde.org. Retrieved 2014-10-28.
- cernekee. "Android UI for OpenConnect VPN client". GitHub. Retrieved 2014-10-28.
- "VPN Overview". openwrt.org. Retrieved 2018-03-15.
External links
Some useful usage information.