Ubuntu 20.04 LTS Adds WireGuard Support
phoronix.com
phoronix.com
Debian 11 - Mid 2021, probably
OpenSUSE Leap/SLES 16 - Mid 2021, probably
Ubuntu 22.04 LTS - April 2022
Red Hat 9 - probably 2024 ?
So if Ubuntu hadn't included this, we would have to wait more than a year to have it in the kernel of a "server-grade" Linux system by default. Most people don't like running more cutting edge distros or fiddling with the kernel on their servers. Defaults matter, so this will be great for Wireguard adoption.
I wouldn't bet on a backport unless you have a lot of clout (a.k.a. purchasing power) behind you.
The problem is "RHEL doesn't also ship newer PHP as an alternative and you need to instead rely on third-party repositories".
For CentOS and friends there is https://www.softwarecollections.org/en/
https://access.redhat.com/products/Red_Hat_Enterprise_Linux/... are maintained by RedHat directly.
Packaging WireGuard for Fedora, CentOS, and RHEL has been super fulfilling over the years, but DKMS is super fickle and buggy. wireguard-dkms is a package I would love to see drift off into the sunset if RH backports WireGuard into EL kernels.
All this is to say that there's not really much work that needs to be done by Ubuntu or RHEL or anyone else that wants to ship WireGuard -- the backporting stuff has already been done and is fairly widely deployed by now.
Thanks for your work. I know I will benefit from it.
(I mean that in a positive way. I'm a fan of both... although only theoretically about WireGuard.)
Perhaps the code is good enough there aren't many weird bug reports to make it feel unstable.
I have to deal with it via a vendors product and have spend about 4 weeks in the past 6 months trying to fix a flaky connection by guessing and restarting a lot. Just like anything things will go wrong. But, with wireguard you have no idea what it could even be if it's not an obvious thing that you can diagnose with ping.
The thing about simple, key-based authentication is that it's very extensible, without changing the actual protocol.
What?
Well, what Wireguard's auth actually means is that you can use whatever authentication you want to communicate a shared secret to both ends.
Want to authenticate with, say, SSH keys? Sure- SSH into a server, run a command that generates a new Wireguard key, connect in with that key.
LDAP? Same situation. Whatever SSO you want- as long as you can stick up authentication in front of a service that's able to pull bits from /dev/urandom. Multifactor? Sure.
Wireguard does one thing well. What's missing is not features in Wireguard- it's the ecosystem around it to actually handle key management. For enterprises, Hashicorp Vault or something should probably look into supporting Wireguard; for smaller situations, some SSH-based key exchange, like the way Mosh handles things, seems reasonable.
Complex, pluggable authentication is sometimes necessary...but you want as few implementations of it as possible, and you sure don't want it in the kernel if you can help it.
By this standard, no website supports 2FA- ultimately it's just a cookie that's used to authenticate requests, even though to get that cookie you may have to go through 2FA. Nothing prevents an attacker from just grabbing the session cookies.
In fact, I doubt any VPN supports 2FA by this definition- it would mean requiring authentication on every packet. Instead, of course, what you do is do authentication once, when setting up a tunnel, and then use bearer tokens from then on.
Edit: Also OpenVPN, which is the tool I’m comparing it with, only ever has session keys in memory. The 2FA part (password+OTP) isn’t saved by OpenVPN.
WG has the concept of sessions already, the only change would be allowing a process in userspace to instrument the sessions directly without going through the key system.
The the default key-routing system would be just one method of issuing and managing sessions making the core protocol even simpler!
1. Is it open-source?
2. When am I going to see the "you have to pay us now" screen, and how much will it cost? I realize it's a business and am fine with that, but want to know what I'm spending before setting stuff up.
The kernel already has this:
# modprobe wireguard && echo module wireguard +p > /sys/kernel/debug/dynamic_debug/control
Then you'll get useful messages in your syslog.> WireGuard is currently working toward a stable 1.0 release. Current snapshots are generally versioned "0.0.YYYYMMDD" or "0.0.V", but these should not be considered real releases and they may contain security quirks (which would not be eligible for CVEs, since this is pre-release snapshot software). This text will be removed after a thorough audit.
IMHO roaming should be opt-in iif you specify the remote endpoint.
The fact that Ubuntu is including it, means that it's probably passed a critical mass of early adopters and then is probably seeping into the startup mainstream (as opposed to enterprise that wants 20 valid bells and whistles like authentication, auditing, etc).
> should not be considered real releases and they may contain security quirks (which would not be eligible for CVEs, since this is pre-release snapshot software)
I figure they know better than I do.
Security people are also subject to fads and fashion just like web developers or indeed any other technical group. Many will endorse the primitives developed for example by Dan Bernstein without understanding anything about how they actually work, or having read and understood papers describing their security. Just because he has some hacker "street cred" (arguably well deserved) as the developer of qmail, etc.
So my genuine question is: does he really have an unusual academic standing as a cryptographer?
This ranking by citation (which appears to be up-to-date/live) puts him in position 62: https://kodu.ut.ee/~lipmaa/cites/cites.php?data=crypto
Granted, it's just a ranking by citation, and this definitely puts him in the top 100, which is nothing to scoff at, but I'm still wondering if there is a similar effect, and if in ten years we won't be using algos all written by some other guy because he's the new cool kid.
I do have issues with wireguard's security - things like silently accepting invalid configuration, changing one peer can silently affect another (only avoided via external means), roaming is default enabled and can't be disabled nor can you bind the tunnel to an interface or an ip, nor does it pad packets even the slightest to reduce "meta"data leakage.
Just because the cryptography is (probably) sane, doesn't mean wireguard as a whole is good for all or most use-cases.
https://lists.zx2c4.com/pipermail/wireguard/2020-January/004...
> Please note that until Linux 5.6 is released, this snapshot is a snapshot rather than a secure final release.
In other words, over the next ~10 weeks, Linus' kernel tree and Dave Miller's net.git tree will fill up with nice stabilization patches. At the end of that process, 5.6 will be released. At that time, our backports to older kernels (wireguard-linux-compat) will also become a "1.0". This also lines up with the 20.04 LTS release and such.
> If your device has a custom kernel containing the WireGuard module, then the module will be used for superior battery life and performance. Otherwise a userspace version will work sufficiently on all other devices.
[0] https://apt.izzysoft.de/fdroid/index/apk/com.wireguard.andro...
https://github.com/WireGuard/android-wireguard-module-builde...
OpenVPN, with all of its issues, is simple to set up in a way that’s not leaky.
https://www.wireguard.com/netns/#routing-all-your-traffic
There's probably some guides out there.
There is zero logging to help understand when and how a connection is established (or not) server side.
Logging that someone tries to conne ct but wrong key, wrong protocol, whatever - that would help tremendously. Today it is tcpdump or wireshark all the way.
Wireguard is much easier to set up than either IPSec or OpenVPN, and seems to outperform at least the latter.