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
# 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.