Tutoriales

Qué es OpenVPN y qué características nos da en las Redes Privadas Virtuales

Si algo se persigue en el mundo de las redes es por encima de todo es la seguridad, tanto para empresas como para usuarios es una de las grandes preocupaciones de Internet. Y la respuesta actualmente están en las redes VPN, aunque no100% efectivas el hecho de cifrar las conexiones le confiere mayor privacidad y seguridad a nuestro acceso a Internet. Hoy conoceremos de la forma más completa posible OpenVPN, aplicación y protocolo culpable de la mayoría de accesos VPN en el mundo.

Y es que el uso de redes VPN se ha disparado en los últimos años, con un incremento cercano al 170% hasta 2020, contando con más de mil millones de usuarios conectados a alguna VPN. Existen una enorme cantidad de compañías que ofrecen servicios VPN a nivel mundial principalmente de pago, aunque también de forma gratuita, y todas ellas operan entre otros, con el protocolo OpenVPN.

Unos de los más importantes en la actualidad, aunque cabe decir que no es el más seguro, siempre hay margen de mejora. Pero su gran ventaja es que además de ser propiamente un protocolo de comunicación VPN, también cuenta con sus propias aplicaciones de cliente y servidor de código abierto y accesible para todos.

Comencemos por el principio: ¿Qué son las VPN?

Una VPN o Red Privada Virtual es una tecnología de comunicación aplicada a las redes para intercambio de datos entre dispositivos electrónicos que permite establecer una conexión segura de una red de área local (LAN) sobre los dominios de una red WAN pública como es Internet.

El gran potencial de una red VPN es que es capaz de extender una red de área local por encima de los límites de un edificio o habitación. Una VPN es en sí misma una LAN en donde hay conectados nodos geográficamente separados a cualquier distancia. Esto permite que los nodos envíen y reciban datos sobre redes públicas como si fuera una red privada.

Estructura de una red VPN y funcionamiento

No solo se trata de una extensión de la red, sino de establecer un sistema de comunicación cifrado en la infraestructura, con cifrado a nivel de red, y funcionalidades y políticas de gestión similares a los de una LAN.

Para ello se realiza una conexión virtual punto a punto haciendo uso de conexiones dedicadas mediante protocolos como OpenVPN que hoy explicamos y otros como L2TP, PPTP o IKEv2. A pesar de que la conexión entre nodos se realiza mediante la WAN, el usuario la ve como una LAN, ya que la dirección IP nos la suministrará el servidor al que nos conectaremos. Este pasará a ser un segundo enrutador de nuestra red por el que pasará todo el contenido de ida y vuelta.

La conexión física se realiza de distintas formas, una de ellas es mediante túneles cifrados o tunneling. Se crea un túnel virtual en donde los datos se transfieren en encapsulados dentro de PDU (unidad de datos de protocolo). Todo ello a través de conexión cableada y acceso remoto, en donde se utiliza la infraestructura existente para transmitir los datos. Funcionamiento:

  1. Cliente VPN: el cliente será nuestro equipo provisto de una aplicación o extensión cliente que inicia la conexión a través de unas credenciales hacia el servidor. En OpenVPN ya veremos que se utiliza claves pre-compartidas o certificados SSL/TLS + RSA.
  2. Servidor VPN: las credenciales de acceso se envían a un servidor VPN el cual proporcionará una dirección IP privada al equipo para transmitir dentro de la red.
  3. Túnel VPN: para esta transmisión se utiliza un túnel virtual por el que la información viaja encriptada en PDU. Esta conexión se realizar entre cliente y servidor.
  4. Acceso al contenido: cuando el servidor recibe la petición la desencripta, y se conecta con el servicio que hemos demandado, por ejemplo, una página web, un servicio de streaming o el servidor de nuestra empresa si estamos trabajando fuera. Luego encripta de nuevo los datos y nos lo envía.

Ventajas que nos da una VPN y limitaciones

Tras ver en qué consiste una conexión y red VPN, solo queda ver qué es lo que realmente podemos hacer con ellas y qué no. A que en definitiva son servicios normalmente de pago en el caso de que no creemos nosotros una o utilicemos la propia de nuestra empresa de trabajo si fuera el caso.

  • Navegación segura y encriptada: esto ya lo hemos repetido por activa y por pasiva, siendo su principal ventaja. El hecho de usar esos túneles nos coloca en una posición más segura frente a hackers y sniffers de red.
  • Acceder a contenido geobloqueado en nuestro país: una de las principales ventajas de una VPN es que al establecer conexión con un servidor externo, por ejemplo en EE. UU, es como si navegáramos desde ese país, accediendo a contenido no visible desde nuestro origen. Por ejemplo, poder acceder desde China a Facebook, o ver el 100% de contenido de Netflix.
  • Conectarnos para trabajar desde lugares públicos: cuando estamos fuera, normalmente accedemos a Internet desde la WiFi pública de turno, lugar bastante seguro.
  • Navegar de forma anónima y sin que guarden nuestros datos de navegación, claves o cookies.

Claro que también obtendremos limitaciones:

  • Disminución del ancho de banda y aumento de la latencia: son dos factores siempre presentes en una VPN. El primero por usar mayor encriptación y el segundo porque nuestros datos hacen un camino más largo.
  • No seremos invulnerables: la mayor parte de culpa de que nos infectemos de un virus la tendremos nosotros accediendo a contenido turbio. Una VPN admitirá en principio cualquier contenido al que accedamos, así que seguiremos necesitando un antivirus.
  • No es una Darkweb un una Deep Web: esto quiere decir que no operaremos al margen de la ley. Las VPN son servicios completamente legales y sujetos a normas como todo. Siempre habrá datos que los gobiernos pueden interceptar para comprobar nuestras prácticas. Para la Deep Web solamente podremos acceder con Tor.

Ahora que ya sabemos bastante acerca de las redes VPN, será más fácil ponernos en situación con el protocolo OpenVPN, conociéndolo a fondo y viendo cómo opera. No vamos a realizar ninguna configuración sobre un servidor VPN en este artículo, ya que se alargaría demasiado, aunque sí veremos cómo se realiza la conexión desde el lado del cliente con un servidor que tenemos nosotros mismos creado en un router Asus.

El protocolo OpenVPN

Open VPN es tanto un protocolo de comunicación como una aplicación informática de código abierto y licencia de software libre para realizar conexiones VPN. La programación de la aplicación está realizada principalmente en C, y se basa en enlaces de tipo SSL (Secure Sockets Layer) y TLS (Transport Layer Security). OpenVPN no soporta por tanto protocolos L2TP o PPTP, ya que es un protocolo personalizado basado los dos anteriormente citados.

La arquitectura de conexión y comunicación es la típica de una VPN, basada en punto-a-punto. Para efectuar esta conexión se requiere validación jerárquica entre usuarios y servidor a través de certificados SSL/TLS + RSA de forma remota. Soporta todo tipo de enlaces de red, como WiFi IEEE 802.11, Ethernet 802.3 y red de datos móviles.

OpenVPN fue creado en 2001 por James Yonan, como una forma de conexión lo más sencilla posible para redes VPN frente a otras como IPsec. En ella se combina su gran cantidad de posibilidades de configuración, encriptación en la conexión mediante certificados y un relativamente fácil uso. Si bien es cierto que existen otros protocolos como L2TP o IPsec que también se basan en certificados y claves para efectuar la conexión.

Cómo funciona VPN y en qué capa OSI actúa

Se pone de manifiesto que la gran ventaja de una VPN es extender una LAN a través de Internet, por lo que OpenVPN es uno de los protocolos más utilizados para eliminar esos enlaces dedicados para interconectar distintas redes de corporaciones y empresas.

Con esta solución se puede operar en lugares geográficamente separados utilizando enlaces troncales o de alta velocidad de la red WAN por ejemplo de fibra óptica solamente implementando un servidor OpenVPN en la corporación y una serie de clientes para su acceso al medio. El volumen de conexiones que acepta el protocolo no son problema para implementar redes a gran escala, pudiendo personalizar el nivel de acceso de clientes según credenciales con los certificados RSA.

Para entender mejor el funcionamiento del protocolo conviene echar mano de las capas del modelo OSI, siempre presentes en redes. Open VPN trabajará en las siguientes:

Aquí operan los distintos estándares IEEE que controlan la conexión a nivel de enlace y otros como PPP o FDDI. Esta capa construye las tramas de bits con la información y además otros elementos para controlar que la transmisión se haga de forma correcta.

Aquí es donde se realiza el primer encapsulamiento de datos para su transporte. Aquí trabajan protocolos como OpenVPN que se basa en SSL/TLS para cifrar el contenido, y otros como, PPTP propio de Microsoft y desfasado en beneficio de L2TP, L2F propio de Cisco o L2Sec.

Esta capa se encarga de la identificación del enrutamiento entre dos o más redes conectadas, siendo el protocolo más conocido el IP. Concretamente la versión más utilizada para redes VPN es el IPsec, el cual permite encapsular los datos en tramas de la capa 3, aunque no los de capas inferiores. Como hemos comentado OpenVPN ofrece una solución más sencilla que IPsec para el transporte de datos.

Es en esta capa en donde se crean los túneles VPN para transportar los datos, siendo capaces de transportar cualquier tipo datos IP. Para ello se realiza un encapsulamiento que llamaremos PDU, en donde se encripta la información de enrutamiento, como es la dirección IP de origen y destino.

La conexión también puede utilizar el modo transporte, en el que solamente se encripta la carga de datos del paquete, no encriptando por tanto la información de origen y destino. Este es más inseguro que el método de tunneling.

Este nivel es el encargado de permitir a los usuarios ejecutar acciones y comandos en sus propias aplicaciones como por ejemplo un botón para enviar un email. En ella también actua OpenVPN por el hecho de tener una aplicación accesible por el usuario para realizar la conexión con el servidor.

De hecho, el tunneling también se puede realizar desde esta capa a través de los protocolos SSL y TLS. O incluso a través de un navegador mediante una extensión previamente instalada a través del protocolo HTTPS. Aquí es donde OpenVPN recurre a los mecanismos de cifrado de este tipo pudiendo saltarse prácticamente cualquier firewall.

Acceso y seguridad de OpenVPN

Open VPN utiliza claves de cifrado para proteger los datos duramente la comunicación, utilizando dos métodos llamados: de claves estáticas pre-compartidas y por certificados SSL/TLS + RSA. El primero de ellos instala una clave en todos los clientes que pretendan acceder al servidor VPN, es un método bastante sencillo. El segundo método es la opción más segura, basándose en dos claves públicas y dos privadas basadas en OpenSSL, bastante utilizado en la mayoría de conexiones OpenVPN en la actualidad

Vamos a explicar estos dos métodos de conexión más detalladamente para ver cómo funcionan.

Cifrado por claves SSL/TLS + RSA

Este método es el más seguro de los dos y el que se utiliza con mayor frecuencia como es lógico. En el sistema, cada servidor y cliente tienen dos claves, una pública y otra privada. La clave pública sirve para cifrar los datos, por lo que se enviará a todos los clientes que quieran conectarse, mientras que la clave privada es la que los descifrará.

De esta forma no solo necesitaremos una clave, sino dos para conseguir hacer la comunicación. Estas claves se conocen como certificados SSL/TLS de 256 bit por estar basado en el software OpenSSL que siempre viene instalado en los sistemas operativos. Estos certificados podremos generarlos nosotros mismos al crear una VPN mediante algoritmos matemáticos. Solamente tendrán acceso a la VPN aquellos nodos con ambos certificados firmados.

La seguridad se aumenta con una criptografía de tipo RSA, algoritmo matemático que llega ese nombre por sus creadores (Rivest, Shamir y Adleman). Esta clave se utiliza tanto para crear el certificado como para firmarlo. Además, se utiliza cifrado de tipo AES Camelia, CAST-128 o 3DES.

Claves pre-compartidas

También llamado sistema de cifrado simétrico por tener una clave de cifrado en los dos extremos de la conexión. El método es simple, aquellos nodos que tengan la clave podrán descifrar el tráfico de la red, siendo un método considerado inseguro porque si algún hacker obtiene dicha clave podrá ver todo el contenido de la red.

Obviamente no será tan simple obtener la clave, ya que hay mecanismos para cambiar estas claves cada cierto periodo de tiempo, tiendo un lifetime o tiempo de vida útil. Es posible no obstante romper la propia clave con un sistema potente, por lo que la longitud de la misma será fundamental para asegurar la seguridad.

Comunicación en OpenVPN

En la comunicación OpenVPN se suele utilizar el protocolo UDP para la capa 4 o capa de transporte de datos del modelo OSI. De hecho, los puertos que abramos en el enrutador para admitir conexiones de clientes externos serán de tipo UDP. No obstante, si la conexión falla en un primer momento se intentará conectar a través de TCP.

Para los que no los conozcan, son dos protocolos usados en la capa de transporte de datos, la encargada de hacer que los datos llegar de un extremo a otro.

  • UDP es un protocolo no orientado a la conexión, por lo que cliente y servidor no necesitan aceptar la comunicación para realizarla. Esto hace que sea mucho más rápido que TCP, aunque no asegura que los datos lleguen al destino o que llegue en orden.
  • Mientras que TCP es orientado a la conexión, así que se debe abrir la comunicación antes de enviar, asegurando que los datos van a llegar por tener corrección de errores. Pero su desventaja es que es más lento.

Para poder conectar el servidor OpenVPN con el exterior y así recibir conexiones de clientes fuera de una LAN real necesitaremos abrir un total de tres puertos normalmente. OpenVPN utiliza el puerto 1194 UDP, así como los protocolos UDP 500 y UDP 4500 para IPSec.

Cómo conectarnos a un servidor VPN: proceso

A grandes rasgos, vamos a explicar el procedimiento para conectarnos a un servidor OpenVPN y así entrar en la red. En este caso no explicaremos como hacer un servidor, ya que esto da para un artículo completo.

Generación de certificados en el lado del servidor

CUsersIgnacioDesktopclient1.ovpn_-_Notepad++_2015-02-13_00-28-36

Lo primero que debería hacer nuestro administrador es crear los correspondientes certificados para los clientes tal y como hemos comentado antes. Si nosotros montáramos un servidor en casa o en el router habría que hacerlos también.

Se nos suministrará un fichero de configuración con los datos del servidor. En principio nosotros como clientes no necesitaremos tocar nada del fichero, ya que la configuración de IP, puertos y protocolos ya deberían de venir pre configurados.

Instalación del cliente

En nuestro caso general necesitaremos un cliente para conectarnos al servidor, y aunque no es la única forma de hacerlo, sí es la más recomendable de largo. Desde la página oficial de OpenVPN.net podremos descargar el cliente. Elegimos como no un instalador para el sistema que tengamos y su arquitectura.

Debemos colocar el fichero de configuración en el directorio en donde hayamos instalado el cliente OpenVPN, que normalmente será en Archivos de programa/OpenVPN/config/ o Archivos de programa (x86).

Tras esto solamente tendremos que establecer la conexión colocando usuario y contraseña. Si la conexión es correcta, el servidor cargará los certificados en el cliente para comenzar la comunicación cifrada.

Normalmente en los propios ficheros de configuración se cargan estos certificados para mayor comodidad, en todo caso nosotros no tendremos que hacer nada al respecto como clientes.

Plataformas compatibles

Lo bueno de OpenVPN es que es compatible con prácticamente cualquier plataforma. No solo podremos utilizarlo con Windows, el cliente está disponible para Mac, Linux por supuesto, iOS y Android a través de las tiendas correspondientes de forma gratuita.

Por ser un protocolo sumamente utilizado y popular, la mayoría de compañías VPN ofrecen soporte o directamente trabajan con él en conjunción con otros protocolos. Incluso muchos routers actuales de fabricantes como Asus, sobre todo, NETGEAR, TP-Link, etc. ofrecen soporte tanto de cliente como de servidor en el aparato. Por lo que tener una VPN está al alcance de todos.

