VPN Raspbian

Instalar un servidor VPN en Raspbian

Actualizado el 23 de junio de 2020. Instalar un servidor VPN en Raspbian.

Antes de nada habrá gente que no sepa los que es una VPN, aunque si has llegado hasta aquí lo dudo. Por si acaso vamos a ver qué nos dice la Wikipedia:

Qué es una VPN

Una VPN es:

Una tecnología de red de computadoras que permite una extensión segura de la red de área local (LAN) sobre una red pública o no controlada como Internet. Permite que la computadora en la red envíe y reciba datos sobre redes compartidas o públicas como si fuera una red privada con toda la funcionalidad, seguridad y políticas de gestión de una red privada. Esto se realiza estableciendo una conexión virtual punto a punto mediante el uso de conexiones dedicadas, cifrado o la combinación de ambos métodos. (Fuente: Wikipedia)

Por lo tanto te va a permitir conectarte a tu red local de casa (o donde tengas instalada la Raspberry Pi) desde cualquier conexión a Internet ya sea desde el móvil, desde una táblet o un ordenador de forma totalmente segura, sea cual sea el tipo de conexión a Internet que utilicemos, incluso una red wifi abierta. Toda la comunicación viajará cifrada entre el dispositivo cliente y la Raspberry Pi.

Un ejemplo de uso

Podemos tener la conexión SSH activa solo en nuestra red, sin haber abierto el puerto 22 en el router para poder acceder desde el exterior. De esta forma no recibiremos ataques a nuestro SSH. Accediendo desde fuera a la VPN podremos conectarnos perfectamente al SSH. Así con cuaquier servicio que no queramos exponer a Internet.

Para instalar el servidor VPN en Raspbian de forma fácil vamos a usar un script llamado PiVPN. Según su página web es la forma más fácil de instalar y configurar OpenVPN o WireGuard en una Raspberry Pi, aunque funciona en la mayoría de sistemas con GNU/Linux.

Instalación de PiVPN

Para instalarlo basta con ejecutar el siguiente comando:

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

Eso descargará y ejecutará el script. Nos irá haciendo una serie de preguntas muy fáciles de responder.

Lo primero que hará será una comprobación de que el sistema está actualizado y si no lo está lo actualizará. Es posible que te pida la contraseña de tu usuario.

Informa de que va a transformar la Raspberry Pi en un servidor OpenVPN o WireGuard.

El servidor VPN necesita un dirección IP estática para funcionar.

Si tienes varias interfaces de red te pedirá que escojas la que va a utilizar el servidor VPN.

Comprueba el tipo de configuración de la red. Para que la VPN funcione correctamente necesita que el dispositivo tenga una dirección IP estática en la red local. Pese a que la tengo configurada así, parece que detecta que está usando DHCP. Si tienes configurada la IP estática, no te preocupes y responde «Yes» a la pregunta. Si no la tienes configurada responde «No».

Pedirá que elijas un usuario local para manejar el servidor VPN.

En anteriores versiones de PiVPN solo permitía instalar el servidor OpenVPN. En la versión actual permite elegir entre WireGuard y OpenVPN. WireGuard es un servidor VPN más moderno, rápido y con un sistema criptográfico novedoso. Además, según informa, es más eficiente con la batería del móvil.

Puedes elegir el que quieras pero te recomiendo que elijas WireGuard por los motivos anteriores. En este caso es el que voy a elegir.

Comenzará a instalar los paquetes necesarios. Esto puede llevar un rato.

Solicita que especifiques el puerto que quieres usar para la VPN. Recomiendo cambiarlo para no usar el puerto por defecto (51820).

Te pedirá que elijas un proveedor de DNS. Escoge el que más te guste.

Te solicitará que le pongas cómo conectarás con la Raspberry Pi, si con una IP pública fija o con un nombre de dominio. Lo normal es que tengas configurado un nombre de dominio ya que las direcciones IP que te otorga tu proveedor de Internet suele ser dinámica y puede cambiar en cualquier momento. Para poder conectar con la Raspberry Pi es recomendable tener configurado un nombre de dominio que se actualice automáticamente con la dirección IP pública que tenga tu Raspberry Pi en cada momento. Existen varios servicios que permiten hacer esto. El que yo recomiendo es DuckDNS.

Si has elegido DNS Entry en el paso anterior, te pedirá que escribas la URL con la que accederás a la VPN.

En este paso generará las claves del servidor VPN. Informa de que es como vas a tener un puerto expuesto a Internet (el de la VPN) es recomendable activar las actualizaciones automáticas de seguridad. Esto se activa automáticamente en la siguiente pantalla.

Y con esto habrás terminado de instalar el servidor VPN en Raspbian. Ahora habrá que crear los usuarios clientes. También recomienda reiniciar el sistema.

Creación de un usuario VPN

Una vez instalado el servicio tenemos que crear un usuario. Para ello teclea el siguiente comando:

sudo pivpn add

Tras introducir la contraseña del usuario pedirá que introduzcas un nombre para el cliente. Se recomienda crear un cliente para cada dispositivo que vayas a usar.

Una vez creada la cuenta para el cliente, se guarda el archivo de configuración en la carpeta /home/usuario/configs, que solo es accesible por el usuario root.

Para conectar al VPN desde otro equipo necesitarás el software de OpenVPN o de WireGuard, según la VPN que hayas elegido. La de OpenVPN está disponible para múltiples sistemas, entre ellos:

La de WireGuard también está disponible para prácticamente todos los sistemas operativos. Puedes descargar los clientes desde la web de Wireguard.

Para configurar el cliente en un dispositivo Android, la forma más fácil es generar un código QR con el comando pivpn -qr. Una vez generado el código QR escanéalo con el dispositivo móvil desde la aplicación de WireGuard. También está disponible en F-Droid.

Recuerda que para poder conectar a la VPN tienes que tener abierto en el router el puerto que hayas elegido redirigido a la IP local de la Raspberry Pi.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.