Algo VPN (self-hosted cloud VPN) is a wonderful bit of kit. Instead of trying to decide which 3rd party VPN service to use (and having to wade through each service's marketing (read: lies)), it's much easier to just use something like algo to spin up a VPN server that you control. Algo uses ansible to spin up a VPN server for you (using a number of popular hosts like Digital Ocean, etc.), and provisions client configs. The whole process is a real treat.
Once you've setup the server, and you're ready to setup a Ubuntu / Kubuntu client, follow the following instructions found here: https://github.com/trailofbits/algo/blob/master/docs/client-linux-wireguard.md.
# Add the WireGuard repository:
sudo add-apt-repository ppa:wireguard/wireguard
# Update the list of available packages (not necessary on 18.04 or later):
sudo apt update
# Install the tools and kernel module:
sudo apt install wireguard openresolv
During the server install process, Algo generates your client config files for WireGuard and places them in configs/<ip_address>/wireguard/<username>.conf
on the system where you ran the ./algo
command.A text-based and QR-code image based config is created for each of the users you added during the server provisioning process. Each WireGuard client you connect to the VPN uses a different config file (one config per client). So at this point, make sure you have your Ubuntu/Kubuntu client config on your local machine, and proceed with setting up the VPN routing using the wg-quick
command:
# Place your client config file in the WireGuard configuration directory:
sudo install -o root -g root -m 600 <username>.conf /etc/wireguard/wg0.conf
# Start the WireGuard VPN:
sudo systemctl start wg-quick@wg0
# Check that the VPN started as expected:
sudo systemctl status wg-quick@wg0
# Verify the connection to the AlgoVPN server:
sudo wg
# Verify that your traffic is being routed over the VPN:
curl canhazip.com
# Optionally setup the connection to persist after reboot:
sudo systemctl enable wg-quick@wg0
All done. Thanks to the AlgoVPN and WireGuard devs for some great software.