[HN Gopher] WireGuard Gives Linux a Faster, More Secure VPN
       ___________________________________________________________________
        
       WireGuard Gives Linux a Faster, More Secure VPN
        
       Author : axiomdata316
       Score  : 516 points
       Date   : 2020-03-02 14:40 UTC (8 hours ago)
        
 (HTM) web link (www.wired.com)
 (TXT) w3m dump (www.wired.com)
        
       | 293984j29384 wrote:
       | What makes Wireguard more secure? The article appears to make
       | some weak claims about a smaller codebase and less configuration
       | options but I don't think that translate directly into it being
       | more secure?
        
         | fivesixzero wrote:
         | The main argument in the article (and other places I've seen WG
         | discussed) is the relative ease of auditing the core code as
         | well as auditing implementations. In that context it's less of
         | an augment that it's "more secure" and more of an argument that
         | it's "more cost/time effective to assure that it (the core code
         | or Any implementation) is secure".
         | 
         | That argument can be strong when considering that effective
         | security in most projects comes down to whether assurance of
         | security can be discerned effectively within a limited time
         | window. Often very limited.
        
         | GekkePrutser wrote:
         | Smaller codebase means less chance of bugs.
         | 
         | But I agree, it should really be audited properly before this
         | statement can be made.
        
           | cyphar wrote:
           | WireGuard has been extensively audited many times for the
           | past 4-5 years, including several formal proofs[1]. I would
           | argue no other VPN has been as thoroughly audited (not to
           | mention that the codebase size means that an entire-codebase
           | audit is actually possible). That doesn't mean it's perfect
           | (and it has had bugs), but it's definitely exceptionally well
           | designed and written code.
           | 
           | In addition, the crypto design (beyond it being opinionated
           | and thus no way to misconfigure into using the "null cipher")
           | is arguably much more secure by design than other systems.
           | For instance, WireGuard eliminates entire classes of
           | vulnerabilities through careful protocol design while also
           | adding fairly neat features (such as being impossible to port
           | scan) -- the author explains this much more eloquently than I
           | can[2].
           | 
           | [1]: https://www.wireguard.com/formal-verification/ [2]:
           | https://www.youtube.com/watch?v=CejbCQ5wS7Q (about 23 minutes
           | in)
        
         | tptacek wrote:
         | * It uses a single set of well-trusted modern primitives and so
         | avoids the attack surface of negotiation.
         | 
         | * Those primitives are used for a Noise construction, and Noise
         | is itself reasonably well studied and increasingly formalized;
         | we can be somewhat confident WireGuard is skipping over the 2
         | generations of protocol vulnerabilities SSL/TLS faced.
         | 
         | * Perhaps most importantly, the codebase is tiny and designed
         | to minimize its attack surface; for instance, the protocol
         | itself is designed to be implementable without dynamic memory
         | allocation.
         | 
         | * WireGuard is itself minimal and doesn't implement higher-
         | level features like user management, which means that those
         | features aren't coupled and entangled into the core engine, and
         | can be implemented straightforwardly through a clear interface.
         | 
         | In general, and contra this article, "smaller codebase" usually
         | does mean "more secure".
        
         | dsr_ wrote:
         | Those _help_ it be more secure without being a proof of
         | security.
         | 
         | Fewer configuration options/smaller codebase mean you have less
         | to screw up while programming, less to read while debugging,
         | and fewer opportunities to get things wrong while deploying.
        
         | Sesse__ wrote:
         | The main idea (which has a fair amount of merit!) seems to be:
         | If you give people too many knobs, they will invariably get
         | confused and turn them the wrong way, creating an insecure
         | configuration.
         | 
         | E.g., IPsec has a "none" cipher!
        
           | Hello71 wrote:
           | the "none" cipher isn't even that bad... if you do a packet
           | capture, you can clearly see that the data is unencrypted.
           | the worst part about IPsec is that there are many modes which
           | _look_ secure, but actually aren 't secure at all. examples:
           | encrypted but unauthenticated packets, encrypted but
           | unauthenticated channel negotiation, encrypted by default but
           | downgradable cipher negotiation...
        
             | Avamander wrote:
             | This is why I abandoned using it, knowing the average
             | quality of an online article I couldn't trust that the
             | configuration was secure and there were no official very
             | secure templates.
        
               | wahern wrote:
               | This is a problem with the IKE implementation. A secure
               | IPSec configuration on OpenBSD is a single line, and you
               | can copy+paste it from the excellent man page.
               | 
               | Part of what makes WireGuard "simple" is that it doesn't
               | support any kind of key management--i.e. PKI. Instead
               | you're expected to copy keys around manually. IKE is the
               | most complex part of the IPSec software stack but in many
               | ways the most important part.
               | 
               | Ironically but entirely predictably, people are using
               | homegrown scripts and proprietary third-party services to
               | replace the missing key management aspect of WireGuard.
               | When these turn out to be insecure, or at least the
               | weakest link in the chain, nobody will ever blame
               | WireGuard, even though it will be a predictable
               | consequence of using WireGuard.
        
               | Avamander wrote:
               | > on OpenBSD is a single line
               | 
               | Nice, but it would be nice to know if that is the default
               | or not on Linux as well.
               | 
               | I don't agree with the claim that IPSec somehow automates
               | PKI, it's still very disgusting compared to things like
               | (LetsEncrypt's) ACME. I really hated the PKI on Linux,
               | especially when trying to revoke old keys than on
               | Wireguard. The fact that clients also differed heavily in
               | what they supported was also very annoying.
        
               | wahern wrote:
               | > Nice, but it would be nice to know if that is the
               | default or not on Linux as well.
               | 
               | It's because OpenBSD uses a much nicer, more declarative
               | configuration file syntax, whereas the options on Linux,
               | like Openswan, use a less expressive key-value syntax. To
               | be fair, AFAIU Openswan supports more IKE extensions, and
               | is an older project with more baggage than OpenIKEd or
               | OpenBSD's ipsecctl configuration compiler front-end for
               | isakmpd. But that only highlights the fact that much of
               | the complexity of IPSec is due to history, not because
               | IPSec is intrinsically too complex to make it useable.
               | The SLoC of IPSec kernel code are comparable to the SLoC
               | for WireGuard kernel code. There are smarter ways to
               | implement IPSec and IKE, especially when you have the
               | benefit of hindsight.
               | 
               | > I don't agree with the claim that IPSec somehow
               | automates PKI, it's still very disgusting compared to
               | things like (LetsEncrypt's) ACME
               | 
               | It doesn't automate CA renewal, but you can't even do any
               | kind of PKI using WireGuard as WireGuard doesn't support
               | key signing or key authorities.
               | 
               | FWIW, OpenBSD provides a utility for generating and
               | manipulating X.509 certificates for use with IKE.[1] I've
               | never used it as I'm unfortunately quite familiar with
               | PKIX infrastructure and have my own tools, but AFAIU it's
               | what most people use.
               | 
               | None of this is to say that, when comparing apples to
               | apples, WireGuard isn't a better protocol than IPSec. But
               | SSH also has warts and it would be trivial to come up
               | with a better replacement protocol. We don't need to
               | because we have OpenSSH, a smart implementation that
               | continually discards as much baggage as it can, while
               | still interoperating with a wider ecosystem of
               | alternative implementations.
               | 
               | The fundamental problem is that 1) key management is
               | hard, 2) key management is critical to overall safety and
               | usability. WireGuard sidesteps all of this. It looks
               | great on paper because it's only solving the easiest
               | problem. And it seems great in practice because the
               | ugliness of the ancillary infrastructure isn't counted
               | against it, even though from a wholistic standpoint it
               | should.
               | 
               | [1] https://man.openbsd.org/ikectl.8#PKI_AND_CERTIFICATE_
               | AUTHORI...
        
               | tptacek wrote:
               | People say complicated PKIs are the most important parts
               | of systems because they are complicated and hard to work
               | with and people get invested in them and all the time
               | they've sunk into them. But in reality, far more people
               | have been secured by SSH keys than by IPSEC keys, and by
               | Signal than by S/MIME.
        
               | wahern wrote:
               | Yet Web PKI trounces _all_ of them combined.
               | 
               | Also, Signal isn't an apposite comparison because Signal
               | implements key signing and key exchange with Signal as
               | the sole certificate authority. Who do you think attests
               | to the authenticity of phone numbers, and how do you
               | think they do so? Indeed, Signal exemplifies exactly what
               | I was saying: key management is crucial, key management
               | is hard. Secure, trusted key management is like 90% of
               | Signal's value-add.
        
         | vsareto wrote:
         | That's not really a weak claim:
         | https://stackoverflow.com/a/56043694 (citations in _Code
         | Complete_ )
        
         | qzx_pierri wrote:
         | The article says the smaller codebase doesn't make Wireguard
         | more secure, but it only makes it easier to audit.
        
       | Dirlewanger wrote:
       | They quote Mullvad in the article...aren't they now basically
       | fucked with that new invasive Swedish law that was passed
       | recently? Sorry, don't have a source but saw it the other day.
        
       | app4soft wrote:
       | $ systemd        $ wired
        
       | upofadown wrote:
       | Recentish negative article about Wireguard:
       | 
       | * https://blog.ipfire.org/post/why-not-wireguard
        
         | labawi wrote:
         | > Is WireGuard faster than other VPN solutions?
         | 
         | > ChaCha20 is a stream cipher which are easier to implement in
         | software. They encrypt one bit at a time. Block ciphers like
         | AES encrypt a block of 128 bits at a time. ..
         | 
         | Wow. I'm avoiding wireguard for other reasons, but there is a
         | lot of FUD in that article.
        
         | drummer wrote:
         | Very interesting read.
        
       | lapinot wrote:
       | I really like wireguard, but one thing that bugs me is the fact
       | that it's layer 3 (an ip tunnel) and has no code to support layer
       | 2 (ethernet MAC tunnel). The downside for me is that you have to
       | manage static ips in the configurations (specifically it's not
       | compatible with ipv6 slaac and NDP). There is
       | https://git.zx2c4.com/wg-dynamic but it's very experimental at
       | the moment.
       | 
       | The level 3-only tunnel is motivated as "the cleanest approach
       | for ensuring authenticity and attributability of the packets" (in
       | the whitepaper), but in fact every claim and routing algorithm
       | described (needed since the tunnel is many-to-one) would work
       | equally well substituting "ip address" with "mac address" (i may
       | be missing something, but for sure it's not explicit anywhere).
       | And indeed imho it would be less surprising to have an "allowed
       | mac address" option in the configuration than an "allowed ip
       | address": it's already common practice to white-list mac address
       | of physical endpoints (in office). I'm toying with the idea of
       | forking the driver code to adapt it to ethernet frames as i don't
       | think it would need any big rewrite but i'm realizing my
       | inexperience in writing kernel code.
        
         | jbverschoor wrote:
         | Zerotier does a perfect job ..
        
           | EmoSupportEmu wrote:
           | Agreed. That's my daily driver. No pun intended.
        
           | v0tary wrote:
           | I disagree - spent a considerable amount of time with
           | zerotier as a possible replacement of a small sized ipsec
           | mesh (4 sites) and it failed horribly. Had commercial
           | support, different hardware and even virtualized it. Latency
           | was a major issue and quality of the links were erratic to
           | say the least. Don't get me wrong, I think zerotier is great,
           | but it's not prime time.
        
             | grumblez wrote:
             | Your physical network settings likely didn't allow direct
             | connections between peers. Fix that and it'll work fine.
        
               | kortilla wrote:
               | If it's replacing an ipsec mesh that's pretty hard to
               | believe. And if that was the issue and _commercial
               | support_ couldn't even identify that as the cause,
               | ZeroTier has bigger issues.
        
               | grumblez wrote:
               | If all sites are behind symmetric NATs, there's not much
               | ZeroTier could do to help aside from telling him to
               | assign direct mappings on the NAT/Firewall to each ZT
               | instance. Symmetric NATs are antithetical to peer to peer
               | communication. Many I've run across in the wild have
               | special rules to handle IPSec which won't exist for other
               | lesser known protocols. It's also possible the user
               | wasn't willing or able to make network configuration
               | changes to make those p2p connections possible. Without
               | seeing what the user tried & support recommended, it's
               | not really fair to throw out such baseless accusations.
        
               | pathseeker wrote:
               | ZeroTier uses UDP. That's hardly "lesser known" than
               | IPSec.
        
               | grumblez wrote:
               | "lesser known" as in protocols such as IPSec, ZeroTier,
               | WireGuard, etc. Of which IPSec has been around forever
               | and many NATs/Firewalls have special handling rules built
               | in, just as @api mentioned in another comment. Yes,
               | ZeroTier uses UDP underneath, but that doesn't mean
               | symmetric NATs don't/won't cause havoc to peer to peer
               | protocols using UDP.
        
               | [deleted]
        
               | api wrote:
               | It was probably behind finicky and heavily restrictive
               | symmetric NAT (very p2p-hostile) but with IPSec ALG in
               | the NAT, making it work fine with IPSec but horribly with
               | anything else. This is common in "enterprise" settings
               | and hard to diagnose without direct remote access to run
               | NAT characterization tests.
               | 
               | Symmetric NAT basically breaks everything that doesn't
               | use a simple client/server hub-and-spoke networking
               | model.
        
           | lapinot wrote:
           | Yeah, i hear about that regularly but didn't look into it. I
           | must say i'm not really happy about the whole business thing.
           | The arch wiki says you need an account, i'm not sure if that
           | is true but if it is, it's a non-starter for me. If you have
           | good technical refs to prove me wrong i'd be happy to hear.
        
             | grumblez wrote:
             | You only need an account if you're using ZeroTier's hosted
             | network controller service. You can run your own controller
             | as well. The code to do so is in every instance of
             | ZeroTier. https://github.com/zerotier/ZeroTierOne/tree/mast
             | er/controll...
        
         | api wrote:
         | Substituting MAC for IP address is exactly what ZeroTier does.
         | MACs can't be spoofed, though nodes can be designated as
         | bridges and that allows them to impersonate MACs.
         | 
         | There's still the issue of authenticating IPv4 IPs though,
         | which are too small to embed anything useful into. ZeroTier has
         | a certificate system for that but it requires the use of the
         | rules engine to enable it.
        
           | alanpca wrote:
           | Can you not set your MAC to whatever you want on many
           | platforms?
        
             | nightfly wrote:
             | I think they're implying that MACs are authenticated the
             | same way IP addresses are authenticated with Wireguard (you
             | can say "only 52:54:00:7a:cc:dd can talk over this
             | connection").
        
           | AceJohnny2 wrote:
           | > _MACs can 't be spoofed_
           | 
           | lol
           | 
           | 20 years ago, in college, some folks in the dorm had fun
           | fucking with others at the Ethernet level. Most of us only
           | had experience with the IP level, so couldn't understand what
           | was going on.
        
         | cpach wrote:
         | Out of curiosity, what is the use case for doing VPN at layer
         | 2?
        
           | kortilla wrote:
           | Broadcast/multicast propagation.
        
             | rattray wrote:
             | Can you say more to explain the utility of this to those
             | unfamiliar with networking?
        
               | pathseeker wrote:
               | Many device discovery protocols work by sending out
               | broadcast or multicast packets (either to announce
               | themselves to devices who might be listening or to
               | request devices to send them data). These packets are
               | expected to go out to either everyone on the same layer-2
               | network (the broadcast case) or everyone who has
               | subscribed to a particular multicast address (the
               | multicast case).
               | 
               | In addition to device discovery, these are frequently
               | used for heartbeat messages to indicate that you are
               | still alive (for high-availability protocols like VRRP).
        
               | nightfly wrote:
               | You can send data to N hosts by only sending it once,
               | rather than N times.
        
           | linsomniac wrote:
           | Pretty much every time I do a migration from one data center
           | or office migration I set up an OpenVPN that bridges the
           | network segments at the two locations. It makes the move so
           | much easier.
           | 
           | Once set up, I can shut down a machine at one location, move
           | it, bring it back up, and it's back in business. There are
           | situations where we might want to migrate to new machines
           | during the move, which this makes no harder. But for many
           | things it makes them easier.
           | 
           | For example, the last move went something like this: Set up
           | the VPN+bridge. Move half the application servers. Set up new
           | firewall/load balancer since we were replacing the old ones.
           | Test the new fw/lb. Physically move the primary database
           | server during a maintenance window and switch over to the new
           | fw/lb. If there were problems, just switch back to the old
           | one via DNS record changes (TTL was lowered weeks earlier).
           | Move the remaining app servers. During the bridging setup,
           | the LBs preferred the local app servers.
        
           | api wrote:
           | Someone else said broadcast/multicast, so I'll also add
           | communication with legacy systems that don't speak IP or have
           | other wacky requirements. These _do_ exist in industrial and
           | embedded settings. It 's a niche use case but it's very
           | useful there.
        
             | beached_whale wrote:
             | I suspect Novel/IPX is still out there
        
               | api wrote:
               | Yes, and more. Check out what runs on factory floors
               | sometime. There's stuff that speaks naked Ethernet, as in
               | you type the MAC of the machine into the application.
               | There's also stuff that speaks CANbus over Ethernet
               | without IP in the middle.
        
               | cpach wrote:
               | Wow. Had no idea. Fascinating!
        
               | blattimwind wrote:
               | Raw ethernet is nice because you can't send ethernet
               | frames from a web browser.
        
           | lapinot wrote:
           | Also icmp, ipv6 brings a lot of new things to the table in
           | that realm. I already said it above, but the neighbor
           | discovery protocol is quite useful to do dynamic in-band
           | configuration. icmp is over ip, but it's not useful if the ip
           | link is already managed by the tunnel protocol.
        
         | wmf wrote:
         | It should be possible to run GRE, L2TP, or VXLAN over WireGuard
         | although such tooling probably doesn't exist yet.
        
           | ryanlol wrote:
           | What tooling do you need for this? Shell scripts would be the
           | traditional approach.
        
       | niczem wrote:
       | Not so sure, as lonng as you can not disable logging:
       | 
       | https://www.perfect-privacy.com/en/blog/wireguard-vpn-pros-a...
        
         | Hikikomori wrote:
         | Their use case may require it, not true for others.
        
           | blattimwind wrote:
           | What they want to do, cannot be done by Wireguard, because
           | Wireguard does not have the concept of "VPN sessions /
           | connections". What they probably need to do is to assign each
           | customer a fixed private IP for use within their VPN, e.g.
           | from 10.0.0.0/8.
           | 
           | When those are not enough any more, they need to segment
           | their VPN, so they can re-use the private IP space in each
           | segment.
           | 
           | w.r.t. to "NeuroRouting and TrackStop not possible", they
           | could route their stuff through a TUN interface to do
           | whatever they want to do in user space. With a performance
           | cost.
        
             | Znafon wrote:
             | This is a common critic of WireGuard, but it looks like
             | those service are looking for excuses to explain why they
             | don't propose WireGuard yet. As far as I understang it:
             | 
             | > What they probably need to do is to assign each customer
             | a fixed private IP for use within their VPN, e.g. from
             | 10.0.0.0/8.
             | 
             | Actually, they can set a different IP for each session and
             | rotate them by given it to the client out of band, for
             | example when it authenticates to the service.
             | 
             | > When those are not enough any more, they need to segment
             | their VPN
             | 
             | Like with all other VPNs right? They could also distribute
             | IPv6 for the tunnel and this would not be an issue.
        
               | blattimwind wrote:
               | > Actually, they can set a different IP for each session
               | and rotate them by given it to the client out of band,
               | for example when it authenticates to the service.
               | 
               | Like I said, Wireguard does not have the concept of
               | sessions. You could add your own proprietary "stuff"
               | around Wireguard to add that concept, but then you don't
               | need anything extra from Wireguard. You add the keys of
               | the users as part of the session setup and remove them
               | when the session is destroyed. Of course, this means that
               | clients have to use a client tool provided by you.
        
               | Znafon wrote:
               | There is a handshake at most every two minutes. Is it not
               | possible to say e.g. fetch a new key if the last
               | handshake was an hour ago?
        
       | jandeboevrie wrote:
       | Freedombox makes wireguard so incredibly easy to deploy:
       | https://raymii.org/s/tutorials/Wireguard_VPN_on_Freedombox.h...
        
       | CountVonGuetzli wrote:
       | Can't wait to not have to faff about with configuring
       | strongswan/ipsec for roadwarrior configurations anymore. Setting
       | up WireGuard server and clients on notebooks and phones was a
       | breeze. Really a huge leap for me in terms of usability.
        
       | danielneri wrote:
       | Been using this thru Streisand
       | [https://github.com/StreisandEffect/streisand] and can honestly
       | say it is an excellent experience. Would highly recommend
       | deploying through Streisand / Ubuntu 16 if you'd like to
       | experiment (and run a production setup!)
        
       | fivesixzero wrote:
       | Increasingly it seems like heavily opinionated foundational tools
       | and frameworks are overtaking more highly configurable
       | alternatives, at least in terms of breadth of usage or
       | popularity.
       | 
       | Could this be a positive change? Does this represent a healthy
       | response cognitive fatigue in a world with configuration options
       | at every possible layer?
       | 
       | Or does this shift to less readily configurable tools represent
       | an overall negative? Are we losing diversity in favor of a more
       | vulnerable monoculture crop?
       | 
       | Or both?
       | 
       | Asking for real, not sarcastically. As a developer I'm a huge
       | proponent of simpler, more opinionated frameworks for most
       | projects but I'm also aware my perspective is more limited than
       | many HN commenters.
        
         | upofadown wrote:
         | Opinionated is great as long as it allows for future backwards
         | compatibility. This sort of thing is critical for things like
         | this that depend on cryptography. There has to be a way to
         | support the old thing at the same time as the new thing when it
         | looks like the old thing might eventually have to be swapped
         | out. There has to be a way to do the transition.
        
           | tptacek wrote:
           | This is the opposite of what cryptography engineers believe
           | today.
        
             | upofadown wrote:
             | Which ones? How do they suggest that cryptographic upgrades
             | occur?
        
               | dsr_ wrote:
               | Something like this:
               | 
               | We introduce wireguard2, which is not wire-protocol-
               | compatible with original wireguard. The same
               | configuration files can be used, but you must generate
               | new keys as part of your switch over.
               | 
               | We strongly advise you to stop using original wireguard
               | if there is any possibility of a wealthy, organized,
               | determined attacker intercepting your communications.
               | (See CVE2021-x. and forthcoming paper "64 qubits can
               | deduce Curve25519 points" by D.J. Bernstein et al.)
        
               | jandrese wrote:
               | In the cryptography world backwards compatibility is
               | basically "let the adversary switch me back to the old
               | and busted protocol so I can be owned even after I
               | upgraded to the latest version."
        
               | upofadown wrote:
               | Most required upgrades do not involve anything "busted".
               | Weaknesses are often noticed long before any practical
               | attacks are available. If you want to upgrade, say,
               | Wireguard in such a case you would have to switch over
               | the endpoints in pairs. Obviously that is going to be
               | impossible in practice so the system will get backward
               | compatibility grafted on in a fragile and dangerous way.
               | 
               | OpenPGP is an example of a case where relatively extreme
               | backwards compatibility is required as old archived
               | messages have to be accessible. But that isn't a problem
               | because things are such that downgrade attacks are
               | impossible. The list of desired methods is in the public
               | key which is signed with itself. So downgrades are not
               | always an issue.
        
               | pvg wrote:
               | You can straight up google 'pgp' and 'downgrade attack'
               | so maybe that's not that great an example.
        
               | upofadown wrote:
               | Do you have an actual example? Normally when people talk
               | about a downgrade attack on OpenPGP they just assume it
               | is somehow possible without actually checking that it is.
               | 
               | Note that I am only claiming that downgrade attacks are
               | technically impossible for OpenPGP due to the way that it
               | works. To break the protection against downgrades means
               | that you have to break the root cryptography. That might
               | not be true for other stuff... Makes for a great example
               | though...
        
               | tptacek wrote:
               | Or, in the DROWN case, ricochet the new protocol off the
               | old protocol to use _individual elements_ of the old
               | protocol to _break the new one_.
        
         | oaiey wrote:
         | I think opinionated is the real deal. You can make smarter
         | software and focus on features and on the way create a better
         | future. Being able to twist and specialize everything is not
         | always good.
        
         | beshrkayali wrote:
         | I think there's room for both. I understand your question, but
         | just because there's a trend towards one way or the other,
         | doesnt mean developers should just go with what mainstream is
         | moving towards (not that that's what you're saying.)
         | 
         | The main problem I have with highly configurable utils is that
         | a lot of them don't have sane defaults (or any defaults), which
         | might be ok considering most users want-to or enjoy spending
         | hours writing custom config, but it's a big ask for things I
         | want to use quickly, or just try.
         | 
         | So, imo it depends on the software.
        
         | globular-toast wrote:
         | I think most developers are technocrats at heart and this is
         | the manifestation of that.
        
         | kelnos wrote:
         | Ideally, things should be opinionated but configurable. I think
         | of that as having good, sane defaults, with a straightforward
         | initial setup that doesn't revolve around tweaking those
         | defaults.
         | 
         | With a security product, however, I can understand the allure
         | of offering few to no options. Laypeople get security wrong at
         | an alarming rate, even with good defaults, so I often don't
         | mind a security product just offering one configuration that
         | the (presumable) security experts who built it have decided is
         | the right way to use it.
         | 
         | Of course, if they turn out to be wrong about something, and a
         | mitigation would be "disable feature X", then this requires a
         | patch and new release, when it might have otherwise just
         | required a configuration change.
        
         | [deleted]
        
         | Havoc wrote:
         | >heavily opinionated foundational tools
         | 
         | Opinionated isn't the right phrase here. For something like
         | webdev there are 200 "right" ways to do things. For encryption
         | "throw out all the legacy crap and focus on 1 known strong
         | tech" isn't opinionated...it's common sense.
         | 
         | ...if you have the luxury of a fresh start. Which mainline
         | kernel has granted wireguard.
         | 
         | Monoculture...maybe...but I reckon the tons of legacy stuff in
         | openvpn is way more dangerous. Especially because it kind
         | forces mass adoption of weaker cyphers due to compatability BS.
        
         | _pmf_ wrote:
         | > As a developer I'm a huge proponent of simpler, more
         | opinionated frameworks
         | 
         | Until you run into the limits, of course. If you control both
         | sides, you can use what you want, but as soon as you implement
         | just one side ...
        
         | fmajid wrote:
         | TLS has shown how the quest for backwards compatibility has the
         | unintended consequence of downgrade attacks. Wireguard's lack
         | of cryptographic agility is a feature, not a bug. Sure, it
         | means everyone has to upgrade when a new version of the
         | protocol comes out, but the entire point of a VPN is security.
         | 
         | That said, OpenBSD's OpenIKEd is just as simple and efficient,
         | and thanks to standard compliance (IPsec, IKEv2 and MOBIKE) it
         | works out of the box with iOS devices.
        
           | mr_toad wrote:
           | > Sure, it means everyone has to upgrade when a new version
           | of the protocol comes out,
           | 
           | It will be interesting to see what happens when (or if) large
           | enterprises and hardware vendors adopt it.
        
         | Latty wrote:
         | It definitely depends on context.
         | 
         | There are some cases where opinionated is just fundamentally
         | better. I'd say that a good example of this is code formatting
         | tools. These have been historically highly configurable, but
         | that creates huge amounts of room for bikeshedding and
         | conflict, where consistency is by far the most important thing
         | and the actual style itself barely matters unless you start
         | getting silly.
         | 
         | I think it essentially becomes a sliding scale on how much
         | consistency and "getting it right" are more important over
         | having something be optimal or perfectly adapted to the
         | situation.
         | 
         | When it comes to security tools like VPNs, reducing the chances
         | for users to shoot themselves in the foot is almost always more
         | important than anything else, so it seems like another area
         | that would be beneficial to have something more opinionated
         | rather than more configurable, so the decisions are in the
         | hands of people who have invested the time in understanding the
         | problems at hand.
        
         | flyGuyOnTheSly wrote:
         | This is not some strange paradigm shift, it's the UNIX model
         | 101 [0]
         | 
         | [0]
         | https://en.wikipedia.org/wiki/Unix_philosophy#Program_Design...
        
         | saber6 wrote:
         | I've configured IPSec vpns for the better part of 15 years.
         | 
         | After using WireGuard for 5 minutes I knew this was going to be
         | a big thing.
         | 
         | IPsec has too many fucking knobs. It is it's pitfall.
        
           | derefr wrote:
           | I feel like a lot of design failures with new wire protocols,
           | come down to the organization responsible for the
           | specification not having enough leverage to convince the
           | clients/stakeholders who will eventually implement the
           | specification to "meet them in the middle" by adapting their
           | systems to suit the protocol; instead, the
           | clients/stakeholders hold all the leverage, and so demand
           | that the specification change to a shape where it has knobs
           | allowing each of them to implement the standard with no
           | change to their current system whatsoever, at the expense of
           | every other client essentially having to reify "the way each
           | other client/stakeholder does things" in the form of each
           | knob.
           | 
           | I wonder if any specification group has ever thrown up their
           | hands and said, "you know what? Fine. Let's just create one
           | named sub-protocol for the way each of you major players does
           | things; and then have the clients of this protocol do a sub-
           | protocol negotiation; and then have the client use a plugin
           | specific to the sub-protocol that's been negotiated. Then you
           | don't need any knobs; all the policy can be baked into the
           | plugin."
           | 
           | (Come to think of it, this is kind of how the authentication
           | phase of SSH works, when configured to use PAM. "Pretend
           | we're MIT" (a.k.a. Kerberos); "pretend this is a Microsoft
           | Active Directory domain" (a.k.a. NTLM auth); etc.
        
         | bityard wrote:
         | Every time I see a product or project that describes itself as
         | "opinionated", what it really means is the developer
         | implemented the subset of functionality that they require and
         | turn away suggestions and PRs from people who need additional
         | functionality, even if the changes would have no material
         | impact on the author's usage. There's probably some really
         | interesting psychological research that could be done here, but
         | to be polite about it let's just say that authors of
         | "opinionated" software tend to have rather colorful
         | personalities.
         | 
         | Wireguard is not opinionated, it just has a very limited scope.
         | It has one job, to create an encrypted tunnel between two
         | endpoints, and leaves literally everything else up to other
         | tools to build higher-level functionality upon. Contrast with
         | OpenVPN which requires you to be your own TLS certificate
         | authority and all the complication that goes along with that.
        
           | jchw wrote:
           | > turn away suggestions and PRs from people who need
           | additional functionality, even if the changes would have no
           | material impact on the author's usage.
           | 
           | Whether it impacts a specific use case is usually here nor
           | there - it's usually about maintainability. And while finding
           | contributors for open source projects can be difficult,
           | finding people who want to do the thankless work of
           | maintaining code long-term is much harder.
        
             | bityard wrote:
             | I guess my point was that "opinionated" generally seems to
             | imply maintainability at the (explicit and very
             | intentional) expense of utility.
        
           | solatic wrote:
           | > what it really means is the developer implemented the
           | subset of functionality that they require and turn away
           | suggestions and PRs from people who need additional
           | functionality, even if the changes would have no material
           | impact on the author's usage.
           | 
           | That's one way of looking at it. Another way of looking at it
           | is to emphasize minimalism, the UNIX philosophy, and keeping
           | maintenance burdens low. Sometimes, neither is the case -
           | Ruby on Rails being the classic example of an opinionated
           | framework, one that did expand to add additional
           | functionality over time.
        
           | sbarre wrote:
           | I mean, that's how you choose to interpret opinionated I
           | guess.
           | 
           | I see it more as "convention over configuration". If you want
           | to (or need to) tweak the configuration and settings
           | extensively, then that tool is perhaps not for you, and
           | that's ok. Perhaps you are a subject matter expert, and you
           | want more control.
           | 
           | If you're ok with sane defaults (that were chosen by subject
           | matter experts, and you are not one), then "opinionated" is a
           | great thing.
        
         | pergadad wrote:
         | As a tech-affine user I aporeciate simpler tools. I love
         | configurability but if I have to fight with every tool it's
         | really hard to stick with Linux...
        
         | api wrote:
         | It's a _necessary_ change and a response to cognitive overload.
         | Everything I have to think about in an existing system is
         | mental energy I can 't spend on more useful tasks, like
         | creating something new.
         | 
         | In the Information Age, attention and cognitive bandwidth have
         | become precious and limited commodities that should never be
         | wasted on any unnecessary concern.
         | 
         | I have a rule of thumb in relation to product or project
         | adoption: every installation step cuts adoption in half. If
         | 1000 people find a project and it has a 5 step installation,
         | approximately 32 of them will install it. Make it a 7 step
         | installation and that number is cut down to about 8.
        
         | lazyier wrote:
         | > Could this be a positive change?
         | 
         | It's normal and expected evolution of protocols and software.
         | 
         | Generation 1: New idea, new implementation. As people become
         | comfortable with the new idea it gains in acceptance and hype.
         | Try to keep it simple and fast, but it's a exercise in
         | exploration and it gains technical debt faster then it gains
         | new features.
         | 
         | Generation 2: Widespread acceptance and commercialization.
         | Groups inside large corporations, and sometimes entire
         | businesses, spring up around the new idea. They re-implement
         | the idea to reduce technical debt and add flexibility. Features
         | are piled on to make it marketable. Eventually becomes heavy
         | and unwieldy.
         | 
         | Generation 3: Hype train dies down and people have learned what
         | really matters and what really should be focused on. Third
         | generation is lean, fast, and 'correct'. It becomes ubiquitous,
         | people stop caring about it and people stop paying for it. It
         | becomes just something that is always there and ends up little
         | more then a building block for the next new idea.
        
           | lnenad wrote:
           | Generation 4: Bloat the software with so many unnecessary
           | features, the users must want to chat with each other no?
        
             | lazyier wrote:
             | There isn't any generation 4. The functionality of the
             | software is ubiquitous by that point. Nobody cares anymore
             | except when they absolutely have no other choice. By that
             | point even if you generated a brand new implementation you
             | would struggle to give it away unless it was just one small
             | part of a new innovation.
        
         | FabHK wrote:
         | > Could this be a positive change?
         | 
         | For cryptographic (and related) applications, it certainly
         | seems standard engineering advice _now_ to reduce choices and
         | configurations to a minimum [1] (but apparently not 2 decades
         | ago, when OpenSSL, OpenVPN, and GPG were initially released).
         | 
         | [1] pretty sure Bruce Schneider et al. recommended it in their
         | 2010 book _Cryptography Engineering_.
        
         | the8472 wrote:
         | Taken openssh. You get sane defaults and still have a ton of
         | settings to fiddle with when you encounter odd edge cases or
         | comlex scenarios such jumping through a chain of proxy hosts or
         | talking to some legacy embedded ssh server and such things.
        
         | trey-jones wrote:
         | I think Opinionated can be good. I think configurable can be
         | good too. I think the best case is nearly always "Configurable,
         | with smart defaults" meaning defaults that work out of the box
         | for most uses.
         | 
         | Definitely programming languages are on the periphery of this
         | conversation, but I think provide some good examples of why I
         | like opinionated tools in general.
         | 
         | My language of choice right now is Go, and has been for a
         | while. One of the things I like about it is that it's a bit
         | opinionated. For example:
         | 
         | Braces around `if` statements aren't optional. I prefer this to
         | other C-Like languages that allow you to leave out braces for
         | one-liners.
         | 
         | Also the document "Effective Go" exists, which lays out the
         | canonical "best" ways of doing a lot of things. The language
         | doesn't force you to do these things, but there is an
         | authoritative source that makes good suggestions.
         | 
         | The Antithesis of opinionated languages in my opinion is Ruby.
         | I personally hate Ruby, but I know there are a lot of people
         | that love it. I hate it because there are too many ways to of
         | accomplishing the same tax, and to me this makes it harder to
         | read. Go, on the other hand is the easiest language for me to
         | read, largely because of `gofmt`, another thing that doesn't
         | force you to do it a certain way, but strongly encourages a
         | standard end result.
        
           | jerf wrote:
           | "My language of choice right now is Go, and has been for a
           | while. One of the things I like about it is that it's a bit
           | opinionated."
           | 
           | I've frequently described Go as a very, very good 1990s
           | language. Going through the process of maturity takes time.
           | You can't have a "very, very good" 2020s language right now,
           | because at the frontier we're still feeling our way through
           | the issues.
           | 
           | (Remember, whatever you're about to hit reply with and try to
           | contradict me about it being a totally smooth and polished
           | 2020s language that's already here is _also_ an assertion
           | that your example basically has no room for improvement and
           | will not improve in the next 10-20 years. Consider your
           | options carefully before you go too  "language partisan"
           | here.)
           | 
           | I believe probably >75% of the hatred Go engenders is from
           | people afraid that Go's success will erase or invalidate the
           | 2010s/2020s languages they prefer, because otherwise, the
           | solution to most of these people's hate/anxiety would be to
           | just ignore Go. To which I can say to those people, you can
           | stop worrying. It won't. And if you stay in the industry long
           | enough, maybe someday you'll get to use the really good and
           | polished 2010s or 2020s language. No idea what it'll be
           | called. And you can similarly assuage the fears of the day
           | that this new language will erase all the benefits of the
           | 2040s languages in development at the time.
           | 
           | But for "opinionated" to really work, I think you
           | _intrinsically_ need to have years of experience to make the
           | right calls. There 's no realistic chance that we could have
           | gone straight to the "correct" VPN choice in one shot. Too
           | many variables, too many dimensions, too much to learn and
           | know about the security. It's just not possible. We
           | collectively need the decades.
        
             | eeZah7Ux wrote:
             | > I've frequently described Go as a very, very good 1990s
             | language
             | 
             | No, go is quite similar to algol68 and adds little to it.
             | 
             | http://lua-users.org/lists/lua-l/2009-11/msg00576.html
             | 
             | > I believe probably >75% of the hatred Go engenders is
             | from people afraid that Go's success will erase or
             | invalidate the 2010s/2020s languages they prefer
             | 
             | No, it invalidates 30 years of _research_ on programming
             | languages, regardless of implementations.
             | 
             | http://nomad.uk.net/articles/why-gos-design-is-a-
             | disservice-...
             | 
             | EDIT: 5 minutes in and it's already a downvote fest.
        
               | dang wrote:
               | It's because you're posting in the flamewar style, which
               | is what we're trying to avoid on this site. Also, it's
               | super off topic--two big generic hops away from the OP.
               | 
               | Programming language flamewars are a special case and not
               | in a good way. Many of us lived through seeing those take
               | over online communities in the past and reduce them to
               | scorched earth. That's one of our motivations for wanting
               | to keep HN from that fate, or at least stave it off a bit
               | longer.
               | 
               | https://hn.algolia.com/?dateRange=all&page=0&prefix=false
               | &qu...
               | 
               | Actually your comment could be a good contribution with a
               | little editing. The first link seems good. The second one
               | is too flamey.
        
           | Latty wrote:
           | I agree that programming languages are an interesting to view
           | over that axis.
           | 
           | I've done a fair amount with Elm, which is undoubtedly hugely
           | opinionated, doing things like locking JavaScript interop
           | behind a message passing system and baking protection from
           | XSS into the language.
           | 
           | Mostly I'd say this all encourages you to do things a better
           | way, but it can be painful, and particularly given the early
           | nature of the language, meeting the edges of the language can
           | be very painful because of it.
           | 
           | In contrast, I adored working with Scala because it was so
           | powerful, but it sits close to Ruby in the "you can do
           | everything a million different ways" rankings. The more I did
           | with it, the more I wanted a refined subset of what was there
           | (which may be what Dotty/Scala 3 ends up being).
           | 
           | Things like "you must always use braces on if statements" are
           | rules I always end up enforcing using tooling anyway because
           | they are just bugs waiting to happen, and are the low-hanging
           | fruit of this debate. Too many language take the approach of
           | "if we can parse it, it's fine", when really the aim should
           | be to make it clear not just to a parser, but to the person
           | reading/writing the code too. Hopefully more languages are
           | more opinionated about that kind of thing in the future.
        
           | [deleted]
        
         | jcrawfordor wrote:
         | At least in some ways, it feels to me like Wireguard is more of
         | a return to the "unix philosophy" (if there is such a thing)
         | when compared to solutions like OpenVPN and ipsec/StrongSwan.
         | Doug McIlroy, amongst the designers of Unix, said that tools
         | should "Do One Thing And Do It Well." Wireguard seems like a
         | great example: it offers very few knobs and levers in large
         | part because the scope of its capabilities is very small.
         | Wireguard manages the actual tunnel between endpoints,
         | everything else (managing interfaces and routes, disseminating
         | keys, autoconfiguring) is left for other tools. But, Wireguard
         | provides a simple and friendly enough interface that it's easy
         | to write other tools to do these tasks, ranging all the way
         | from shell scripts to some big enterprise system.
         | 
         | This stands in clear contrast to OpenVPN, which attempts to
         | manage all aspects of the VPN management process from endpoint
         | config (interfaces, routes, etc) to key dissemination (strongly
         | preferring mutual TLS auth and specifying a format for
         | importable VPN configs). As a result, we could say that OpenVPN
         | "Does Everything And Does It Okay," which I'd like to coin as
         | the opposite philosophy. This has advantages if you have some
         | kind of complicated situation and want to keep everything
         | inside of one tool, but the result is that OpenVPN is more
         | complicated to use and configure, and has more surface area to
         | attack.
         | 
         | To some extent this kind of limited scope comes off as
         | opinionated but I would like to view it the opposite way:
         | Wireguard is _unopinionated_ in that it leaves a large portion
         | of the VPN stack for you to handle yourself, either manually or
         | by bringing your own tool. This is a bit annoying if you 're
         | looking for a turnkey solution, but also makes Wireguard very
         | simple and easy to understand and audit.
        
       | peterwwillis wrote:
       | What I don't like about WireGuard:
       | 
       | - Basically no real user or admin-oriented docs. There's some
       | example configs and some getting started guides, and then some
       | crypto-nerd look-how-secure-our-algorithms-are docs, but no real
       | guidance on how to set up a reasonably simple network of hosts.
       | 
       | - Authentication/authorization is just IP addresses and public
       | keys? What about users and service accounts that you want to
       | rotate the credentials of? What about SSO? What about fine-
       | grained access control? What about <insert all of the enterprise
       | things>?
       | 
       | Big static keys and open-ended authorization by default are
       | really not where we should be going with modern security
       | practices. If I just want a layer 3/4 tunnel with public keys,
       | SSH already does that. Sure, WireGuard is basically "SSH plus
       | some easier routing", but I don't need an iteration on SSH, I
       | need an iteration on OpenVPN, which can actually support most
       | enterprise needs. The SSH (and WireGuard) model doesn't scale,
       | due to a lack of functionality.
        
         | q3k wrote:
         | Very much agreed. While for simple use cases static keys are
         | more than fine, a proper PKI is basically the only sane way to
         | deploy a VPN in an enterprise or even small company setting.
        
           | megous wrote:
           | What do you mean by static keys? All keys are changeable at
           | runtime and wireguard uses public key cryptography.
        
             | q3k wrote:
             | That all clients have to be configured on each server.
        
         | vsareto wrote:
         | >Basically no real user or admin-oriented docs. There's some
         | example configs and some getting started guides, and then some
         | crypto-nerd look-how-secure-our-algorithms-are docs, but no
         | real guidance on how to set up a reasonably simple network of
         | hosts.
         | 
         | It wasn't really in release mode until it was merged to the
         | kernel, so that's pretty understandable. I had no networking
         | knowledge aside from pentesting and I was able to get a tunnel
         | working.
         | 
         | I don't think Wireguard was ever going to be like those other
         | things. It sounds like you should wait for products to be built
         | on top of Wireguard. Judging a fish's ability to climb a tree
         | and all that.
        
         | ecnahc515 wrote:
         | If you want SSO, or fine grained access control, the idea is
         | you would do that at a level above wireguard. For example, I'm
         | prototyping a small CLI that talks to hashicorp vault via
         | OIDC/OAuth2, and then creates a wireguard key pair +
         | configuration locally, submits the public key to vault, and
         | then the wireguard "server" is configured with a simple daemon
         | that pulls all the public keys from vault and generates a
         | wireguard configuration allowing access from those public keys.
         | 
         | This is a simple example, but much of what you need to do can
         | be done with layers on top. This is similar to iptables, in
         | that you can use `firewalld`, or `UFW` which all use iptables
         | under the hood.
        
           | atmosx wrote:
           | Are you going to open source it?
        
         | nikisweeting wrote:
         | Here's some docs: https://github.com/pirate/wireguard-docs
        
         | nucleardog wrote:
         | WireGuard is a networking primitive. It creates a secure tunnel
         | between two points and only contains the things necessary to
         | make that happen.
         | 
         | The rest of what you're asking for can be implementing on top
         | of WireGuard in external tools and I fully expect will be over
         | the next few years seeing the adoption so far.
         | 
         | And given you mentioned SSH... That's basically what it is,
         | yes, layer 3 forwarding over SSH except done in a way that's
         | actually usable. (For issues, see e.g.,
         | http://sites.inka.de/bigred/devel/tcp-tcp.html)
         | 
         | This is a step back towards the unix philosophy of providing
         | simple pieces that can be stacked together to build more
         | complicated things, not a drop-in replacement for OpenVPN et
         | al. Most of us are excited because (1) not everyone is an
         | enterprise, and that "we need everything and the kitchen sink"
         | philosophy makes OpenVPN annoying to work with for everyone
         | else and (2) we'll probably see a lot more options cropping up
         | in this space soon built around WireGuard now that developers
         | have been given a secure primitive to build upon.
        
       | Havoc wrote:
       | Will be great when this becomes mainstream & hopefully common
       | place.
       | 
       | A ton of links are conceptually point to point but not encrypted
       | as such because existing means are a pain in the ass
        
       | Vysero wrote:
       | So when they say it will be embedded into the Linux Kernel, what
       | does that mean exactly? Does that mean I will be able to open a
       | terminal an type: WireGuard and from then on my connection to the
       | internet will be secure so long as I don't close the terminal or
       | what?
        
         | sigio wrote:
         | If you have the right config-files setup, it's a matter of
         | typing 'wg-quick up <configname>' ... and then you will have a
         | VPN up. Bring it down again with 'wg-quick down <configname>'.
         | 
         | The configs itself are basically just the IP's used, and the
         | peers and keys used to communicate with those peers.
         | 
         | (Running a 70+ node full-mesh vpn)
        
           | Diederich wrote:
           | > 70+ node full-mesh vpn
           | 
           | ~2^70 VPN connections?
        
             | HideousKojima wrote:
             | Wouldn't it only be 70^2 (or 69^2 or 69*70 maybe?)? Each of
             | the 70 devices has a VPN connection to 69 other devices. So
             | only ~5,000 total
        
               | rnestler wrote:
               | It would be (69*70) / 2, since connections are bi-
               | directional, so only ~2500 connections.
        
               | Diederich wrote:
               | That's right, I got the two mixed up.
        
               | philsnow wrote:
               | wireguard uses UDP so they're not actual "connections"
        
               | nikisweeting wrote:
               | Yeah this is a critical point that the others are
               | ignoring, it only sends packets when they're actual
               | traffic. Maintaining 5000 connections is pretty easy when
               | they're not big stateful TCP sockets.
        
             | blattimwind wrote:
             | Wireguard is not connection based, so a full-mesh VPN with
             | n nodes essentially just means each node has n-1 peer keys
             | and maintains a routing table with n-1 entries for the VPN.
        
               | mindslight wrote:
               | There are still 70x69/2 connections going on under the
               | hood. You can't completely ignore that complexity - if
               | there are underlying connectivity issues, specific host-
               | host traffic will fail (eg due to NAT).
               | 
               | My wireguard setup actually has n x (n-1) config
               | files/instances (current n=8), as that's the only way to
               | shuffle default-gateways over it. It's a little unwieldy,
               | but still manageable. Whereas I can't imagine doing the
               | same with OpenVPN.
        
         | e12e wrote:
         | > Does that mean I will be able to open a terminal an type:
         | WireGuard and from then on my connection to the internet will
         | be secure
         | 
         | It's more like how iptables/nftables is part of the kernel. You
         | need a recent kernel along with user space tooling. But it will
         | become part of virtually every Linux distribution.
         | 
         | As for "my connection to the internet will be secure" - that's
         | possible, but the main use case right now is "my connection to
         | my vpn/server will be secure".
         | 
         | Additional configuration is required to route all traffic
         | through the wireguard tunnel, and make sure all other traffic
         | is dropped - and to make sure all traffic is dropped, rather
         | than sent in plaintext when the tunnel goes down (a "kill
         | switch").
         | 
         | I'm sure we'll see many tools and scripts that will help
         | automate such setups.
         | 
         | But if you _just_ want a udp routed VPN - you might want to
         | look at zerotier or tinc.
        
           | Vysero wrote:
           | This may sound like a newb question but.. is my connection to
           | my vpn/server not already secure on Linux?
        
             | e12e wrote:
             | Wireguard is one way to secure your connection to another
             | machine. That machine could be a "VPN server" - which
             | typically mean one of two things:
             | 
             | 1) By connecting to that server, you get access to private
             | resources as if you were on the same network. Say, access
             | to a printer, a web camera or a file server that aren't
             | exposed to the Internet.
             | 
             | 2) You gain access to the Internet through that server, so
             | that your publically visible IP changes. This prevents
             | anyone between you and the server to see the content of
             | your traffic (eg: your isp, the hotel it staff that runs
             | your free wifi). It can also grant you access to resources
             | that _are_ exposed to the internet - but filter access
             | based on IP. Such as a CRM system, or webmail system.
             | 
             | If you are connecting to a VPN server, then, by definition
             | (virtual _private_ network) - your connection should be
             | secure. Wireguard is one way in which that access can be
             | secured - and it 's new/modern, simple and widely regarded
             | as following best practices. Alternatives are ipsec via eg
             | strongswan, OpenVPN and a bunch of nasty proprietary
             | solutions constructed out of mixes of libssl and obscure
             | hedge magic.
        
         | blattimwind wrote:
         | It's a kernel module. What you do in practice is to have a
         | configuration file somewhere and then have a command line tool
         | (wg(1)) read that file and have the wireguard kernel module
         | create a wg0...n network device.
         | 
         | The out of kernel alternative is how OpenVPN has always worked,
         | by creating a TUN/TAP device, which basically creates a
         | pipe<->network device bridge, and a user space process
         | reading/writing from that pipe.
        
       | closeparen wrote:
       | What are the options right now for open source user/access
       | management around WireGuard? I don't love the idea of manually
       | writing down keys in a config file.
       | 
       | I'm thinking of writing something to template out configs for
       | short term keys (and automatically reload) based on an OIDC
       | authentication, but seems inelegant.
        
         | Hikikomori wrote:
         | Could create something where you authenticate to
         | vpn.yourdomain.com in your browser using your preferred method
         | that creates a temporary key and starts your wg client for you.
        
           | closeparen wrote:
           | Yeah that's what I'm thinking, creating the temporary key by
           | manipulating the config feels inelegant though.
        
       | tosh wrote:
       | I think Tailscale [1] can be to WireGuard what Github and Gitlab
       | are to git.
       | 
       | If you haven't checked them out yet: worth taking a look!
       | 
       | [1] https://tailscale.com
        
         | nif2ee wrote:
         | What do you gain by shilling for alpha-tier for-profit software
         | for free? Are they your friends? do they pay you for that?
        
           | tosh wrote:
           | I was setting up a Raspberry Pi (3B+) at the office and
           | wanted to connect to it from home.
           | 
           | Researching various approaches lead me to a hn thread
           | recommending Tailscale, signed up, worked for me & now I'm a
           | happy user and planning to get 2 additional new Pis tomorrow
           | (still deciding between the 2G and the 4G model).
           | 
           | edit: I regularly recommend things I find useful to others
           | (especially those that took me some effort to discover)
           | independent of whether they are bits of insight (try x
           | instead of y), open source software or for profit software.
           | 
           | Just thought others might find this useful as well, that's
           | all.
        
           | tssva wrote:
           | Accusing someone of shilling is contrary to HN comment
           | guidelines.
           | 
           | "Please don't post insinuations about astroturfing, shilling,
           | brigading, foreign agents and the like. It degrades
           | discussion and is usually mistaken. If you're worried about
           | abuse, email us and we'll look at the data."
        
         | ytechie wrote:
         | Is that like Hamachi? https://vpn.net/
        
         | cprecioso wrote:
         | What is the difference between this and ZeroTier?
         | https://www.zerotier.com/
        
           | perryh2 wrote:
           | https://twitter.com/perry_huang/status/1223393351845548032
        
       | twentyloops wrote:
       | Check out Algo [0] if you're interested in setting up a personal
       | WireGuard VPN server. It's simple and hassle-free, especially if
       | you are not familiar with server administration and don't want to
       | be bogged down by details.
       | 
       | I have one deployed on Digital Ocean ($5/mo droplet). All you
       | need to do is run the setup script, answer a few yes/no questions
       | (optional features), paste in your API key, and update the
       | firewall setting on Digital Ocean's dashboard.
       | 
       | If anything goes wrong, deploying a new one only takes minutes.
       | 
       | [0] https://github.com/trailofbits/algo
        
         | nikisweeting wrote:
         | +1 for Algo, it's better than Streissand imo.
        
         | cpach wrote:
         | I honestly had no idea that DigitalOcean has a "built-in"
         | firewall. That's awesome. Thank you!
        
       | [deleted]
        
       | hectorm wrote:
       | In the case that someone has any trouble configuring WireGuard, I
       | would like to share my automatic deployment of WireGuard and
       | Unbound with full IPv4 and IPv6 support with Packer and Terraform
       | in Hetzner Cloud (although it can be easily adapted to other
       | providers) [1].
       | 
       | In the case that no automatic deployment is necessary, it may
       | also be useful to look directly at the WireGuard configuration
       | [2]. Since WireGuard supports scripts in "PostUp" and "PostDown",
       | I have automated the configuration of iptables, including some
       | useful rules to redirect 53/UDP port traffic from the public
       | interface to WireGuard, which helps in some cases to bypass some
       | firewalls.
       | 
       | [1]: https://github.com/hectorm/wireguard-setup
       | 
       | [2]: https://github.com/hectorm/wireguard-
       | setup/blob/master/packe...
        
       | jhurliman wrote:
       | Is there a version of Ubuntu that has GUI NetworkManager support
       | for WireGuard? I'm missing the convenience of toggling the VPN on
       | and off from the system menu.
        
         | 9cirno9 wrote:
         | KDE does support configuring and enabling/disabling WireGuard
         | over the GUI.
        
         | eleitl wrote:
         | They've backported Wireguard to the next LTS (20.04 aka Focal
         | Fossa) kernel, so wait a bit. Officially, it's due 23rd April.
        
         | lbeltrame wrote:
         | Versions >= 1.20 have support for all the bits and pieces
         | (including routing all traffic). Initial support landed in
         | 1.18.
        
           | zoonosis wrote:
           | If that is the case, it looks like Ubuntu 19.10 and later
           | have support.
           | 
           | https://packages.ubuntu.com/search?keywords=network-
           | manager&...
        
             | kova12 wrote:
             | if it does, I don't see "how"
        
               | tsukurimashou wrote:
               | I don't know try to type "Wireguard NetworkManager
               | Ubuntu" in your favorite search engine?
               | 
               | https://blogs.gnome.org/thaller/2019/03/15/wireguard-in-
               | netw...
        
               | tsar9x wrote:
               | I don't know try to read parent's comment again and see
               | it's about GUI?
        
         | heavyset_go wrote:
         | Plasma Desktop does.
        
         | gclawes wrote:
         | Or login management that doesn't involve pre-shared keys?
        
           | sk5t wrote:
           | A keypair is not a pre-shared key; but if you're looking for
           | a tool to pull public keys (and peer AllowedIPs) from some
           | other central source of truth, a script might be the right
           | call for now.
        
         | kickout wrote:
         | Agreed. I have Wireguard installed, but am positive I don't
         | have it configured properly.
        
       | aeyes wrote:
       | Are there any official plans for 2FA in Wireguard?
        
         | zhte415 wrote:
         | What would the point of 2FA be? Interested as a use-case I
         | don't quite follow.
        
           | rcxdude wrote:
           | If you are using a VPN to access a sensitive network (home or
           | office), you want to make it harder for an attacker to steal
           | keys or passwords to the network (especially since any
           | roaming devices are more vulnerable to evil maid attacks).
           | 2FA through a token or phone apps means they now need to
           | compromise two devices instead of one.
        
         | jasonjayr wrote:
         | I think at this time, the only option you'd have is a captive
         | portal for the 2FA, and then unfirewall the in-VPN IP. WG has
         | no provision for "connection state", only "handshake happened X
         | seconds ago". If there's no traffic, there's no handshake.
        
         | tptacek wrote:
         | My understanding is that the plan for WireGuard is to nail the
         | engine and present a clean interface to system integrators, who
         | will build their own authentication systems on top of it. The
         | most sensible way to do MFA for WireGuard is probably though an
         | IdP.
        
         | slim wrote:
         | there is no authentication that would need a second factor in
         | wireguard. in wireguard you authenticate the host, not a user
        
           | slim wrote:
           | actually there is no athentication in wireguard. only
           | identification
        
             | megous wrote:
             | Each node has a list of public keys of nodes that it
             | authorizes to communicate with it. Those nodes authenticate
             | (provide proof of their identity) themselves via the
             | exclusive ownership of their private keys.
             | 
             | So I don't see yout point.
        
       | dragonsh wrote:
       | I hope WireGuard can come to feature parity with TincVPN will be
       | nice. Especially automatic routing and mesh VPN formation, it can
       | really help our multi-cloud container clusters connected using
       | TincVPN to be bit more performant.
       | 
       | The difference is WireGuard is part of Linux kernel so speed of
       | processing packets is faster than TincVPN.
       | 
       | Still experimenting with WireGuard and manually creating peer to
       | peer mesh.
        
         | LinuxBender wrote:
         | One suggestion would be to submit a feature request to Tinc to
         | add detection / support of Wireguard. Tinc could still handle
         | the mesh routing and just hand off the encryption bits to WG.
         | There have been some brief discussion in email threads [1]
         | Probably more, have not checked all the archives.
         | 
         | [1] - https://www.tinc-
         | vpn.org/pipermail/tinc/2017-February/004755...
        
           | linsomniac wrote:
           | Fascinating idea! I've been really interested in Tinc, but it
           | seems to be languishing where WireGuard is really taking off.
           | The meshing in Tinc seems quite interesting. Though,
           | honestly, I'm pretty happy with OpenVPN.
        
         | eleitl wrote:
         | k8s already uses Wireguard for the service mesh internally.
         | 
         | For a globally routed overlay mesh, have a look at
         | https://yggdrasil-network.github.io/
         | 
         | The latest version actually uses the Wireguard TUN library
         | https://yggdrasil-network.github.io/2020/02/21/release-v0-3-...
        
           | q3k wrote:
           | > k8s already uses Wireguard for the service mesh internally.
           | 
           | No it doesn't. There are some CNI plugins that use Wireguard,
           | but it's not standard in any way (like any other network
           | plugin, really).
        
           | thenewnewguy wrote:
           | > k8s already uses Wireguard for the service mesh internally.
           | 
           | Kubernetes does not use anything for the service mesh
           | internally - as it does not provide a service mesh.
           | 
           | By this I can only assume you mean some popular CNI provider
           | uses wireguard, but out of the ones I know of (flannel,
           | weave, calico, canal, romana) I don't believe any use
           | wireguard.
        
         | eximius wrote:
         | I am not saying I don't want those features, but I do hope that
         | a VPN in the kernel with one of its primary features being
         | small, lean, auditable code, will think twice about adding a
         | bunch of stuff.
         | 
         | Have you considered Nebula?
        
           | mindslight wrote:
           | Most of tinc's functionality could be implemented in
           | userspace using the wireguard kernel module, and so wireguard
           | itself won't really need to grow.
           | 
           | The one thing I wish wireguard had was overlapping AllowedIPs
           | with 'ip route via' to distinguish (although this isn't a
           | tinc feature either, unless you run it as an ethernet
           | segment). The same result can be achieved using a separate
           | interface for every peer and 0/0 at each end, but it's a bit
           | unwieldy.
        
         | ahnick wrote:
         | Tailscale looks promising. (https://tailscale.com/)
        
           | johnmaguire2013 wrote:
           | I was impressed how quickly I could go from 0 to VLAN with
           | Tailscale on Windows. Unfortunately I did not have as nice of
           | an experience with the AUR package on Arch. However, it looks
           | like the maintainer replied with a link to instructions on
           | their website with how to get it working!
        
             | techntoke wrote:
             | Is it the AUR package that is the problem or the Linux
             | application itself?
        
             | dave_universetf wrote:
             | AUR package maintainer here (also tailscale employee). The
             | poor experience was definitely on me. Relaynode's initial
             | setup flow is a bit weird, and I didn't make the package
             | explain anything. I think you were the first user of the
             | Arch package other than me, so you got to experience the
             | fun :)
             | 
             | Next release will have a better daemon, with a more typical
             | setup flow. If you want to test drive it, `tailscale-
             | unstable-bin` is the AUR package for it.
        
           | nif2ee wrote:
           | I am sick of people shilling to this thing here. Stop
           | exploiting HN for free advertising. Every Wireguard post here
           | has become a free ad for this company.
           | 
           | EDIT: Stop supporting parasites repackaging and rebranding
           | open source and selling it while leaving the author who
           | single handedly made this entire thing possible begging for
           | donations on Patreon
        
             | wmf wrote:
             | One could just as easily make the opposite complaint that
             | WireGuard is receiving undeserved hype because it is just a
             | tunneling protocol without a control plane.
        
             | tptacek wrote:
             | Last time I talked to him about it, Jason Donenfeld was not
             | upset about Tailscale. You'll have to find someone else to
             | be vicariously outraged for.
        
               | nif2ee wrote:
               | Of course I am sure he is extremely happy spending 5
               | years developing the next big thing then others rebrand
               | it for enterprise and become rich.
        
               | atmosx wrote:
               | You realise most VPN providers offer OpenVPN (for years)
               | and now Wireguard support right? Some bundle the software
               | & drivers on their own GUI. I'm happily using a paid
               | OpenVPN client for mac (won't name it here to avoid
               | upsetting you further) for years.
               | 
               | What I'm trying to say is that tailscale is doing nothing
               | new or sinister.
        
               | tptacek wrote:
               | Jason comments here all the time and is quite easy to
               | talk to, and I think we're all better off hearing from
               | real Jason, not some imaginary angry Jason you've
               | invented. Not least because there are actual abuses in
               | the WireGuard ecosystem, and your imaginary Jason is
               | obscuring them behind fake abuses.
        
               | nif2ee wrote:
               | I didn't say he is angry, my main point was not advertise
               | for free for a company that is built off the work of a
               | single man, especially when it's FOSS, especially when
               | it's a technically piece of genius like WireGuard, while
               | not supporting the man himself. There are known ways for
               | companies to market their paid product, it's called ads.
        
               | StreamBright wrote:
               | This is not how opensource works.
        
             | StreamBright wrote:
             | Actually, I haven't heard of them and they look like a
             | pretty nice way of connecting different resources over the
             | internet. I am not sure what you mean by parasites. I am
             | glad they posted the link in this thread. Wireguard is an
             | opensource project, Tailscale is a paid service. Do you
             | think they compete with each other or you think that people
             | should not share product recommendations at all on HN?
        
             | dang wrote:
             | You've been breaking the site guidelines repeatedly, both
             | in this thread and unfortunately in others (and we've had
             | to ask you about this before). We ban accounts that do
             | that. Would you mind reviewing
             | https://news.ycombinator.com/newsguidelines.html and
             | sticking to the rules when posting here? The intended
             | spirit is curious conversation.
        
         | PhilippGille wrote:
         | For WireGuard there's the official
         | https://github.com/WireGuard/wg-dynamic, or also this:
         | https://github.com/costela/wesher.
         | 
         | Or generally for mesh networks as others mentioned: Slack's
         | Nebula, ZeroTier (wait for v2) or Tailscale.
        
       | nikisweeting wrote:
       | In case anyone wants some user-facing Wireguard docs with
       | examples and further reading, I've compiled some here:
       | 
       | https://github.com/pirate/wireguard-docs
        
       | sbradford26 wrote:
       | While I don't believe WireGuard is a drop in replacement for
       | IPsec tunnels or OpenVPN I think it is a great solution to add a
       | VPN tunnel back to your home network. I am running a WireGuard
       | server on an Unraid server and it was trivial to setup and I can
       | easily hit near gigabit speeds through it.
        
         | [deleted]
        
         | deepersprout wrote:
         | > While I don't believe WireGuard is a drop in replacement for
         | IPsec tunnels or OpenVPN
         | 
         | Why?
        
           | sbradford26 wrote:
           | I am mostly talking about in a business setting. WireGuard
           | hasn't even hit its first "official release". A company is
           | not going to switch to something that has not been thoroughly
           | vetted. Also a lot is going to have to wait on vendor
           | support, like incorporating WireGuard into something like
           | Cisco AnyConnect.
        
             | Hello71 wrote:
             | this cisco anyconnect system?
             | https://www.cvedetails.com/vulnerability-
             | list/vendor_id-16/p...
             | 
             | doesn't seem very secure to me.
        
               | sbradford26 wrote:
               | CVEs mean that a company can take action to mitigate a
               | vulnerability. Wireguard is not mature enough to have
               | something like that. A known vulnerability is bad, but
               | not nearly as bad as an unknown vulnerability.
               | 
               | This is not a knock on Wireguard, I use wireguard and
               | love it. It just has several hoops to jump through before
               | it is ready for widespread adoption. Like NIST approving
               | it to be used instead of IPsec or OpenVPN.
        
               | kseifried wrote:
               | Sorry but... no. You are wrong. Completely wrong.
               | 
               | CVE is just an identifier for a security vulnerability.
               | 
               | "Common Vulnerabilities and Exposures"
               | 
               | CVE generally covers released software, hardware and (in
               | the process or being added officially) services. It also
               | covers beta software (https://cve.mitre.org/cgi-
               | bin/cvekey.cgi?keyword=beta).
               | 
               | The reason Wireguard doesn't have CVEs is nobody has
               | bothered to request them.
               | 
               | For more details on CVE there's a bunch of episodes
               | covering it:
               | https://www.opensourcesecuritypodcast.com/search?q=cve
        
               | tptacek wrote:
               | I don't know what this means but can't think of an
               | interpretation that isn't false. WireGuard will certainly
               | do a better job mitigating vulnerabilities than Cisco
               | will, and WireGuard's code will for obvious reasons get
               | more attention than Cisco's horrible VPN code.
               | 
               | It's true that Fortune 500 companies aren't going to
               | deploy WireGuard. They're constitutionally incapable of
               | deploying security gear that isn't awful, which is why a
               | huge fraction of all VPN deployments through the F500
               | were backdoored in the 2000s.
               | 
               | NIST is never going to approve WireGuard; it's not even a
               | discussion worth having, nor is it NIST's place to
               | certify which VPNs are or aren't safe to use, nor does
               | NIST have the staff to do anything like that.
               | 
               | That's no reason for startup engineers to make the same
               | mistake. Startups definitely do deploy WireGuard.
        
               | Hikikomori wrote:
               | Will take another look at wg once keys can be stored in
               | non-exportable way on devices, or temporary keys
               | generated per session after passing some auth mechanism.
               | Sounds like a fun personal project.
        
               | Hello71 wrote:
               | my point is that it would appear that "Anyconnect Secure
               | Mobility Client" has a _shitton_ of vulnerabilities.
               | sure, wireguard may have some vulnerabilities, but you
               | don 't need a formal audit to tell the difference between
               | "this might have some issues" and "holy fuck this is a
               | fucking dumpster fire". you need an audit to tell if
               | "this might have some issues" is "this has some issues"
               | or "this is actually pretty good". in particular,
               | "Anyconnect Secure Mobility Client" appears to have a
               | significant number of local privilege escalation
               | exploits, some several dozen since 2011. that doesn't
               | _necessarily_ mean that the protocol is shit, but it
               | _probably_ does. it probably means that no serious
               | security professionals have examined it, and the
               | vulnerabilities that have been found are just the easiest
               | ones that can be found with a scanner.
               | 
               | but even ignoring all of that, wireguard has
               | significantly better security guarantees.
               | https://www.wireguard.com/formal-verification/ claims
               | that "WireGuard has undergone all sorts of formal
               | verification, covering aspects of the cryptography,
               | protocol, and implementation." with references to several
               | formal proofs of the protocol.
               | 
               | furthermore, wireguard _has_ actually received a CVE:
               | CVE-2019-14899, which was posted here only a few weeks
               | ago. it 's not wireguard-specific though, it's a general
               | problem with VPN setup on general-purpose operating
               | systems.
        
               | jlgaddis wrote:
               | I'm sure you know this but, for the benefit of others...
               | 
               | With this exception, WireGuard does not CVEs because it
               | is (for now) still considered pre-release software and
               | not recommended for production use.
        
           | 1_person wrote:
           | In reality WireGuard's only valid selling point is that it's
           | easier to use than alternatives.
           | 
           | It is not, for example, faster than the literally dozens of
           | ASIC implementations of bump in the wire IPsec that scale to
           | line rate n * 100Gbps. It's not even faster than kernel IPsec
           | on architectures which support AES with dedicated
           | instructions. Incidentally, this is the _default
           | configuration_ for Strongswan on supporting hardware.
           | 
           | In fact, the benchmarks published prominently on the
           | WireGuard website (https://www.wireguard.com/performance/)
           | are completely nonsensical and compare the clients under
           | circumstances where neither should be bottlenecked and where
           | it is known the underlying algorithm with AES-NI is
           | considerably faster than chacha20-poly1305. Yet, they find
           | that WireGuard achieves higher throughput (magically
           | exceeding line rate, in fact!) in spite of more header
           | overhead and a slower algorithm. They find WireGuard is lower
           | latency by something like an order of magnitude more than the
           | actual single packet latency for an IPsec compression with
           | AES-NI. When I find the official hard data about a product to
           | be complete bullshit, it raises a lot of red flags for me.
           | Either the authors of this marketing fluff are completely
           | ignorant or completely dishonest, but in neither case does
           | the material motivate interest in the product.
           | 
           | It's extremely debatable that it's more secure than common
           | IPsec implementations. The core IPsec implementation is a
           | very simple state machine which has been under review by
           | virtually everyone with an interest in secure comms for
           | decades. It's very wishful to suggest that some hipster
           | shitware that got puked out a few years ago because
           | Strongswan was too hard is "more secure".
           | 
           | If you're in the position of designing a secure interconnect
           | for something more consequential than a friend accessing your
           | home media server and do not have the luxury of abdicating
           | responsibility for the outcome, the fact that the client is
           | easy to use is perhaps the single lowest bullet point on your
           | list of priorities. Interoperability with existing software
           | and hardware, flexibility to adapt to different customer
           | environments and requirements, maturity and proven
           | performance all rate much more highly. IPsec is and has been
           | the go-to for that, while WireGuard is drenched in hype and
           | bullshit and completely unproven.
        
           | Sesse__ wrote:
           | There's no predefined way of setting up and sharing keypairs,
           | for one. As a company end user logging into a VPN, what you
           | want is a place to input your username and password (and
           | potentially 2FA credentials), not "create a keypair and give
           | the public key to an admin".
        
             | zhte415 wrote:
             | > what you want is a place to input your username and
             | password
             | 
             | You'd be best without a username a password, just a code.
        
             | tptacek wrote:
             | It's true that the WireGuard ecosystem needs these
             | features. But it's also true that people believe VPN
             | software needs lots of features because other VPNs are
             | complex; people do not generally believe these things about
             | SSH, and WireGuard makes VPN tunnels as easy to manage as
             | SSH.
             | 
             | Another thing people might not realize if they haven't had
             | to deal with lots of different VPN configurations is that
             | most of the "user management" and "2FA" features of legacy
             | VPNs are, as the kids say, janky "AF".
             | 
             | Ultimately, organizations should be tying their VPNs, like
             | everything else, into an IdP of some sort, and most of the
             | "user management" and "MFA" stuff belongs to the IdP, not
             | the VPN. People will clearly get WireGuard integrated into
             | Okta.
        
               | rcxdude wrote:
               | > Ultimately, organizations should be tying their VPNs,
               | like everything else, into an IdP of some sort, and most
               | of the "user management" and "MFA" stuff belongs to the
               | IdP, not the VPN. People will clearly get WireGuard
               | integrated into Okta.
               | 
               | Right, but at the moment this integration does not exist.
        
               | tptacek wrote:
               | I'm not disputing that.
        
       | z3t4 wrote:
       | I reviewed vpn solutions on Linux a few weeks ago and Wireguard
       | was the easiest to setup among the secure protocols.
        
       | nif2ee wrote:
       | Don't forget to support Jason, WireGuard's author, on Patreon.
       | https://www.patreon.com/zx2c4
        
         | GekkePrutser wrote:
         | Wow, 10k$/month is a lot more than a 'sustainable full-time
         | job' would pay :) At least here in Europe.
         | 
         | But of course what he's getting now ($1212) is nowhere near
         | that.
        
           | autarch wrote:
           | That's quite a bit less than someone with his skillset could
           | earn in the US. He could easily earn 2-3x that amount in
           | Silicon Valley, and possibly quite a bit more.
        
             | GekkePrutser wrote:
             | Ok I didn't know that. I heard IT wages in the US were good
             | but I didn't think they were _that_ good. Here in Spain you
             | 're doing well with $2200 and that's a senior position at a
             | big multinational.
        
           | nif2ee wrote:
           | This is more or less what a senior Frontend dev usually makes
           | in the US. The author single handedly made the first serious
           | FOSS VPN that can replace IPSec and OpenVPN
        
           | charlesu wrote:
           | $10k a month is a 'sustainable full-time job' for a senior
           | developer once you factor in health insurance and the
           | additional 7.65% self-employment tax.
           | 
           | I prefer this model for opensource software. We get an
           | awesome product and he gets enough money to sustain himself
           | while maintaining it. Seems like a fair deal for all.
        
       | josteink wrote:
       | WireGuard is nice and fast indeed, but unusable for me at work,
       | because pretty much all outbound UDP-traffic is filtered.
       | 
       | Having a TCP-based option sure would be nice.
        
         | julesallen wrote:
         | Yes, this is a concern as as I'm testing it as a daily driver
         | there are quite a few public networks it won't work with. For
         | non technical end users it's a show stopper.
         | 
         | Without TCP/IP you're back to running dual wg and ovpn services
         | and pretty much where we are with ip4 vs. 6. One is 'better'
         | but the other works everywhere.
        
         | xxpor wrote:
         | I'd be fairly confident your work doesn't want people making
         | random VPN tunnels from their work laptops.
        
         | RcrdBrt wrote:
         | I use wireguard on top of udp2raw to power through UDP-blocking
         | firewalls all the time
         | 
         | https://github.com/wangyu-/udp2raw-tunnel
         | 
         | Added bonus: it's not TCP
        
           | hendersoon wrote:
           | What a cool solution! Thanks for linking it.
        
       | sccxy wrote:
       | pivpn is easiest way to set it up.
       | 
       | Great tool for newbies like me.
       | 
       | QR setup for mobile also available.
       | 
       | https://github.com/pivpn/pivpn
        
       | smush wrote:
       | TL;DR: Should I keep fussing with PiVPN or try something like
       | TincVPN?
       | 
       | Semi-OT: So I just installed PiVPN to use with this protocol to
       | try and do a small vpn at home (all I want is to go to my domain,
       | auth, and be on my LAN so I can RDP / VNC) and the wireguard bits
       | worked great, and the install process was buttery smooth, even on
       | a Raspbery Pi Zero W.
       | 
       | But - my network lack of knowledge is probably hamstringing me. I
       | opened the WG port on my router and confirmed the dns hostname
       | I'm using corresponds to the public IP, but I'm not able to get
       | the wireguard clients to connect. The tcpdump doesn't show any
       | incoming traffic on the port at all.
       | 
       | Should I keep fussing with PiVPN or try something like TincVPN or
       | Tailscale? I have not been able to get a VNC or RDP session going
       | over tailscale even though all my machines are able to connect to
       | the Tailscale network.
       | 
       | I want to use wireguard, everyone says it is so good, and OpenVPN
       | does seem a bit boring, but ultimately I'm just hitting a wall
       | when it comes to the use case of 'auth, you are on your home lan,
       | connect as if you are at home connected to wifi'
        
       ___________________________________________________________________
       (page generated 2020-03-02 23:00 UTC)