top | item 13351973

Show HN: Use Ansible to Run a “friends and Family” OpenVPN Server on Digital Ocean

206 points| robbintt | 9 years ago |github.com | reply

51 comments

order
[+] cyberferret|9 years ago|reply
I'd like to hear how this is different from Streisand? [0] (and also Sovereign, which I see someone else posted below).

I set up Streisand on a $5/mo Digital Ocean droplet a while back and the whole family uses it on all our devices with great results. It is pretty much a 'fire and forget' solution that I haven't had to touch in over a year.

[0] - https://github.com/jlund/streisand

[+] bdarnell|9 years ago|reply
I've been using streisand for a while (from China) and it's great; the main reason I can see that you might want to use the linked project instead is that it has a lot less surface area so it could be more secure (it's a lot easier to harden/audit openvpn alone than all the services streisand includes).

That said, if I was going to pick one protocol out of the selection offered by streisand, it would be l2tp/ipsec instead of openvpn (assuming you're hosting on digital ocean. The networks on AWS and GCE are more restrictive and you can't serve l2tp/ipsec from there). I found this to be easier to set up (the client-side software is already included in most operating systems) and to have the best performance.

[+] robbintt|9 years ago|reply
This project aims to "do one thing and do it well".

I posted this elsewhere but it bears repeating. This project is designed to be simple, auditable, and disposable, and have the minimum attack surface and maintenance costs.

Other tools are great, but the cost of swapping certificates and IP addresses and zone files can weigh you down.

Streisand would do well to have numerous playbooks that remix roles for smaller services (if they don't already).

[+] cylinder|9 years ago|reply
Does this work for offshore usage of USA Netflix or do they detect Digital Ocean?
[+] rosser|9 years ago|reply
Came here to say the same thing. How is this better than Streisand?

Both even use Ansible.

[+] NickBusey|9 years ago|reply
I prefer Sovereign for this. Sets up OpenVPN as well as a bunch of other goodies. https://github.com/sovereign/sovereign
[+] mos_basik|9 years ago|reply
Wew, goodies is about right. That's pretty cool.

I have a VPS and I use it for webhosting for myself and some friends. I've thought about (in some cases tried) and then decided against setting up my own mail server, my own irc bouncer, my own xmpp server and my own cloud storage. Each time, the killer was basically "I could do this, but it would take too long to figure out and it would probably not be super secure at the end.

At the very least, a project like Sovereign (written using something as declarative and idempotent as Ansible) would be great to look through and see how it manages certain things.

And that doesn't detract from your project, OP - I like that your focus is tight and your setup instructions detailed. I'm far more likely to actually try installing a small project like yours than a behemoth that will change who knows what throughout my system.

[+] tlrobinson|9 years ago|reply
I'm not sure I trust myself to run that many services securely.

I'd be interested in something like this with a strong focus on security.

[+] tribby|9 years ago|reply
> Do not check use IPv6

last time I set up an openvpn server on digitalocean without `tun-ipv6`, it leaked my ISP's ipv6 address to the internet while my ipv4 address was correct (a digitalocean address). disabling ipv6 on a vpn by default doesn't make a lot of sense to me if the intention is a layer of privacy around your ISP.

[+] robbintt|9 years ago|reply
Hi, thanks for your feedback. Can you submit a github issue? I need to establish a traffic testing method for assessing whether any traffic is leaking. This would be a valuable general tool for all vpn toolchains.
[+] jwilk|9 years ago|reply
How did it leak it?
[+] tedmiston|9 years ago|reply
I'd like to see some hardening of the box if it's going to be used as a VPN server. My boxes in the DO IP range routinely get targeted by malicious traffic from China and Russia.
[+] robbintt|9 years ago|reply
Please add an issue with any reference and ideas for doing this. I would love PRs too.
[+] andreareina|9 years ago|reply
Is there a checklist/guide you could point to? I've come across a few but not being experienced I have a hard time judging how good/complete they are.
[+] wstrange|9 years ago|reply
Given that most families probably want to use this to torrent, would this not violate Digital Ocean's terms of service?
[+] robbintt|9 years ago|reply
This tool is to protect you from verizon supercookies and comcast deep packet inspection. These companies sell access to this data to local law enforcement without requiring a warrant. LEO make choices based on the narrative about you they can build. We need to protect ourselves from people who would do us harm in clever and careful ways.
[+] jlgaddis|9 years ago|reply
Any one have a similar project but based on CentOS that they use and recommend?
[+] vxNsr|9 years ago|reply
This is really great! I didn't even know this was possible thanks!
[+] cabalamat|9 years ago|reply
Why not just use:

    ssh -D {port} {server}

?
[+] insubstantive|9 years ago|reply
A VPN on the cloud. Totally private. Great idea.
[+] andreareina|9 years ago|reply
Depending on your threat model it's perfectly fine. It won't work against a nation-state-level adversary, but I don't get the feeling it's meant to. Against opportunistic passive sniffing or active MitM in cafés and such it's adequate.
[+] scoot|9 years ago|reply
Name checks out! (As they like to say on a certain other message board where snarky comments are de rigueur. )
[+] necessity|9 years ago|reply
You can simply run a sh script that sets it up... https://github.com/Nyr/openvpn-install
[+] dstryr|9 years ago|reply
I use this script for my servers as well and it seems much quicker and easier. What benefits does OP's method provide?
[+] JonoBB|9 years ago|reply
I use this as well. Takes all of 2 mind to set up, or add a new user