¿Qué es OpenConnect?
Conéctate a una VPN de forma segura: OpenConnect es un cliente y servidor de código abierto con TLS/DTLS, compatible con VPN SSL corporativas y una solución completa.
Contenido del artículo
OpenConnect es una aplicación de código abierto para conectarse a redes privadas virtuales (VPN) que establecen conexiones seguras punto a punto.
Originalmente fue creado como una alternativa de código abierto al cliente VPN SSL AnyConnect propietario de Cisco, que es compatible con varios routers Cisco. A partir de 2013, el proyecto OpenConnect también ofrece un servidor compatible con AnyConnect, ocserv, proporcionando así una solución completa de cliente-servidor VPN.
El cliente OpenConnect añadió soporte para la VPN SSL de Juniper Networks en la versión 7.05. Posteriormente, un fork desarrolló soporte para la VPN GlobalProtect de Palo Alto Networks, incluida en la versión 8.00.
Protocolos
Las VPN Cisco AnyConnect utilizan TLS para la autenticación y configuración de enrutamiento, seguido de DTLS para el cifrado eficiente y la transmisión de datos tunelizados. El tráfico VPN puede volver a la transmisión basada en TLS cuando los cortafuegos bloquean tráfico UDP. El protocolo DTLS usado por servidores Cisco AnyConnect se basó en un borrador no estándar de DTLS 1.0, hasta que en 2018 se añadió soporte para el estándar DTLS 1.2.
OpenConnect y ocserv implementan una versión extendida del protocolo AnyConnect VPN (propuesto como estándar de Internet) dentro de un proyecto de código abierto independiente de Cisco. Tanto OpenConnect como ocserv buscan mantener completa compatibilidad hacia atrás con servidores y clientes Cisco AnyConnect.
El cliente OpenConnect también implementa los protocolos de Juniper y GlobalProtect VPN. Estos tienen una estructura muy similar al protocolo AnyConnect: autentican y configuran el enrutamiento vía TLS, aunque utilizan ESP para el transporte seguro cifrado del tráfico de túnel (en vez de DTLS), pero también pueden retroceder a transporte basado en TLS.
Arquitectura
El cliente OpenConnect está escrito mayormente en C y contiene gran parte de la infraestructura necesaria para añadir protocolos VPN adicionales que funcionen de manera similar, y para conectarse a ellos con una interfaz de usuario común:
- Conexión inicial al servidor VPN vía TLS
- Fase de autenticación vía HTTPS (utilizando formularios HTML, certificados de cliente, XML, etc.)
- Configuración de enrutamiento proporcionada por el servidor en un formato estándar que puede ser manejado por vpnc-script
- Fase de transmisión de datos por túnel basado en UDP (DTLS o ESP) con retroceso a túnel basado en TLS
- Bucle integrado de manejo de eventos para gestionar Dead Peer Detection, keepalive, cambio de claves, etc.
Plataformas
OpenConnect está disponible en Solaris, Linux, OpenBSD, FreeBSD, MacOS y cuenta con clientes con interfaz gráfica para Windows, GNOME y KDE. También existe un cliente gráfico para OpenConnect en dispositivos Android y está integrado en paquetes de firmware para routers como OpenWrt.