5 ms·
These days WireGuard is just as easy to set up, and has lots of benefits over sshuttle (it's UDP based, supports roaming a-la Mosh, has a much more solid crypto
by cyphar 7y ago
These days WireGuard is just as easy to set up, and has lots of benefits over sshuttle (it's UDP based, supports roaming a-la Mosh, has a much more solid cryptographic design, and so on).
- icelancer 7y agoFrom the WireGuard installation instructions: "Generate a private and public key pair for the WireGuard server:" "umask 077 wg genkey | tee privatekey | wg pubkey > publickey" "This will save both the private and public keys to your home directory; they can be viewed with cat privatekey and cat publickey respectively." "Create the file /etc/wireguard/wg0.conf and add the contents indicated below. You’ll need to enter your server’s private key in the PrivateKey field, and its IP addresses in the Address field." That's not within reach of your average computer user.
- ekianjo 7y ago> That's not within reach of your average computer user. Same for sshutle.
- tomxor 7y agoI don't think anyone is under the delusion that non-technical users are going to use sshuttle, but not everyone has the will to invest the time and effort doing server side configuration of a VPN client for their personal use. sshuttle makes it simple for anyone who is the least bit familiar with ssh and has some kind of server access or is happy to spin up a VPS quickly, nothing more is necessary.
- cyphar 7y agoThere are plenty of scripts online that make it incredibly trivial to set up WireGuard (here's mine[1]). This isn't like configuring OpenVPN -- it actually only takes a minute or two to set up. Given that WireGuard is headed for inclusion into Linux mainline soon, it probably would be a good idea for folks to take a few minutes to learn how to use a technology that is going to be part of core Linux. [1]: https://github.com/cyphar/dotfiles/blob/master/.local/bin/wg-enroll https://github.com/cyphar/dotfiles/blob/master/.local/bin/wg...
- ekianjo 7y agoThere are scripts To install OpenVPN in 5 minutes as well so Wireguard has absolutely no advantage there.
- cyphar 7y agoWell yes, but OpenVPN has many dozens of different options and my experience with it is that it's a pain in the ass to get the right set of options (on both the client and server) which result in minimal latency and maximum throughput. But you're quite right that if you already have a config that you know works, WireGuard has no significant advantage in this area (in terms of ease-of-configuration -- though the keys being quite short is nice for SSH-like key distribution). But if you're starting from scratch then you need to first figure out what is the right configuration to use (or you need to pick from the many dozens of "set up OpenVPN quickly" scripts) and then you need to hope that your configuration is not insecure. WireGuard can be set up and work just as well as any other configuration without a script in a couple of minutes (or less than a minute with a script). The script that was linked in a sister comment to "set up OpenVPN quickly" also sets up Apache for god's sake...
- jen_h 7y agoNot fair, OpenVPN doesn't take that much more than a "minute or two" to set up and configure. ;) Last time I launched it[1], I could launch and connect to a new OpenVPN instance in less than six minutes, from my iPhone. Desktop is even faster. [1]: https://github.com/jenh/sevenminutevpn https://github.com/jenh/sevenminutevpn
- cyphar 7y agoIt is just as easy as sshuttle to set up. I never said it was easy for an average computer user. Average computer users will probably buy some service which uses WireGuard under the hood.
- tomxor 7y ago> has a much more solid cryptographic design sshuttle uses ssh, which in turn is not wedded to any one cipher. How does wiregaurd improve on this?
- wglb 7y agoAgile cryptography is bad. Wireguard uses just solid, single, unconfigurable crypto.
- tialaramex 7y agoToday it's solid. And tomorrow? The story for fixing it if it breaks is a flag day - works fine when you have ten users, not so much when it's ten million. The "agility is bad" crew have a decade or two to wait before they can show anything at all meaningful beyond "my new thing is newer than your old thing". That doesn't make them wrong, but it makes their position unproven in practice.
- cyphar 7y agoThere is plenty of evidence that cipher agility weakens cryptographic protocols. By having cipher agility, both clients and servers are incentivised to support the widest possible set of ciphers (because nobody can agree on what cipher to use). This means that it's hard for a known-bad cipher to stop being used (see: the entire history of RC4 usage in TLS) and any downgrade attacks become catastrophic (see: the entire history of SSL/TLS). It also ends up adding complexity to the protocol -- which is always a good thing to have in cryptographic protocols (see again: SSL/TLS)! Most importantly, if all currently-known ciphers are broken tomorrow, then all servers and clients will have to be upgraded in order to be secure. So cipher agility doesn't help you with the doomsday scenario (everyone needs to upgrade anyway) instead it just ensures that older (completely insecure) clients will still be able to communicate with servers. Why is that seen as a feature? If you really want an insecure fallback mechanism you can implement it with non-agile systems by supporting the two most recent versions of the protocol (I expect this is what WireGuard will do once it's upstreamed). But not everyone wants the "feature" that some clients will silently become insecure. I don't understand what you're saying with this point: > The "agility is bad" crew have a decade or two to wait before they can show anything at all meaningful beyond "my new thing is newer than your old thing". How can the "agility is bad crew" prove their point in a few decades if you're arguing that we shouldn't use such protocols? If they followed your advice, there wouldn't be any zero-agility protocols to compare against in a few decades...
- hemant6488 7y agoBut sshuttle is so much simpler if you have ssh access to a remote server. Just a matter of installing it for your os. https://www.terminalbytes.com/sshuttle-vpn-over-ssh-vpn-alternative/ https://www.terminalbytes.com/sshuttle-vpn-over-ssh-vpn-alte...
- majewsky 7y agoYou assume that the user has root access on the remote server, which is not true in many environments (esp. corporate jumpservers).