OpenVPN es un sistema de red privada virtual (VPN) que implementa técnicas para crear conexiones seguras punto a punto o sitio a sitio en configuraciones enrutadas o puenteadas, así como funciones de acceso remoto. Implementa aplicaciones tanto de cliente como de servidor .
OpenVPN permite que los pares se autentiquen entre sí mediante claves secretas precompartidas , certificados o nombre de usuario / contraseña . Cuando se utiliza en una configuración multicliente-servidor, permite que el servidor emita un certificado de autenticación para cada cliente, utilizando firmas y una autoridad de certificación .
Utiliza ampliamente la biblioteca de cifrado OpenSSL , así como el protocolo TLS , e incluye numerosas funciones de seguridad y control. Al emplear un protocolo de seguridad personalizado [ 11 ] que utiliza SSL/TLS para el intercambio de claves, es capaz de atravesar traductores de direcciones de red (NAT) y cortafuegos [ 12 ] .
OpenVPN se ha adaptado e integrado en varios sistemas. Por ejemplo, DD-WRT cuenta con la función de servidor OpenVPN. SoftEther VPN , un servidor VPN multiprotocolo, también implementa el protocolo OpenVPN. [ 13 ]
Fue escrito por James Yonan y es software libre , publicado bajo los términos de la Licencia Pública General GNU versión 2 (GPLv2). [ 14 ] Además, hay licencias comerciales disponibles. [ 15 ]
Arquitectura
Cifrado
OpenVPN utiliza la biblioteca OpenSSL para proporcionar cifrado tanto de los canales de datos como de control. Permite que OpenSSL se encargue de todo el trabajo de cifrado y autenticación, lo que permite a OpenVPN utilizar todos los algoritmos de cifrado disponibles en el paquete OpenSSL. También puede utilizar la función de autenticación de paquetes HMAC para añadir una capa adicional de seguridad a la conexión (denominada "cortafuegos HMAC" por su creador). Asimismo, puede utilizar la aceleración por hardware para obtener un mejor rendimiento de cifrado. [ 16 ] [ 17 ] La compatibilidad con mbed TLS está disponible a partir de la versión 2.3. [ 18 ]
Autenticación
OpenVPN ofrece varias formas de autenticar a los usuarios entre sí. Dispone de claves precompartidas , autenticación basada en certificados y autenticación mediante nombre de usuario y contraseña. La clave secreta precompartida es la más sencilla, mientras que la autenticación basada en certificados es la más robusta y completa . En la versión 2.0, se puede habilitar la autenticación mediante nombre de usuario y contraseña, con o sin certificados. Sin embargo, para utilizar este método, OpenVPN depende de módulos de terceros.
Redes de contactos
OpenVPN puede funcionar sobre protocolos de transporte UDP ( Protocolo de datagramas de usuario ) o TCP ( Protocolo de control de transmisión ), multiplexando los túneles SSL creados en un único puerto TCP/UDP [ 19 ] (RFC 3948 para UDP). [ 20 ]
Desde la serie 2.3.x en adelante, OpenVPN es totalmente compatible con IPv6 como protocolo de red virtual dentro de un túnel y las aplicaciones OpenVPN también pueden establecer conexiones a través de IPv6. [ 21 ] Tiene la capacidad de funcionar a través de la mayoría de los servidores proxy (incluido HTTP ) y es bueno para funcionar a través de la traducción de direcciones de red (NAT) y salir a través de firewalls. La configuración del servidor puede "enviar" ciertas opciones de configuración de red a los clientes. Estas incluyen direcciones IP, comandos de enrutamiento y algunas opciones de conexión. OpenVPN ofrece dos tipos de interfaces para redes a través del controlador Universal TUN/TAP . Puede crear un túnel IP basado en capa 3 (TUN) o un TAP Ethernet basado en capa 2 que puede transportar cualquier tipo de tráfico Ethernet. OpenVPN puede usar opcionalmente la biblioteca de compresión LZO para comprimir el flujo de datos. El puerto 1194 es el número de puerto oficial asignado por IANA para OpenVPN. Las versiones más recientes del programa ahora usan ese puerto por defecto. Una característica de la versión 2.0 permite que un proceso gestione varios túneles simultáneamente, a diferencia de la restricción original de "un túnel por proceso" de la serie 1.x.
El uso que hace OpenVPN de protocolos de red comunes (TCP y UDP) lo convierte en una alternativa atractiva a IPsec en situaciones donde un ISP puede bloquear protocolos VPN específicos para obligar a los usuarios a suscribirse a un plan de servicio más caro, de "nivel empresarial". Por ejemplo, Comcast declaró anteriormente que su producto @Home era, y siempre había sido, un servicio residencial y no permitía el uso de aplicaciones comerciales. Su argumento era que trabajar de forma remota a través de una VPN puede afectar negativamente el rendimiento de la red de sus suscriptores residenciales habituales. Ofrecieron una alternativa, @Home Professional, que costaría más que el producto @Home. Por lo tanto, cualquiera que deseara usar una VPN tendría que suscribirse a un plan de servicio más caro, de nivel empresarial. [ 22 ]
Cuando OpenVPN utiliza el protocolo de control de transmisión (TCP) para establecer un túnel, el rendimiento será aceptable solo si hay suficiente ancho de banda excedente en el enlace de red no tunelizado para garantizar que los temporizadores TCP tunelizados no expiren. [ 23 ] Si esto no se cumple, el rendimiento cae drásticamente debido al problema de colapso de TCP . [ 24 ] [ 25 ]
Seguridad
OpenVPN ofrece varias funciones de seguridad internas. Cuenta con cifrado de hasta 256 bits a través de la biblioteca OpenSSL , aunque algunos proveedores de servicios pueden ofrecer velocidades más bajas, lo que proporciona efectivamente una de las VPN más rápidas disponibles para los consumidores. OpenVPN también admite Perfect Forward Secrecy (PFS) , que regenera las claves de cifrado a intervalos establecidos, asegurando que incluso si una clave se ve comprometida, los datos anteriores y futuros permanecen seguros. Además, OpenVPN se puede configurar con varios algoritmos de cifrado, como ChaCha20 y AES-256. [ 26 ] Se ejecuta en el espacio de usuario en lugar de requerir la operación de la pila IP (por lo tanto, del kernel). OpenVPN tiene la capacidad de renunciar a los privilegios de root , usar mlockall para evitar el intercambio de datos confidenciales al disco, entrar en un entorno chroot después de la inicialización y aplicar un contexto SELinux después de la inicialización.
OpenVPN utiliza un protocolo de seguridad personalizado basado en SSL y TLS, [ 11 ] en lugar de admitir IKE, IPsec, L2TP o PPTP .
OpenVPN admite el uso de tarjetas inteligentes mediante tokens criptográficos basados en PKCS#11 .
Extensibilidad
OpenVPN se puede extender con complementos o scripts de terceros , que se pueden llamar en puntos de entrada definidos. [ 27 ] [ 28 ] El propósito de esto suele ser extender OpenVPN con un registro más avanzado, autenticación mejorada con nombre de usuario y contraseña, actualizaciones dinámicas del firewall, integración RADIUS , etc. Los complementos son módulos de carga dinámica, generalmente escritos en C , mientras que la interfaz de scripts puede ejecutar cualquier script o binario disponible para OpenVPN. En el código fuente de OpenVPN [ 29 ] hay algunos ejemplos de dichos complementos, incluido un complemento de autenticación PAM . También existen varios complementos de terceros para autenticarse contra bases de datos LDAP o SQL como SQLite y MySQL . [ 30 ]
Encabezamiento
Este es un ejemplo de un paquete de canal de control de OpenVPN cuando la autenticación basada en HMAC está habilitada (opción tls-auth en OpenVPN). Los paquetes de canal de datos, que transportan tráfico IP, tienen un formato diferente. [ 31 ]
Plataformas
Está disponible en Solaris , Linux , OpenBSD , FreeBSD , NetBSD , QNX , macOS y Windows XP y posteriores . [ 32 ] OpenVPN está disponible para sistemas operativos móviles , incluidos Maemo , [ 33 ] Windows Mobile 6.5 y anteriores, [ 34 ] dispositivos iOS 3GS+, [ 35 ] dispositivos iOS 3.1.2+ con jailbreak , [ 36 ] dispositivos Android 4.0+ y dispositivos Android que hayan tenido el firmware de posventa Cyanogenmod flasheado [ 37 ] o tengan el módulo del kernel correcto instalado. [ 38 ] No es compatible con algunos sistemas operativos de teléfonos móviles, incluido Palm OS . No es una VPN "basada en web" que se muestra como una página web como Citrix o el acceso web a Servicios de Terminal ; el programa se instala de forma independiente y se configura editando manualmente archivos de texto, en lugar de a través de un asistente basado en GUI. OpenVPN no es compatible con clientes VPN que utilizan los protocolos IPsec sobre L2TP o PPTP . El paquete completo consta de un archivo binario para las conexiones de cliente y servidor , un archivo de configuración opcional y uno o más archivos de clave, según el método de autenticación utilizado.
Implementaciones de firmware
OpenVPN se ha integrado en varios paquetes de firmware para routers, lo que permite a los usuarios ejecutar OpenVPN en modo cliente o servidor desde sus routers de red. Un router que ejecuta OpenVPN en modo cliente, por ejemplo, permite que cualquier dispositivo de la red acceda a una VPN sin necesidad de instalar OpenVPN.
Entre los paquetes de firmware más destacados con integración OpenVPN se incluyen:
OpenVPN también se ha implementado en el firmware de algunos routers de ciertos fabricantes.
Implementaciones de software
OpenVPN se ha integrado en SoftEther VPN , un servidor VPN multiprotocolo de código abierto, para permitir a los usuarios conectarse al servidor VPN desde clientes OpenVPN existentes.
OpenVPN también está integrado en Vyos , un sistema operativo de enrutamiento de código abierto derivado del enrutador de software Vyatta .
Licencias
OpenVPN está disponible en dos versiones:
- OpenVPN Community Edition, que es una versión gratuita y de código abierto.
- OpenVPN Access Server (OpenVPN-AS) se basa en la Community Edition, pero ofrece funciones adicionales de pago y propietarias como la integración LDAP, el servidor SMB, la administración de la interfaz web y proporciona un conjunto de herramientas de instalación y configuración que, según se informa, simplifican el despliegue rápido de una solución de acceso remoto VPN. [ 46 ] [ 47 ] La edición Access Server depende en gran medida de iptables para el equilibrio de carga y, por este motivo, nunca ha estado disponible en Windows. Esta versión también puede crear dinámicamente instaladores de cliente ("OpenVPN Connect"), que incluyen un perfil de cliente para conectarse a una instancia particular de Access Server. [ 48 ] Sin embargo, el usuario no necesita tener un cliente de Access Server para conectarse a la instancia de Access Server; se puede utilizar el cliente de OpenVPN Community Edition. [ 49 ]
Detectabilidad
Las conexiones OpenVPN se pueden detectar fácilmente mediante la inspección profunda de paquetes, [ 50 ] [ 51 ] [ 52 ] basándose en los datos de encabezado conocidos de los paquetes transmitidos, independientemente del protocolo o puerto utilizado. Si bien la inspección profunda de paquetes no permite determinar el contenido del túnel cifrado, se puede utilizar para bloquear la conexión, identificar a los participantes de la comunicación y registrar los datos relacionados. Esto es particularmente importante cuando el uso de conexiones VPN está prohibido en ciertos entornos, por ejemplo, en países donde las conexiones cifradas están prohibidas, o bajo la legislación civil al eludir los bloqueos de red en redes corporativas. [ 53 ] [ 54 ] [ 55 ] [ 56 ] [ 57 ]
Véase también
Referencias
- ↑ Registro de cambios de OpenVPN - Notas de la versión de OpenVPN
- ↑ "v2.7.5: 2026.07.01 -- Versión 2.7.5" . 1 de julio de 2026. Consultado el 1 de julio de 2026 .
- ↑ "Descargas" . openvpn.net . Consultado el 27 de enero de 2023 .
- ↑ "OpenVPN - Aplicaciones de Android en Google Play" .
- ↑ "VPN de túnel privado" . App Store . 23 de octubre de 2014. Archivado del original el 15 de marzo de 2015.
- ↑ "Cómo conectarse a Access Server desde un ordenador Linux" .
- ↑ "Búsqueda de puertos de FreeBSD" .
- ↑ "Puertos de OpenBSD" . Archivado del original el 18 de mayo de 2009.
- ↑ "Colección de paquetes de NetBSD: net/openvpn" .
- ↑ "openvpn_COPYING en master · OpenVPN_openvpn" . GitHub . 30 de julio de 2019. Consultado el 30 de julio de 2019 .
{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace ) - 1 2 "Descripción general de la seguridad de OpenVPN" . Archivado del original el 21 de agosto de 2018.
- ↑ "Comprensión de las técnicas de recorrido de red" . AnonymousVPNs.com . Consultado el 7 de agosto de 2025 .
- ↑ Bischoff, Paul (31 de agosto de 2018). "6 herramientas de código abierto para crear tu propia VPN" . Opensource.com . Archivado del original el 31 de agosto de 2018. Recuperado el 30 de julio de 2019 .
- ↑ LinuxSecurity.com - OpenVPN: Introducción y entrevista con su fundador, James Yonan
- ↑ openvpn.net: Precios , consultado el 12 de diciembre de 2018
- ↑ Andrew Lockhart (2006). Network Security Hacks: Tips & Tools for Protecting Your Privacy . O'Reilly Media, Inc. p. 339. ISBN 978-0-596-55143-8.
- ↑ 6net (2008). Guía de implementación de IPv6 . Javvin Technologies Inc. pág. 109. ISBN 978-1-60267-005-1.
{{cite book}}: CS1 maint: nombres numéricos: lista de autores ( enlace ) - ↑ Resumen de los cambios en OpenVPN v2.3 - ChangesInOpenvpn23 - Comunidad OpenVPN
- ↑ Página man de OpenVPN, sección "Opciones del modo TLS"
- ↑ Petros Daras; Oscar Mayora (2013). Medios centrados en el usuario: Primera Conferencia Internacional, UCMedia 2009, Venecia, Italia, 9-11 de diciembre de 2009, Artículos seleccionados revisados . Springer Science & Business Media. pág. 239. ISBN 978-3-642-12629-1.
- ↑ Wiki de la comunidad OpenVPN , IPv6 en OpenVPN - consultado el 8 de diciembre de 2013
- ↑ "Protocolo VPN OpenVPN" . privacyhq.com . Consultado el 24 de junio de 2021 .
- ↑ Murray, Mike (20 de marzo de 2021). "OPENVPN MTU: Cómo encontrar la configuración correcta" . The Geek Pub . Archivado del original el 20 de marzo de 2021. Recuperado el 20 de julio de 2022 .
- ↑ Titz, Olaf (23 de abril de 2001). "Por qué TCP sobre TCP es una mala idea" . Recuperado el 17 de octubre de 2015 .
- ↑ Honda, Osamu; Ohsaki, Hiroyuki; Imase, Makoto; Ishizuka, Mika; Murayama, Junichi (octubre de 2005). "Understanding TCP over TCP: effects of TCP tunneling on end-to-end throughput and latency". En Atiquzzaman, Mohammed; Balandin, Sergey I. (eds.). Performance, Quality of Service, and Control of Next-Generation Communication and Sensor Networks III . Vol. 6011. Bibcode : 2005SPIE.6011..138H . CiteSeerX 10.1.1.78.5815 . doi : 10.1117/12.630496 . S2CID 8945952 .
- ↑ "OpenVPN explicado: definición, cómo funciona y seguridad | NordVPN" . nordvpn.com (en alemán). 29 de noviembre de 2023. Consultado el 10 de septiembre de 2024 .
- ↑ "Puntos de entrada del script de OpenVPN" . Openvpn.net. Archivado del original el 9 de agosto de 2012. Consultado el 30 de julio de 2012 .
- ↑ Puntos de entrada del complemento OpenVPN para módulos basados en C.
- ↑ "Ejemplos de complementos de OpenVPN" . Openvpn.git.sourceforge.net . Consultado el 30 de julio de 2012 .
- ↑ Wiki de la comunidad OpenVPN - Proyectos relacionados
- ↑ Borrador de la especificación del protocolo OpenVPN Wire
- ↑ "Descargas" . openvpn.net . OpenVPN . Consultado el 6 de agosto de 2015 .
- ↑ "Paquete OpenVPN Maemo" . Maemo.org . Consultado el 30 de julio de 2012 .
- ↑ "OpenVPN para PocketPC" . Ovpnppc.ziggurat29.com. 1 de abril de 2007. Archivado del original el 20 de septiembre de 2012. Consultado el 30 de julio de 2012 .
- ↑ "OpenVPN Connect" . OpenVPN Technologies. 16 de enero de 2013. Consultado el 16 de enero de 2013 .
- ↑ "GuizmOVPN - Interfaz gráfica de usuario de OpenVPN para iPhone/iPad" . guizmovpn.com. 30 de septiembre de 2007. Consultado el 30 de septiembre de 2012 .
- ↑ "CHANGELOG en eclair de android_vendor_cyanogen de CyanogenMod" . GitHub . cyanogen. 7 de julio de 2010. Recuperado el 28 de octubre de 2010 .Registro de cambios de Nexus One Cyanogenmod
- ↑ "Cómo configurar OpenVPN en un dispositivo Android rooteado | Blog de VPN con información actualizada sobre VPN" . Vpnblog.info . Archivado del original el 26 de mayo de 2011.
- ↑ dd-wrt.com - OpenVPN
- ↑ Wiki de Gárgola - OpenVPN
- ↑ Documentación de IPFire OpenVPN
- ↑ "OpenVPN - Wiki de OpenWrt" . openwrt.org . Consultado el 11 de junio de 2018 .
- ↑ "opnsense.org - Anuncio de lanzamiento de OPNsense 17.1" . Archivado del original el 6 de agosto de 2018. Consultado el 9 de agosto de 2018 .
- ↑ "TomatoVPN" . Tomatovpn.keithmoyer.com . Consultado el 30 de julio de 2012 .
- ↑ LinksysInfo.org – VPN con interfaz gráfica web
- ↑ "Comparativa de productos OpenVPN" . Archivado del original el 11 de enero de 2017. Consultado el 15 de enero de 2017 .
- ↑ "¿Qué es OpenVPN Access Server (OpenVPN-AS)?" . Archivado del original el 11 de enero de 2017. Recuperado el 15 de enero de 2017 .
- ↑ "Acerca del repositorio chocolatey.org · Problema n.° 2 · wget/chocolatey_package_openvpn" . GitHub . 16 de enero de 2017 . Consultado el 16 de enero de 2017 .
- ↑ "¿Puedo usar un cliente OpenVPN comunitario para conectarme al servidor de acceso?" . Archivado del original el 11 de enero de 2017. Recuperado el 16 de enero de 2017 .
- ↑ "Detección de tráfico VPN a través del comportamiento TCP encapsulado" (PDF) . www.petsymposium.org . Consultado el 7 de agosto de 2025 .
- ↑ "Evitando la inspección profunda de paquetes: tunelización de tráfico sobre VPN TLS" . www.linuxjournal.com . Consultado el 7 de agosto de 2025 .
- ↑ "Un estudio demuestra que el tráfico de OpenVPN se puede identificar y bloquear fácilmente" . cyberinsider.com . 22 de marzo de 2024. Consultado el 7 de agosto de 2025 .
- ↑ "Restricciones de conexión VPN basadas en países: ¿Cómo evitarlas? - 🚀 VPS Hosting, Webhosting y Dedikované Servery" . mydreams.cz . Consultado el 7 de agosto de 2025 .
- ↑ "¿Qué es una VPN?" . www.cyberhaven.com . Consultado el 7 de agosto de 2025 .
- ↑ "Bloqueadores de VPN: métodos comunes utilizados para detectar VPN" . ascendantusa.com . 12 de febrero de 2025. Consultado el 7 de agosto de 2025 .
- ↑ "¿Son legales las VPN en Egipto? Navegando por el panorama regulatorio" . eg.andersen.com . 28 de marzo de 2024. Consultado el 7 de agosto de 2025 .
- ↑ "¿Son legales las VPN? Dónde se puede (y dónde no se puede) usar una VPN" . nym.com . 25 de abril de 2025. Consultado el 7 de agosto de 2025 .
Enlaces externos
- Sitio web oficial

- Sitio web de la comunidad
- Bridgett, Adrian (2 de febrero de 2008). "Presentación y demostración de OpenVPN" . Archivo . Grupo de Usuarios de Linux de Hampshire.Charlas técnicas archivadas el 29 de mayo de 2019 en Wayback Machine.
- mlockall
- Software de 2001
- Software de seguridad gratuito
- Protocolos de tunelización
- Software relacionado con redes Unix
- redes privadas virtuales
- Software libre programado en C