OpenVPN | ||
---|---|---|
Información general | ||
Tipo de programa | VPN | |
Autor | James Yonan | |
Desarrollador | OpenVPN project / OpenVPN Technologies, Inc. | |
Lanzamiento inicial | 1.1.0 / 10 de abril de 2002[1] | |
Licencia | GNU GPL | |
Información técnica | ||
Plataformas admitidas | Multiplataforma | |
Versiones | ||
Última versión estable | 2.6.9 (info) ( 12 de febrero de 2024 (10 meses y 14 días)) | |
Archivos legibles | ||
| ||
Archivos editables | ||
| ||
Enlaces | ||
OpenVPN es una herramienta de conectividad basada en software libre: SSL (Secure Sockets Layer), VPN Virtual Private Network (red virtual privada). OpenVPN ofrece conectividad punto-a-punto con validación jerárquica de usuarios y host conectados remotamente. Resulta una muy buena opción en tecnologías Wi-Fi (redes inalámbricas IEEE 802.11) y soporta una amplia configuración, entre ellas balanceo de cargas. Está publicado bajo la licencia GPL, de software libre.
OpenVPN es un producto de software creado por James Yonan en el año 2001 y que ha estado mejorando desde entonces.
Ofrece una combinación de seguridad, facilidad de uso y riqueza de características.[2]
Es una herramienta multiplataforma que ha simplificado la configuración de VPN's frente a otras más antiguas y difíciles de configurar como IPsec y haciéndola más accesible para gente inexperta en este tipo de tecnología.
Por ejemplo: Supóngase que se necesita comunicar diferentes sucursales de una organización. A continuación se verá algunas soluciones que se han surgido para satisfacerla.
En el pasado las comunicaciones se realizaban por correo, teléfono o fax. Hoy en día hay factores que hacen necesaria la implementación de soluciones más sofisticadas de conectividad entre las oficinas de las organizaciones a lo largo del mundo.
Dichos factores son:
Líneas dedicadas
Las necesidades antes mencionadas se satisfacían en principio colocando líneas dedicadas entre las diferentes ubicaciones remotas a un costo mucho mayor que el de simple acceso a Internet. Se necesitaban conexiones físicas reales necesitando de un proveedor en cada sitio resultando en una solo línea de comunicación entre dos partes.
Por ejemplo, para una red de 4 nodos en la cual se buscase comunicación de todos con todos, habría que tender 6 líneas de comunicación.
Además, para dar conectividad a trabajadores domésticos o viajeros se implementaban servicios RAS1 para aquellos que necesitaban conectarse temporalmente mediante conexiones de módem o líneas ISDN2 donde la organización se comportaba como un proveedor de Internet (ISP).
Acceso mediante Internet y VPNs
Con la llegada de Internet y la baja de costos en conectividad se desarrollaron nuevas tecnologías. Surgió entonces la idea de utilizar a Internet como medio de comunicación entre los diferentes sitios de la organización. Surge así la idea de las VPN's que son “Virtuales” y “Privadas”. Virtuales porque no son redes directas reales entre partes, sino solo conexiones virtuales provistas mediante software sobre la red Internet. Además son privadas porque solo la gente debidamente autorizada puede leer los datos transferidos por este tipo de red logrando la seguridad mediante la utilización de modernos mecanismos de criptografía. Retomando el ejemplo anterior de una organización con cuatro sitios, ahora solo necesitamos cuatro conexiones a Internet en lugar de las seis dedicadas de antes. Además los que se conectan temporalmente, también lo hacen mediante una conexión a Internet, mucho más barata y accesible desde muchos lugares, como por ejemplo de cibercafés.
Las VPN se usan generalmente para:
Supóngase que se tienen dos sitios de una organización conectados a Internet. En ambos se contará con un equipo de conexión a la red de redes que cumplirá la función de ruteo hacia y desde Internet así como firewall para protegerse de accesos no autorizados.
El software VPN debe estar instalado en ese firewall o algún dispositivo protegido por él. Uno de los sitios será el “servidor” y será el sitio que contiene la información y sistemas que queremos compartir, mientras que al otro lo llamaremos “cliente”. El servidor será entonces configurado para aceptar conexiones desde el cliente (y viceversa).
Llegado este punto habremos logrado tener dos sitios comunicados como en una red directa real, pero aún no es una VPN dado que falta implementar la “privacidad”, pues cualquier nodo intermedio de Internet puede leer la información que viaja sin protección.
Lo que se debe hacer seguidamente es establecer mecanismos de cifrado que mediante uso de claves aseguren que solo equipos o personas dueños de esas claves puedan acceder a los datos enviados por la VPN.
Todos los datos enviados del punto A al B deberán ser cifrados antes de ser enviados y descifrados en el otro extremo para posteriormente ser entregados normalmente a su destinatario final.
Uno de los factores que diferencian a una implementación de VPN de otra, son los mecanismos que utilicen para cifrar y distribuir claves a todos los integrantes de dicha red.
Las soluciones de VPN pueden ser implementadas a diferentes niveles del modelo OSI de red. Implementaciones de capa 2 - Enlace
El encapsulamiento a este nivel ofrece ciertas ventajas ya que permite transferencias sobre protocolos no-IP, como por ejemplo IPX4 de Netware Systems.
Teóricamente, las tecnologías implementadas en capa 2 pueden tunelizar cualquier tipo de paquetes y en la mayoría de los casos lo que se hace es establecer un dispositivo virtual PPP5 con el cual se establece la conexión con el otro lado del túnel.
Algunos ejemplos de estas tecnologías:
Su principal desventaja es que solo puede establecer un túnel por vez entre pares.
Implementaciones de capa 3 - Red
IPsec es la tecnología más aceptada en este punto y fue desarrollada como un estándar de seguridad de Internet en capa 3. IPsec se puede utilizar para encapsular cualquier tráfico de capa 3 pero no el tráfico de capas inferiores, por lo que no se podrá utilizar para protocolos no-IP como IPX o mensajes de broadcast.
Su principal ventaja es que puede ser usado prácticamente en cualquier plataforma existiendo una gran variedad de soluciones tanto de software como de hardware.
Existen dos métodos principales usados por IPsec:
Implementaciones de capa 7 - Aplicación
También es posible establecer túneles en la capa de aplicación y de hecho son ampliamente utilizados hoy en día siendo algunas aproximaciones soluciones como SSL6 y TLS7. El usuario accede a la VPN de la organización a través de un navegador iniciando la conexión en un sitio web seguro (HTTPS-Secured website).
Además, existen otros productos como SSL-Explorer y otros que ofrecen una combinación de gran flexibilidad, seguridad fuerte y facilidad de configuración.
La seguridad es lograda mediante cifrado del tráfico usando mecanismos SSL/TLS, los cuales han probado ser muy seguros y están siendo constantemente sometidos a mejoras y pruebas.
Implementación OpenVPN
OpenVPN es una solución para VPN que implementa conexiones de capa 2 o 3, usa los estándares de la industria SSL/TLS para cifrar y combina todas las características mencionadas anteriormente en las otras soluciones VPN.
Su principal desventaja por el momento es que hay muy pocos fabricantes de hardware que lo integren en sus soluciones. Sin embargo, en sistemas basados en Linux se puede implementar sin problemas mediante software.
Para cifrar datos se usan Passwords o claves de cifrado.
OpenVPN tiene dos modos considerados seguros, uno basado en claves estáticas pre-compartidas y otro en SSL/TLS usando certificados y claves RSA.
Cuando ambos lados usan la misma clave para cifrar y descifrar los datos, estamos usando el mecanismo conocido como “clave simétrica” y dicha clave debe ser instalada en todas las máquinas que tomarán parte en la conexión VPN.
Si bien SSL/TLS + claves RSA es por lejos la opción más segura, las claves estáticas cuentan con la ventaja de la simplicidad.
Se verá a continuación ese método y otros que aportan mayor seguridad y facilidad de distribución.
Cifrado simétrico y claves pre-compartidas
Cualquiera que posea la clave podrá descifrar el tráfico, por lo que si un atacante la obtuviese comprometería el tráfico completo de la organización ya que tomaría parte como un integrante más de la VPN.
Es por ello que mecanismos como IPsec cambian las claves cada cierto período, asociando a las mismas ciertos períodos de validez, llamados “tiempo de vida” o “lifetime”. Una buena combinación de tiempo de vida y longitud de la clave asegurarán que un atacante no pueda descifrar la clave a tiempo, haciendo que cuando finalmente la obtenga (porque lo hará), ya no le sirva por estar fuera de vigencia. IPSec utiliza su propio protocolo para intercambiar claves llamado IKE9 que ha sido desarrollado desde mediados de los noventa y aún no ha sido terminado.
Cifrado asimétrico con SSL/TLS
SSL/TLS usa una de las mejores tecnologías de cifrado para asegurar la identidad de los integrantes de la VPN.
Cada integrante tiene dos claves, una pública y otra privada.
La pública es distribuida y usada por cualquiera para cifrar los datos que serán enviados a la contraparte quien conoce la clave privada que es imprescindible para descifrar los datos. El par de clave pública/privada es generado a partir de algoritmos matemáticos que aseguran que solo con la clave privada es posible leer los datos originales. Si se encontrase un modo de quebrar la seguridad que estos algoritmos proporcionan, todas las conexiones cuya integridad depende de ellos se verían potencialmente comprometidas.
Es de destacar que la clave privada debe permanecer secreta mientras que la clave pública debe ser intercambiada para que nos puedan enviar mensajes.
Seguridad SSL/TLS
Las bibliotecas SSL/TLS son parte del software OpenSSL que viene instalado en cualquier sistema moderno e implementa mecanismos de cifrado y autenticación basados en certificados. Los certificados generalmente son emitidos por entidades de reconocida confiabilidad aunque también podemos emitirlos nosotros mismos y usarlos en nuestra propia VPN. Con un certificado firmado, el dueño del mismo es capaz de demostrar su identidad a todos aquellos que confíen en la autoridad certificadora que lo emitió.
Ventajas OpenVPN provee seguridad, estabilidad y comprobados mecanismos de cifrado sin sufrir la complejidad de otras soluciones VPN como las de IPsec.
Además ofrece otras ventajas comparativas, como son:
Desventajas
IPsec | OpenVPN |
---|---|
Estándar de la tecnología VPN | No compatible con IPsec |
Plataformas de hardware (dispositivos, aparatos) | Solo en computadoras, pero en todos los sistemas operativos disponibles, ya comienzan a encontrarse dispositivos que cuentan con OpenVPN |
Tecnología conocida y probada | Probada y sigue en crecimiento |
Muchas interfaces gráficas disponibles | Sin interfaces gráficas profesionales, aunque ya existen algunos proyectos prometedores |
Modificación compleja del stack IP | Tecnología sencilla |
Necesidad de modificaciones críticas al kernel | Interfaces de red y paquetes estandarizados |
Necesidad de permisos de administrador | Ejecuta en el espacio del usuario y puede ser chroot-ed |
Diferentes implementaciones de distintos proveedores pueden ser incompatibles entre sí | Tecnologías de cifrado estandarizadas |
Configuración compleja y tecnología compleja | Facilidad, buena estructuración, tecnología modular y facilidad de configuración |
Curva de aprendizaje muy pronunciada | Fácil de aprender e implementar (incluso para principiantes) |
Necesidad de uso de múltiples puertos y protocolos en el firewall | Utiliza sólo un puerto del firewall |
Problemas con direcciones dinámicas en ambas puntas | Trabaja con servidores de nombres dinámicos como DynDNS o No-IP con reconexiones rápidas y transparentes |
Problemas de seguridad de las tecnologías IPsec | SSL/TLS como estándar de criptografía |
Control de tráfico (Traffic shaping) | |
Velocidad (más de 20 Mbps en máquinas de 1Ghz) | |
Compatibilidad con firewall y proxies | |
Ningún problema con NAT (ambos lados puede ser redes utilizando NAT) | |
Posibilidades para road warriors |
En Linux: