Ya he hablado anteriormente sobre VPN:

Pero nunca sobre los tipos. Puede que estés usando un tipo de VPN que no sea el que más se adapte a tus necesidades. O igual se pase de necesidades y estés usando más recursos de los necesarios. Hoy vamos a ver los tipos de VPN más importantes, sus características, como hacer nuestra propia VPN de cada tipo y como conectarnos a ella.

Tutorial VPN (Tipos, Instalación y Configuración) 0

Todos los tipos de VPN

Podemos dividir los tipos de VPN de varias formas, por ejemplo por el tipo de topología que se aplica, pero me parece que es mejor empezar dividiéndola por tipo de protocolo.

Los protocolos son una serie de reglas. Así, un protocolo de comunicación son una serie de reglas que se aplican para transmitir información, en este caso, de forma privada.

Protocolo VPN:  L2TP/IPsec

Este tipo de protocolo es el más complicado. Es la mejora del protocolo PPTP, uno de los primeros protocolos.

Son dos protocolos diferentes. Por un lado tenemos el protocolo L2TP que es el protocolo de capa 2 y luego la encriptación que es con el protocolo IPsec.

Este protocolo se centra sobre todo en el anonimato más que en la seguridad. Y es más lento que otros protocolos como OpenVPN. Además hay que hacer una configuración previa para evitar problemas con el firewall.

Protocolo VPN:  IKEv2

Se podría decir que es el siguiente nivel del protocolo L2TP/IPsec. Usa estos protocolos y añade el protocolo de intercambios de llaves, versión 2.

Es mantenido por Microsoft y Cisco.

Es más seguro que L2TP/IPsec pero sigue siendo más lento que OpenVPN.

Protocolo VPN:  OpenVPN

Este protocolo es el más equilibrado, por que dentro del propio protocolo podemos elegir el tipo de salida. Por TCP, más estable pero lenta. Por UDP menos estable pero rápida. Para resumir, TCP pide una confirmación por cada paquete enviado y UDP no, las manda todas de seguidas.

Tutorial VPN (Tipos, Instalación y Configuración) 2

Por lo tanto se suele usar para navegación normal el puerto TCP y si es para descarga de archivos o tareas que requieran gran carga el puerto UDP.

Este protocolo es actualmente el mejor en cuanto privacidad, encriptación y rapidez (según el modo como acabamos de ver).

 

¿Solo hay estos protocolos? No, en realidad hay varios más pero estos son los más destacables. Aunque también está el proyecto de la universidad Japonesa (SoftEther) y el aún en desarrollo WireGuard (con muchas nuevas características).

L2TP/IPsec IKEv2 OpenVPN
Velocidad Medio Rápido Rápido (puerto UDP)
Encriptación Media Buena Buena (ambos puertos)
Estabilidad Buena Buena Buena (puerto TCP)

Cómo configurar servidores VPN

Vamos a ver los pasos para tener un servidor VPN propio. En la mayoría de estos protocolos requieren una gran configuración previa, por eso vamos a utilizar varios scripts, que nos van a ahorrar mucho tiempo.

Voy a hacer las pruebas de estos servidores VPN en Cloud. En concreto voy a utilizar la prueba gratuita de Clouding.io.

Tutorial VPN (Tipos, Instalación y Configuración) 4

Para quien no conozca Clouding. Es una empresa española de servidores Cloud (en la nube). En un par de minutos tenemos listo un servidor. Tienen una red Cisco de 20Gbps así que nos viene perfecto para nuestro tráfico.

Hice varias pruebas en estos VPS. Que esté en la nube les da mucha flexibilidad y podemos cambiar los recursos rápidamente. Con el mínimo de 1GB de RAM, 0.5 VCores y 5 GB SSD nos va fluido para un par de usuarios en la VPN.

Configurar servidor VPN: L2TP/IPsec

Vamos a utilizar de sistema operativo Debian o Ubuntu. Lo primero que vamos a hacer es una actualización general y un reinicio.

sudo apt update && sudo apt dist-upgrade -y && sudo apt upgrade -y && sudo reboot

Vamos a instalar el servidor VPN L2TP/IPsec. Tenemos varias maneras de hacerlo.

  1. La de pruebas. Tan solo ejecutando el comando sin parámetros. Nos genera aleatoriamente las credenciales y nos las muestra al finalizar por pantalla.
  2. La de producción. Esta configuración a su vez podemos hacerla de 2 formas, con variables del sistema o editando directamente el script.

Podemos ver más sobre el script para instalar L2TP/IPsec VPN en su repositorio de Github.

Vamos a ejecutar la primera opción, generada automáticamente. Para ello tan solo tenemos que ir a la terminal, descargar el script y ejecutarlo.

wget https://git.io/vpnsetup -O vpnsetup.sh && sudo sh vpnsetup.sh

No tenemos que hacer nada más. Esperar a que nos muestre el mensaje con las credenciales y guardarlas para luego configurar los accesos de los clientes.

Tutorial VPN (Tipos, Instalación y Configuración) 6

Solo tenemos que configurar el firewall de la máquina donde estemos. Puede ser que el ordenador donde lo hayamos ejecutado no tenga.

Configurar cliente para L2TP/IPsec

Lo mejor de este protocolo es que no necesitas un programa para el cliente. Tiene una gran compatibilidad de forma nativa. Yo como ejemplo lo voy a configurar para Android, pero puedes ver aquí (en su repositorio) también como configurar para Windows, Mac, iOS, Chromebook o Linux.

Vamos a nuestro teléfono Android (en el caso de este ejemplo). Los nombres de las categorías pueden cambiar con el tiempo. Pero más o menos es con todas igual.

