Instalar servidor VPN en Raspberry Pi

Para aquellos que no aún no lo sepan. una VPN (Virtual Private Network) es un tipo de red que se configura como extensión de una red privada ya existente. De esta manera, nos permitirá crear un canal comunicación seguro a través de internet que estará protegido de hackers, el gobierno, nuestro ISP…y así podamos acceder a todos los recursos y servicios de nuestra red privada corporativa o personal.

En este artículo os vamos a explicar precisamente esto, cómo configurar un servidor VPN en nuestra Raspberry Pi para que podáis acceder a todos los recursos de vuestra casa desde cualquier parte del mundo como si estuvieras físicamente allí, es decir, podréis acceder a vuestro NAS, router, servidor DNS…todo con el mismo direccionamiento que tiene en vuestro hogar.

Lo primero que deberemos hacer es instalar OpenVPN con el siguiente comando dentro del terminal:

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

A continuación detallaremos todos los pasos del proceso de instalación:

Pantalla de bienvenida a la instalación
Nos indica que el servidor de VPN necesitará una IP estática y que podrá ser configurado en el siguiente paso
Si ya tenéis una IP estática configurada en la Raspberry podéis hacer click en «Yes». De lo contrario, pulsamos en «No»
Nos pregunta si queremos utilizar la IP que nos ha asignado el DHCP de nuestra casa. En este caso pulsaremos en «No» y configuraremos una manual fuera del rango DHCP en el siguiente paso.
Asignamos una IP válida fuera del rango DHCP
Especificamos cual será el Gateway de la red. En este caso nuestro router tiene la 192.168.1.1
Nos preguntará si los datos aplicados son correctos.
A continuación elegiremos al usuario sobre el que realizar el resto de configuración del servidor VPN
Elegimos el usuario pi u otro que tengamos configurado en la Raspberry
En este caso usaremos OpenVPN. Bajamos con el cursor del teclado, pulsamos espacio y después ENTER.
Para la conexión VPN haremos uso del protocolo UDP.
Cambiamos el puerto por defecto por otro cualquiera, en este caso 10445
Confirmamos los cambios
Especificamos el servidor DNS que utilizarán las conexiones VPN
En este paso simplemente pulsamos en «No»
Especifcaremos el dominio con el que se conectarán los clientes. En nuestro caso haremos uso del servicio gratuito NO-IP con un dominio que hemos creado vpnfibi.ddns.net
Especificamos el dominio que hayamos creado en nuestro servicio NO-IP u otro proveedor.
Os dejo el enlace a NO-IP
Ejemplo de configuración en NO-IP
Ejemplo de configuración de nuestro hostname en NO-IP. Aseguraros que el type es DNS > A
Confirmamos los cambios
Confirmamos pulsando ENTER
Especificamos el tamaño del certificado. En este caso el valor recomendado 256.
Confirmamos con la tecla ENTER
Pulsamos sobre «Yes» y descargará actualizaciones y parches de seguridad
Reiniciamos la Raspberry para que apliquen correctamente todos los cambios realizados.

Una vez finalizado todos los pasos anteriores crearemos los usuarios que podrán conectarse al servidor VPN. Utilizaremos el comando «pivpn add».

Como podéis observar una vez introducido el comando pivpn add nos solicita un nombre para el usuario, la vigencia de este usuario para el servidor y una contraseña.
Una vez creado se nos generará el fichero que deberemos importar al cliente de OpenVPN. Se encuentra en la ruta /home/pi/ovpns/

IMPORTANTE: Hasta aquí todas las configuraciones que hay realizar en la Raspberry.

El siguiente paso será abrir el puerto que definimos en la configuración de nuestro servidor VPN. En este caso lo abriremos en un router Livebox de Orange:

Como podéis observar son los mismos datos que aplicamos anteriormente, puerto 10445 y protocolo UDP. La IP de la Raspberry 192.168.1.253

Por último, vamos a descargarnos la app para android de OpenVPN para comprobar la conectividad, aunque podéis utilizar el cliente que queráis, ya sea para Linux, Windows, IOS…os dejo el enlace a la página web oficial. para que le echéis un vistazo.

Descargamos la app
Una vez instalada la abrimos y pulsamos sobre el icono de +
Importamos el fichero del usuario vpn
Pulsamos sobre la VPN a la que nos queremos conectar
Si todo ha ido bien aparecerá el mensaje de que estas conectado a la VPN