VPN con DynDNS | Raspberry Pi

Hoy vamos a ver cómo crear una VPN en Raspberry Pi  y utilizar DynDNS (un nombre de dominio asociado a una IP dinámica) para acceder a ella;

 
DynDNS se utiliza para asociar IP´s dinámicas a nombres de dominio (cuando no existe la posibilidad de usar IP estática).

 

Crearemos una VPN en Raspberry Pi, por medio de piVPN; y crearemos un nombre de dominio gratuito con NoIP.
 

Ese nombre de dominio apuntará a la IP pública de nuestra red, y en la Raspberry Pi (que hará la función de servidor VPN asociado a nombre de dominio) instalaremos el cliente DynDNS de NoIP, que actualizará la IP pública dinámica que utiliza la red donde se encuentra la Raspberry, de forma que nuestro nombre de dominio en NoIP (https://www.noip.com/) estará constantemente actualizado, con la IP dinámica correcta de nuestra red.

 

 

ORDEN DE ACTUACIÓN

 

1. Creamos un Host tipo registro A en NOIP, apuntando a nuestra IP pública

 

¿Cómo hemos de configurar nuestro Host en NO IP para usar DynDNS?

 
Hemos de crear un Host registro A en NOIP   (no funciona con un host que redirige a puerto, ese otro tipo de host sirve para aplicaciones internas, servidores internos que corren sobre un puerto, como MotionEye ***)
 

 

 

2. Instalamos pivpn (la VPN para Raspberry)

 
Instalamos la VPN para Raspberry:

con pivpn ejecutamos:

curl -L https://install.pivpn.io | bash

 
Después generamos un perfil de cliente VPN con:

pivpn add

 

En el proceso de creación del perfil VPN, hemos de prestar atención a este punto:

PiVPN | seleccionar entre ip o nombre dns:

Public IP or DNS

Will clients use a Public IP or DNS Name to connect to your server (press space to select)

PiVPN ip o nombre dns
 

*** En este punto, en lugar de colocar nuestra IP dinámica, colocamos el nombre de host que hemos creado en NOIP.

 

Después revisamos el contenido del archivo

/etc/openvpn/easy-rsa/pki/Default.txt

 
Y comprobamos que aparezca la linea:

remote nombredominio.net puerto

 
O sea, nuestro nombre de dominio creado, y el puerto elegido.
 

 
Si hemos puesto la IP en lugar del nombre de dominio, lo modificamos:

nano /etc/openvpn/easy-rsa/pki/Default.txt

 
Y en lugar de la IP pública, ponemos el nombre de host que creamos en noip:

 

Y en el archivo .ovpn anteriormente generado (el que se crea después de todo el proceso del comando pivpn add), hacemos lo mismo, comprobamos que aparezca el nombre de dominio creado en NOIP, en lugar de nuestra IP pública dinámica:


 

 

3. Instalamos el cliente DynDNS de NOIP

 

Como vamos a utilizar la Raspberry como servidor VPN, instalamos el cliente dinámico de NO-IP para Raspberry Pi.

 
cliente dns dinamico noip

 

 

4. Abrimos puerto para la VPN en el router

 
Es importante recordar que en este tutorial aparece el puerto por defecto para las VPN, el puerto 1194.
 
Podemos seleccionar cualquier puerto entre el 1 y el 65536, siempre que no esté ocupado por alguna aplicación.
 
Como decíamos en la entrada sobre DynDNS en Raspberry, en cada router la apertura de puertos puede ser algo diferente, pero puede aparecer como Port Forwarding, Port Triggering, Servidor Virtual …. Lee las descripciones de cada sección en tu router y realiza pruebas con mucho cuidado y con calma, y encontrarás seguro la sección correcta para los puertos en tu router:
 

 
abrir puertos router - servidor virtual

 

Ahora solo tenemos que instalar el cliente VPN, como OpenVPN Connect para Android, y cargar el perfil .ovpn, y podremos acceder a nuestra VPN que apunta a nuestro nombre de dominio.