Private Tunnel: OpenVPN para conectarnos a otros países desde Android

Antes de hacer balance final de OpenVPN hemos visto muy interesante la nueva aplicación disponible para Android con la que poder conectarnos a la red VPN en cualquier parte desde nuestro Smartphone. Solamente necesitaremos una cuenta de usuario para conectar nuestro terminal a la red VPN.

El servicio en principio es gratuito, aunque tras crearnos la cuenta y confirmarla, nos dará la posibilidad de rellenar los datos de pago para adquirir el servicio premium. Es una excelente forma de navegar a través de servidores de todos los países de forma gratuita y sin limitación de datos ni ancho de banda, ya que parece que la suscripción gratuita no tiene este tipo de limitaciones.

El terminal la detectará como una VPN normal y corriente, desde la aplicación podremos ver que los protocolos utilizados son el TCP, UDP, HTTP Proxy y OFBS Proxy, por lo que interpretamos que no es una VPN como tal sino algo más similar a un Proxy SSL.

Al menos sí que nos permitirá conectarnos a cualquier servidor de la enorme lista disponible sin limitación, lo cual vendrá muy bien para contenido geobloqueado como se hace con las otras VPN de consumo general.

Ventajas y desventajas de OpenVPN frente a otros protocolos VPN

Finalizamos este artículo sobre OpenVPN como no con las ventajas y desventajas que nos puede ofrecer el protocolo y cómo está frente a los otros protocolos utilizados en VPN.

Ventajas

  • Seguridad a nivel de conexión, estabilidad y velocidad al basarse principalmente en el protocolo UDP en la capa 4. Usa claves AES de 256 bit, y certificados basados en SSL/TLS
  • Opera en la capa 2 o capa 3 OSI, pudiendo utilizar túneles para la conexión además a través de cualquier cortafuegos por la posibilidad de utilizar también HTTPS. Esto viene muy bien para desbloquear contenido de otros países como Netflix y otras plataformas.
  • Como hemos visto justo en el apartado anterior, soporta conexiones de tipo proxy con protocolos como HTTP o OFBS junto a TCP o UDP, tanto como servidor como cliente.
  • El hecho de ser una VPN proporciona las mismas posibilidades que una red LAN en cuanto a reglas NAT, credenciales o restricciones.
  • Soporte para gran cantidad de plataformas, así como posibilidad de crear servidores en routers compatible o incluso en nuestro sistema operativo.
  • Es un protocolo y software de código abierto, por lo que continuamente está siendo actualizado y mejorado.
  • Su capacidad de actualización hace que siempre esté a un buen nivel de seguridad y encriptación

Desventajas

  • Todavía el montaje de un servidor OpenVPN o configuración de clientes en modo comando se hace algo complejo.
  • Como en la gran mayoría de VPN, según la conexión, ubicación y servidor al que nos conectemos obtendremos un deterioro del ancho de banda y sobre todo de la latencia.

Conclusiones

Esperamos traer pronto el tutorial de cómo montar un servido OpenVPN en distintas plataformas, mientras tanto, esperamos que con este artículo hayamos acercado OpenVPN a más público para que puedan conocer sus características básicas.

Ahora os dejamos algunos tutoriales de redes interesantes, así como el tutorial para montar un servidor OpenVPN en un router Asus.

Esperamos que no haya sido demasiado aburrido, pero conocer algo de teoría antes de llegar a la práctica también es interesante. ¿Conocías las redes VPN y este protocolo?

José Antonio Castillo

Graduado en Ingeniería en Tecnologías Industriales. Amante de la informática, el gaming y casi cualquier deporte de motor.
Los datos de carácter personal que nos facilite mediante este formulario quedarán registrados en un fichero de Miguel Ángel Navas Carrera, con la finalidad de gestionar los comentarios que realizas en este blog. La legitimación se realiza a través del consentimiento del interesado. Si no se acepta no podrás comentar en este blog. Puedes consultar Política de privacidad. Puede ejercitar los derechos de acceso, rectificación, cancelación y oposición en [email protected]
Botón volver arriba