En Ajustes --> Red e Internet 

Tutorial VPN (Tipos, Instalación y Configuración) 8

Luego buscamos VPN y al entrar ya podemos ver que está vacía (si no tenemos ninguna VPN). Pulsamos el símbolo + para crear una nueva configuración.

Tutorial VPN (Tipos, Instalación y Configuración) 10

Tenemos que tener a mano el mensaje de las credenciales del servidor. Dentro de la nueva configuración ponemos:

  • Nombre: A elección, no es importante para el funcionamiento.
  • Tipo: L2TP/IPSec PSK
  • Dirección del servidor: La IP del servidor (Server IP). La miramos en el mensaje de las credenciales.
  • Clave precompartida de IPsec: IPsec PSK. La miramos en el mensaje de las credenciales.

Le damos a guardar y una vez pulsemos sobre ella ya nos pedirá el usuario y contraseña, que también están en el mensaje de las credenciales.

Si da algún error de conexión probablemente sea de una mala configuración del firewall.

Configurar servidor VPN: IKEv2

Utilizaremos el script del repositorio de GitHub. Vamos a realizarlo en un servidor Ubuntu 18.04. Comenzamos igual que con el anterior protocolo, con una actualización y reinicio.

sudo apt update && sudo apt dist-upgrade -y && sudo apt upgrade -y && sudo reboot

Ahora descargamos el script, le cambiamos los permisos para poder ejecutarlo y lo ejecutamos.

wget https://raw.githubusercontent.com/jawj/IKEv2-setup/master/setup.sh
sudo chmod u+x setup.sh && sudo ./setup.sh

Cuando lo ejecutemos nos va a pedir ingresar los parámetros de configuración. En la primera parte de parámetros de configuración nos va a pedir:

  • Hostname for VPN: Aquí nos da 2 opciones. Utilizar un dominio propio, como en mi caso en el que simplemente he creado un subdominio y en el registro A le he puesto la IP del servidor. O utilizar un generador de dominios público como sslip.io.
  • VPN username: El nombre del cliente para acceder a la VPN.
  • VPN password: La contraseña del cliente para acceder a la VPN.

Tutorial VPN (Tipos, Instalación y Configuración) 12

  • Public DNS servers includes: Son los DNS que van a usar todas las máquinas, ordenadores o portátiles que se conecten a la VPN. Es una parte crucial de una VPN. Qué más da que nuestro trafico sea privado si a la salida los DNS no lo son. Por eso recomiendo utilizar 1.1.1.1,1.0.0.1 de Cloudflare o 176.103.130.130,176.103.130.131 de AdGuard.

Tutorial VPN (Tipos, Instalación y Configuración) 14

  • Timezone: La dejamos por defecto aunque podríamos cambiarla para que se sincronice el reloj (Para saber que poner ejecutamos antes el comando timedatectl list-timezones | grep "Europe").
  • Email address for sysadmin: El correo del administrador. Es importante poner un correo real ya que nos va a enviar información importante para configurar.
  • New SSH log-in-user name: Por defecto nos crea un nuevo usuario SSH.
  • New SSH log-in-user's passowrd: Por defecto nos crea un nuevo usuario SSH.

Tutorial VPN (Tipos, Instalación y Configuración) 16

Ahora con el firewall. Si utilizamos un servidor cloud tenemos que pedir que nos abran el tráfico SMTP y luego hacer un reinicio. Además de abrir el tráfico UDP.

Configurar cliente VPN: IKEv2

En el correo que nos manda está toda la información de configuración. Aquí también puedes ver los diferentes tipos de clientes. Por ejemplo para instalarla en Android solo tenemos que descargarnos la aplicación oficial de strongSwan.

Luego meter nuestra configuración y ya lo tendríamos.

Tutorial VPN (Tipos, Instalación y Configuración) 18

Configurar servidor VPN: OpenVPN

Esta configuración ya la hice previamente y podemos leerla aquí: Instalar OpenVPN en 5 minutos. Es una instalación muy sencilla tanto en local como en un servidor.

Configurar cliente para OpenVPN

Necesitamos el archivo para el cliente y la app oficial de OpenVPN para gestionarlo.

Pruebas de velocidad

Estas pruebas pueden no ser iguales a otras ya que es muy importante la distancia de cada servidor y luego en la prueba la ubicación. Como es obvio, la velocidad de red va a ser menor, nuestro tráfico tiene que ir hasta el servidor y volver cifrado. Para resumir el protocolo L2PT/IPsec es el más lento y menos seguro. Y el OpenVPN (versión TCP) tiene una buena velocidad y gran seguridad.

Lo bueno de la compañía Clouding es que tienen los servidores en España. Así que la distancia al servidor es mínima.

Wi-FI base para pruebas

Tutorial VPN (Tipos, Instalación y Configuración) 20

Protocolo L2PT/IPsec

Tutorial VPN (Tipos, Instalación y Configuración) 22

Protocolo IKEv2

Tutorial VPN (Tipos, Instalación y Configuración) 24

Protocolo OpenVPN (TCP)

Tutorial VPN (Tipos, Instalación y Configuración) 26

Resumen

Como podéis ver, crear un servidor VPN es muy sencillo. Ahora tenéis que valorar los pros y contras de cada protocolo para ver cual es el que más se adapte a vuestra situación. 

Y sobre los servidores VPN, la empresa que os mencioné que he usado (Clouding.io) a parte de sus grandes características ya mencionadas y que es usada por grandes empresas, lo mejor es el precio. Podemos usarlo por horas si solo necesitamos y tienen una atención al cliente de 10, cualquier duda la responden al instante.

Puntuación