Tutorial que explica cómo instalar un servicio de VPN de forma gratuita en Debian usando el servicio de ProtonVPN que aunque gratuito es relativamente rápido.
¿Que es VPN?
Una VPN (Virtual Private Network) en sí es una conexión que permite acceder de forma virtual a una red privada, útil para configurar redes o garantizar acceso cuando los dispositivos no están físicamente en el mismo lugar.
Sin embargo este tutorial se refiere al uso de servidores proxy mediante la tecnología VPN.
Normalmente cuando usamos internet nuestro PC se conecta al router, este se conecta a nuestro ISP (Proveedor de Internet) y de ahí a la página web o servicio al que queremos acceder. De esta forma por ejemplo nuestro ISP tiene acceso a todo lo que hacemos en internet.
Usando una VPN en cambio, nuestra PC se conecta al router, este al ISP, luego al servidor VPN y por último a la página web o servicio que queremos acceder, de esta forma por ejemplo nuestro ISP no puede ver a qué páginas o servicios accedemos, pudiendo ver solo la conexión con el servidor VPN. De la misma forma los servicios y páginas a los que accedemos tampoco verán nuestra dirección IP, sino la del servidor VPN.
Sobre ProtonVPN:
ProtonVPN es un servicio atractivo para usuarios que no desean pagar ni tienen pretensiones de conectarse desde una ubicación específica en su versión gratuita (La versión premium soporta cerca de 40 países).
El servicio está disponible para Linux, Windows, Macintosh, Android y iOS.
Usa los protocolos de encriptación IKEv2 con AES-256 y puede accederse mediante TOR.
Cómo configurar ProtonVPN en Linux Debian:
ProtonVPN se descarga desde la web https://protonvpn.com/, clickeando en el boton verde GET PROTONVPN NOW que se muestra en la siguiente imagen.
En la siguiente pantalla seleccionamos la opción GET FREE de la izquierda y nos llevará al formulario de registro.


Llenamos los campos en el formulario de registro como muestra la siguiente imagen.



Confirme el medio de verificación y presione el botón Send.


En mi caso seleccione la verificación vía mail que es donde llego el código de verificación:



El código de verificación debe ingresarse en el formulario de registro y presionar el boton Verify.


Tras ingresar el código de verificación ingresamos al panel de control.



Tras completar el registro empezamos la instalación desde la consola, primero instalando el paquete strongswan ejecutando el siguiente comando:
sudo apt install strongswan -y


Una vez instalado instalamos los paquetes libstrongswan-extra-plugins y libcharon-extra-plugins ejecutando:
sudo apt install libstrongswan-extra-plugins libcharon-extra-plugins



Una vez instalados los paquetes se debe descargar el certificado de ProtonVPN ejecutando el siguiente comando cómo muestra la imagen:
wget https://protonvpn.com/download/ProtonVPN_ike_root.der -O /tmp/protonvpn.der


Movemos el certificado al directorio ipsec.d ejecutando el siguiente comando:
sudo mv /tmp/protonvpn.der /etc/ipsec.d/cacerts/



Con su editor preferido edite el archivo /etc/ipsec.conf, en mi caso elegí nano como muestra la imagen de abajo:
nano /etc/ipsec.conf


El archivo /etc/ipsec.conf mostrará contenido similar al de la siguiente imagen:



Debajo de Sample VPN connections hay que añadir lo siguiente:
conn ProtonVPN
left=%defaultroute
leftsourceip=%config
leftauth=eap-mschapv2
eap_identity=<USUARIO-OPENVPN-AQUI>
right=nl-free-01.protonvpn.com
rightsubnet=0.0.0.0/0
rightauth=pubkey
rightid=%nl-free-01.protonvpn.com
rightca=/etc/ipsec.d/cacerts/protonvpn.der
keyexchange=ikev2
type=tunnel
auto=add
Reemplace <USUARIO-OPENVPN-AQUI> por el nombre de usuario OpenVPN/IKEv2 que se encuentra en el panel de control en la web de ProtonVPN> Account> OpenVPN/IKEv2 como muestra la siguiente imagen:


La siguiente imagen muestra mi configuración del archivo ipsec.conf. También es posible cambiar de servidor, reemplazando nl-free-01.protonvpn.com por alguno de los servers disponibles en el plan gratuito o seleccionado.
Los servidores disponibles de ProtonVPN pueden encontrarse en la sección de descargas del Dashboard (https://account.protonvpn.com/downloads).



Cierre el editor guardando cambios (si decidio usar nano presione CTRL+X para salir de nano guardando cambios). Luego vuelva a ejecutar nano para editar el archivo /etc/ipsec.secrets y añadir nuestras credenciales OpenVPN/IKEv2:
sudo nano /etc/ipsec.secrets


En el archivo ipsec.secrets deberemos agregar “USUARIO : EAP CONTRASEÑA” como muestra la siguiente imagen, donde 5ZfHluprioP4Y0bX debe ser reemplazado por su nombre de usuario OpenVPN/IKEv2, y YFwQTeie9pn0guZMdN8AbptcWDBFWT debe ser reemplazado por su actual contraseña OpenVPN/IKEv2.


Una vez agregados nombre de usuario y contraseña, cerramos presionando CTRL+X
Por ultimo, reiniciamos el servicio IPSEC ejecutando:
sudo ipsec restart


Para conectarse mediante ProtonVPN ejecute el siguiente comando:
sudo ipsec up ProtonVPN


El proceso de conexión comienza, y en segundos debería poder conectarse mediante VPN:




Puede confirmar el funcionamiento VPN buscando su propia IP en Google:


Para desactivar la VPN, simplemente ejecute:
sudo ipsec down ProtonVPN


Espero que encuentren este tutorial útil, muchas gracias por seguir Linux Latinoamérica.