aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/ui/tunnelspage.go
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2019-05-03 17:57:12 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2019-05-03 18:35:38 +0200
commiteaaacc6b3281090000d1b00387921aa13d61ef9e (patch)
treea24fc22b32fd12ddd161fdcb37589091084c1e60 /ui/tunnelspage.go
parentfirewall: since DNS is a blacklist, we have to exclude our own interface (diff)
downloadwireguard-windows-eaaacc6b3281090000d1b00387921aa13d61ef9e.tar.xz
wireguard-windows-eaaacc6b3281090000d1b00387921aa13d61ef9e.zip
firewall: only use one list
Unless you use complicated rights veto rules, WFP's policy is that between sublayers, block always outweighs allow. It's easier, therefore, to simply weight a single sublayer correctly, with allow rules having heavier weight than block rules. This basically means that we have to be careful that DNS isn't a subset of some allow rule. One place where this would be a problem are the permitLan* rules, which we don't use anyway, and so this commit nukes them. Another place would be if somebody is using a localhost/loopback resolver for whatever reason. This is probably a "low risk" sort of thing, but we may want to fix this by ordering the dns block just in front of the loopback permit. The other place is in the wireguard.exe tunnel service itself, which does DNS lookups. Since right now we mostly enforce one-tunnel-at-a- time, this isn't really a problem. But later if we allow nested tunneling, it means that the DNS lookup in a second tunnel can potentially escape the DNS server of the first tunnel. We can address this problem later, perhaps with fancier security descriptors that we shuffle around depending on which state the tunnel is in. And on the bright side, this change allows people to run WireGuard over port 53 itself, which is generally a desirable thing.
Diffstat (limited to 'ui/tunnelspage.go')
0 files changed, 0 insertions, 0 deletions