OpenConnect
OpenConnect is a free and open-source cross-platform multi-protocol virtual private network (VPN) client software which implement secure point-to-point connections. The OpenConnect client supports the following VPN protocols: Cisco AnyConnect Juniper Secure Connect (since 7.05) Palo Alto Networks GlobalProtect (since 8.00) Ivanti/Pulse Connect Secure (since 8.04) F5 BIG-IP and Fortinet FortiGate and Array Networks AG SSL VPN (since 8.20) It was originally written as an open-source replacement for Cisco's proprietary AnyConnect SSL VPN client, which is supported by several Cisco routers. , support for several other proprietary VPN protocols is desired or in development: SonicWall NetExtender VPN support Check Point SNX VPN support H3C VPN support Barracuda CloudGen Firewall VPN support Huawei VPN support 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 protocol-agnostic format, which 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