Crea tu propia VPN con ALGO

Publicado

Para crear una VPN propia en una instancia EC2 Ubuntu voy a apoyarme en Algo VPN, unos scripts Ansible que facilitan su creación. Para eso es necesario clonar el repositorio en la instancia e instalar dependencias:

git clone https://github.com/trailofbits/algo
sudo apt update
sudo apt install -y --no-install-recommends python3-virtualenv file lookup
cd ./algo
python3 -m virtualenv --python="$(command -v python3)" .env && source .env/bin/activate && python3 -m pip install -U pip virtualenv && python3 -m pip install -r requirements.txt

Edita el archivo config.cfg para editar la lista de clientes, agrega un usuario por cada dispositivo que desees conectar, también cambié la opción BetweenClients_DROP a false para permitir a mis dispositivos conectarse entre sí. Opcionalmente habilita unattended_reboot para que el servicio se reinicie automáticamente después de alguna actualización de seguridad, puedes cambiar la hora a la que prefieres que pase eso.

Ejecuta ./algo. Lo primero que pregunta es dónde quieres crear tu vpn, como lo voy a instalar en la misma instancia Ubuntu, elijo la opción 12 (Ubuntu existente). En las siguientes opciones dejé los valores por defecto:

Cuando pregunta por la dirección IP del servidor lo dejo en localhost ya que es instalación local. Luego pregunta por la IP pública de la instancia.

Comenzará la configuración del servicio, tardará pocos minutos según la cantidad de clientes agregados. Al terminar, en la carpeta algo/configs aparecerá una carpeta con la ip del servidor, dentro de ella se encuentran las configuraciones de Wireguard para cada cliente.

Conexión desde cliente Ubuntu

Instala el cliente wireguard y sus dependencias:

sudo apt install wireguard openresolv

Descarga la configuración del cliente desde la carpeta algo/configs/host/wireguard/ del servidor, procede a instalar con el siguiente comando:

sudo install -o root -g root -m 600 <client>.conf /etc/wireguard/wg0.conf

Inicia la conexión con el comando wg-quick y valida que la conexión esté activa con wg:

sudo wg-quick up wg0
sudo wg

Si la conexión es correcta, saldrá cuando fue el último handshake y debería haber tráfico recibido.

wireguard ubuntu

Los pasos son los mismos para Raspberry OS.

Conexión desde iPhone

Instala la Aplicación Wireguard. La forma más fácil de crear la configuración es por medio de QR, ubica la imagen generada para tu cliente en la carpeta de configuraciones y descárgala a tu equipo.

En la aplicación Wireguard da sobre el icono + para agregar una nueva configuración y selecciona escanear QR. Después de escanear la imagen ingresa el nombre para la conexión y actívala. Al abrir los detalles podrás comprobar la conexión exitosa:

wireguard iphone

Conexión desde Windows

Instala el cliente de Wireguard para Windows, puedes agregar tu conexión dando clic al botón "Agregar Túnel". Al guardar te dirá si se ha conectado y la cantidad de información transmitida.

wireguard windows