Personal VPN Server 101

Why?

Users may be interested in using a VPN connection for a various number of motivations ...
(Some of the More Common Ones)
Privacy

Development

Dodging Geo-Blocking

Enter Algo

Why algo?
OpenVPN has been broken recently and there's no unseeing the light.

I like algo for many reasons but, for the sake of this posting the top reason being simplicity ...

Endorsements (https://github.com/trailofbits/algo#endorsements)
I've been ranting about the sorry state of VPN svcs for so long, probably about time to give a proper talk on the subject. TL;DR: use Algo.
-- Kenn White
Before picking a VPN provider/app, make sure you do some research https://research.csiro.au/ng/wp-content/uploads/sites/106/2016/08/paper-1.pdf ... – or consider Algo
-- The Register
Algo is really easy and secure.
-- the grugq
I played around with Algo VPN, a set of scripts that let you set up a VPN in the cloud in very little time, even if you don’t know much about development. I’ve got to say that I was quite impressed with Trail of Bits’ approach.
-- Romain Dillet for TechCrunchIf you’re uncomfortable shelling out the cash to an anonymous, random VPN provider, this is the best solution.
-- Thorin Klosowski for Lifehacker
Install
Login into host/vpn via ssh (many windows users find putty helpful)
$ ssh username@<your_ip>
Ubuntu
$ sudo apt-get install software-properties-common
$ sudo apt-add-repository ppa:ansible/ansible
$ sudo apt-get update && sudo apt-get install ansible
$ git clone https://github.com/trailofbits/algo
$ cd algo && ./algo
Debi
$ sudo apt-get install software-properties-common
$ echo 'deb http://ppa.launchpad.net/ansible/ansible/ubuntu xenial main' | sudo tee -a /etc/apt/sources.list.d/ansible.list
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
$ sudo apt-get update
$ sudo apt-get install ansible
$ git clone https://github.com/trailofbits/algo
$ cd algo && ./algo
SSH into Algo Server
$ ssh user@<your_ip> -i ~/.ssh/algo.pem
Adding or Removing Users
$ ./algo update-users
Setup an SSH Tunnel
$ ssh -D 127.0.0.1:1080 -f -q -C -N user@ip -i configs/ip_user.ssh.pem
VPN Client
If anyone has issues with the official instructions below, find me in chat and I'll try my best to offer assistance and if need be write a guide for the client in question.
Please Start with the Official Instructions:
Linux
Desktop - https://github.com/trailofbits/algo#linux-network-manager-clients-eg-ubuntu-debian-or-fedora-desktop
Server - https://github.com/trailofbits/algo#linux-strongswan-clients-eg-openwrt-ubuntu-server-etcWindows
Copy your PowerShell script windows_{username}.ps1 and p12 certificate {username}.p12 to the Windows client
Run the following command as Administrator to configure the VPN connection:
powershell -ExecutionPolicy ByPass -File windows_{username}.ps1 Add
Welcome to Relative Privacy on Your Terms!
![]()