I think it’s important that everyone have access to some sort of VPN service for when they’re connected to public wifi spots. Need some convincing? Here’s some proof.

Sometime last year I signed up for Private Internet Access. For about $40/year it gave me several VPN outlets - including several spread across the globe, which is nice if you have some reason to want to obscure/change the country you’re coming from. It also integrated nicely into my Mac/iPad/phone, etc. However I ended up dropping them because I didn’t like the idea of all of my internet traffic going them. TorrentFreak has several articles on this. They even ask several VPN providers point blank about what type of logging/monitoring is done, and PIA is on the list saying they do no monitoring. Still… I’d rather go elsewhere.

Enter… OpenVPN.

Setup was really easy. I have a spare $5/month server at Digital Ocean that I use for one-off tasks like this. My Jenkins server is over there along with some other occasionally-used services.

Digital Ocean has a good tutorial on their site: how-to-install-openvpn-access-server-on-ubuntu-12-04

  1. Install OpenVPN Access Server
  2. Run sudo passwd openvpn to give the openvpn login a unique password. This is the same password you’ll login to the web interface with.
  3. Load https://YourIpAddress:943/admin to bring up the admin.
  4. Create some new local linux users in the terminal and give them passwords.
  5. In the OpenVPN admin, give access to those users. I also turned off access from non-named accounts under the User Permissions section.
  6. Connecting from a Mac or PC is easy. Go to the client page (with the user’s login created in step 4, not openvpn), and you can download the client software directly from there.
  7. For iOS and Android there are official apps in the App Store.

Everything works really well. The only thing I haven’t been able to successfully do is install it on my Chromebook. There’s a nice guide by someone at Dwolla, but it’s much more involved and I’ll save that for another day.