Development discussion of WireGuard
 help / color / mirror / Atom feed
From: Maximilian Moser <e1326252@student.tuwien.ac.at>
To: Jordan DeBeer <debee1jp@gmail.com>,
	"Jason A. Donenfeld" <Jason@zx2c4.com>
Cc: WireGuard mailing list <wireguard@lists.zx2c4.com>
Subject: Re: NetworkManager Plugin
Date: Thu, 15 Feb 2018 01:34:08 +0100	[thread overview]
Message-ID: <cba131ba-cd15-8bf4-cdd1-4d46ad774d41@student.tuwien.ac.at> (raw)
In-Reply-To: <CAFi5oX6LM+A=jbPmhffc4wT+pKmMg8xi=2ebSMg=s7Qg2AY_sw@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 5577 bytes --]

Whoa, I actually kind of expected some response like "yeah nice, but
we've already done that plugin, so you can go home again"
I actually just wanted to get this thesis over with and thought, why not
post the result to the mailing list and see if anybody is still interested?

So I'm somewhat excited about the acceptance and the possible prospect
of this thing getting packaged for distros :D


Regarding the issues... About some of them, I did know in one way or the
other.
E.g. the Endpoint section only accepting IPs -- this one goes even
further: you also can't have an IP6 in square brackets as is usually
required for specification of ports; only hex digits, colons and maybe a
subnet postfix.
Also, the conf parsing part splits the input primarily by whitespaces,
so it'll give you an error if you have something like
"AllowedIPs=0.0.0.0/0" instead of "AllowedIPs = 0.0.0.0/0" in any line.

Most of the others were however issues that I hadn't thought of; maybe
it would be smart to put up some issue tracking and post them there? I'm
sure to forget half of them in about a week.


> The DNS field under Identity does not currently function.  I am not
> sure how you want to handle this field as NetworkManager has their own
> DNS field under the IPv4 tab in the GUI.
Yeah, that might be one conceptual challenge which I didn't really want
to face: Deciding which parts would be more appropriate in the IPv4 /
IPv6 tabs of the UI (which are not so easy to get rid of, if this is
possible at all).
Alongside the DNS, it might (or might not) make sense to put the
[Interface] Address into those tabs, and if possible, the [Peer]
Endpoint too... But I think it might also cause more confusion among
users if those settings are split up than it would help.

> and the last thing I noticed: the Private Key section is required. 
> This breaks functionality if you were to have your private key stored
> in a password manager.  This is solvable by just pasting a properly
> formatted key (I just used my public key) into the field and adding a
> Post Up script to grab the private key string.
I think the private key falls into the category of "secrets" instead of
"data items", so that might require an overhaul generally.
In the current version, secrets aren't used at all - which makes the
auth-dialog currently superfluous.
Making the private key into a secret might also legitimate the actual
use of the auth-dialog, since its job is primarily searching through
whereever (e.g. keyring or just plain asking the user via a dialog,
hence the name) and look if it can find the required secrets.

In the near future, I'll probably focus more on the written part of the
thesis, so fixing the issues will probably have to wait a while on my part.


> This adds quite a bit of value to Wireguard imo so glad to see you
> worked on this.  Thank you!  
Thank you for your interest and actually testing it on another system ;)


Best regards,
Max


On 14.02.2018 17:58, Jordan DeBeer wrote:
> Hello Max,
>
> I went ahead and tested this on Fedora 27 w/ NetworkManager
> 1.8.6-1.fc27 and was able to get it working.  A few things I noticed:
>
> Starting the VPN with SELinux enabled results in a number of alerts. 
> Mostly for the sysctl source process.  This is to be expected as you
> mentioned you were testing on Arch.  If this ever ends up getting
> packaged for Fedora the policies can probably be added to the RPM.
>
> The DNS field under Identity does not currently function.  I am not
> sure how you want to handle this field as NetworkManager has their own
> DNS field under the IPv4 tab in the GUI.
>
> The Endpoint section of the GUI only accepts IP addresses and not FQDNs.
>
> and the last thing I noticed: the Private Key section is required. 
> This breaks functionality if you were to have your private key stored
> in a password manager.  This is solvable by just pasting a properly
> formatted key (I just used my public key) into the field and adding a
> Post Up script to grab the private key string.
>
> I am going to keep playing around with this and possibly work on
> packaging it into an RPM. 
>
> This adds quite a bit of value to Wireguard imo so glad to see you
> worked on this.  Thank you! 
>
> Cheers,
> Jordan DeBeer
>
> On Wed, Feb 14, 2018 at 10:28 AM, Jason A. Donenfeld <Jason@zx2c4.com
> <mailto:Jason@zx2c4.com>> wrote:
>
>     Hey Max,
>
>     This is wonderful news. I'm happy to work with you to make sure this
>     comes out perfectly, and maybe when it's finished we can submit it
>     upstream to NetworkManager, similar to how systemd-networkd now has
>     WireGuard support built-in.
>
>     The biggest hurdle I currently see is entirely removing the dependency
>     on wg-quick and wg, and talking Netlink yourself to the kernel, just
>     like systemd-networkd does. It shouldn't be too hard to adopt the
>     libmnl-based code in wg(8) to be suitable for your usage; I can assist
>     with this. In general, the fwmark/routing logic of wg-quick should
>     probably be done in a NetworkManager-centric way, which means not
>     using wg-quick.
>
>     Looks like things are off to a great start!
>
>     Jason
>     _______________________________________________
>     WireGuard mailing list
>     WireGuard@lists.zx2c4.com <mailto:WireGuard@lists.zx2c4.com>
>     https://lists.zx2c4.com/mailman/listinfo/wireguard
>     <https://lists.zx2c4.com/mailman/listinfo/wireguard>
>
>


[-- Attachment #2: Type: text/html, Size: 8345 bytes --]

  reply	other threads:[~2018-02-15  0:27 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-14 15:05 Max Moser
2018-02-14 15:28 ` Jason A. Donenfeld
2018-02-14 16:58   ` Jordan DeBeer
2018-02-15  0:34     ` Maximilian Moser [this message]
2018-02-15 14:07       ` Jason A. Donenfeld
2018-02-15 14:35         ` Maximilian Moser
2018-02-15 14:46           ` Jason A. Donenfeld
2018-02-15 14:57             ` Maximilian Moser
2018-02-15 20:15               ` Maykel Moya
2018-02-16  5:33                 ` Jason A. Donenfeld
2018-02-16 10:43                   ` Max Moser
2018-02-16 15:07                   ` Manuel Schölling
2018-02-16 21:00                     ` Javier Arteaga
2018-02-14 19:47   ` Daniel Kahn Gillmor

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cba131ba-cd15-8bf4-cdd1-4d46ad774d41@student.tuwien.ac.at \
    --to=e1326252@student.tuwien.ac.at \
    --cc=Jason@zx2c4.com \
    --cc=debee1jp@gmail.com \
    --cc=wireguard@lists.zx2c4.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).