WireGuard Presentation at FOSDEM17 [video]
wireguard.io
wireguard.io
It's a good talk and WireGuard is quite interesting. IPSec, OpenVPN, et al., are great but I definitely think there's a need for a high-performance, high-security, easy to configure VPN.
The demo is only two and a half minutes long, check it out.
Edit: Also found zx2c4's technical whitepaper, "WireGuard: Next Generation Kernel Network Tunnel". Just started to look over it but it appears to have all the juicy details.
[0]: https://fosdem.org/2017/schedule/event/wireguard/
[1]: https://fosdem.org/2017/schedule/event/wireguard/attachments...
[2]: https://fosdem.org/2017/schedule/event/wireguard/attachments...
I really like sshuttle.[1] Very simple - just point it at any host anywhere on the net that has an sshd running.
We (rsync.net) have recently sponsored some bug fixes and freebsd-specific improvements that allow --dns to work as well as generalized UDP tunneling. I'm testing it right now ...
PS: Day-21 of QEMU Advent Calendar 2016 was WireGuard (contributed by: Jason A. Donenfeld and Stefan Hajnoczi) -- http://www.qemu-advent-calendar.org/2016/#day-21 -- "This image runs iperf inside containers & prints out the performance statistics along with commands used to configure the VPN."
[Edit: I just noticed 'mtgx' has posed this question in this thread -- https://news.ycombinator.com/item?id=13600614]
a few months ago i concluded i needed a secure vpn to servers. ipsec seemed the better option. but i haven't set it up yet. it all seems so complicated for what i want to achieve: a simple secure tunnel between a few machines.
hopefully we'll get easy to use software for macos/windows. no idea how hard that is to create (i.e. adding tunnel types to these OS'es so you can easily add a tunnel and configure them).
I think it's a bit unfair to judge ZeroTier in comparison to VPNs, because that's not strictly speaking what it's trying to be. I like overlay networks!
Sure, it does much more, and it's probably better to call it an SDN / overlay. But if you can call OpenVPN a VPN, then I think ZT can do VPN as well.
I've been a user for quite a while and it's been really nice (and generally I've really only had trouble using Zerotier on really locked down wifi networks), but given their Technical FAQ info it sounds pretty convincing to a lay non-security-expert person that it is relatively secure: https://www.zerotier.com/tech_faq.shtml#security
As far as using it for remote workers, in comparison to how our current VPN option at work functions (currently a SonicWall Firewall/VPN) it definitely seems to work more easily/consistently so it's been something I've wanted to share so we can try out (but if there are big security issues with doing so I'm sure myself and others would love to get your thoughts on Zerotier in particular).
Thanks!
This is certainly in the works. A fella is working on a Go implementation right now that will be cross platform.
I read the presentation and it looks like the designer did an excellent job handling all of the factors.
I also really like the work done to simplify the human interface. This is also important for security and is often lacking.
This feels like the introduction of ssh. I think this has the potential to become an important tool in everyone's toolbox.
I will read more about this tonight!
Why do you think that it seems like a very good approach?
What information is your analysis based on?
And what is your competence that allows for a public verdict, if I may ask?
POTUS-style "it is very good" posts should not invade this discussion space.
The presentation answers most of this:
* An extremely small, auditable-in-an-afternoon codebase. The code is 1% as large as XFRM/StrongSwan IPSEC.
* Designed from inception to eliminate memory corruption and state machine bug classes; for instance, all allocation is per-peer at-config static.
* A simplified, modern crypto stack with no cipher agility and thus no downgrade attacks (and, again, an extremely small codebase) --- this also drastically simplifies configuration.
* A DOS-resistant forward-secure protocol based on Trevor Perrin's NoiseIK.
* Direct integration into the Linux networking stack, so that VPN tunnel interfaces appear to management tools just like other interfaces, and policy can be expressed using standard iptables and IP routing tools rather than poorly duplicated in the VPN software.
The actual motivation for running in kernel space is performance.
I know doing the same for TUN/TAP is not a leap really, but it's one more thing to have to consider. Also I have no idea what the performance implications of TUN/TAP are either (although I frequently use both, I've never measured it).
No, you have to explicitly add the interface with the wg command, much like you have to explicitly run a command that starts a TUN/TAP VPN. And once those commands are run, both WireGuard and TUN/TAP interfaces look just like normal interfaces and can be managed using standard tools.
WireGuard could be implemented in user space and be just as easy to use and manage. The only benefit from running in kernel space is performance.
We're still doing pretty well with bonding multiple OpenVPN links to get multi-processor performance at FastMail:
https://blog.fastmail.com/2016/12/19/secure-datacentre-inter...
But I'm sure we'll look at wireguard again at some point, but while the website says this: "WireGuard is not yet complete. You should not rely on this code." I'll stick with being conservative and using what we already know and trust.
The author answered questions there.
Also 4 days ago for its FOSDEM presentation: https://news.ycombinator.com/item?id=13569420
edit: sounds like nope; only progress is a high-level description of how WireGuard might provide equivalent functionality: https://lists.zx2c4.com/pipermail/wireguard/2016-December/00...
While I'm sure it's probably lower performance, if you've ever done more than just plug and play some Cisco IPSec stuff (e.g. manually implement IPsec on Linux), it is terrifying in its complexity, IMO, for something you depend upon so critcially.
DMVPN capability would be outstanding and would make WireGuard much more useful in a AWS VPN situation
In terms of whether that's good or bad, it depends on your requirements and what's optimal to you. If you think about the problems in OpenSSL, which backs OpenVPN, then that's been a fairly large attack surface vector. Compare that to ipsec/ike2 kernel related vectors and weigh up the setup/learning/deployment costs of both.
Putting control planes in the kernel is the worrying part IMHO.
Performance wise? If you want it to be usable it's pretty necessary.