Ya he hablado anteriormente sobre VPN:
- Como navegar anónimamente (comparativa VPN, TOR, Proxy, Tails)
- Instalar OpenVPN en 5 minutos
- Como usar una VPN y para que sirve
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.
Resumen del artículo
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.
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.
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.
- La de pruebas. Tan solo ejecutando el comando sin parámetros. Nos genera aleatoriamente las credenciales y nos las muestra al finalizar por pantalla.
- 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.
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
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.
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.
- 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.
- 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.
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.
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
Protocolo L2PT/IPsec
Protocolo IKEv2
Protocolo OpenVPN (TCP)
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.
[yasr_overall_rating]