]> git.ipfire.org Git - thirdparty/wireguard-tools.git/log
thirdparty/wireguard-tools.git
4 years agowg-quick: linux: check for CAP_NET_ADMIN and config file access before auto_su jd/capability-check
Jason A. Donenfeld [Fri, 28 Aug 2020 08:58:51 +0000 (10:58 +0200)] 
wg-quick: linux: check for CAP_NET_ADMIN and config file access before auto_su

This way people can use wg-quick in situations where they only have
CAP_NET_ADMIN but not other capabilities, and are operating on writable
files.

Suggested-by: Jonny Fillmore <jonathon.fillmore@netprotect.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
4 years agoversion: bump v1.0.20200827
Jason A. Donenfeld [Thu, 27 Aug 2020 08:22:09 +0000 (10:22 +0200)] 
version: bump

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
4 years agoRevert "wg-quick: wait on process substitutions"
Jason A. Donenfeld [Thu, 27 Aug 2020 08:17:42 +0000 (10:17 +0200)] 
Revert "wg-quick: wait on process substitutions"

This reverts commit 26683f6c9ad18d9914b23312c221f27fd5ecab51, which
means the old problem comes back. That's an issue. But waiting on
process substitutions is not available with commonly used bash versions:

  # wg-quick up demo
  [#] ip link add demo type wireguard
  [#] wg setconf demo /dev/fd/63
  /usr/bin/wg-quick: line 251: wait: pid 2955 is not a child of this shell
  [#] ip link delete dev demo

This means we have to wait a few years before fixing this issue. IOW,
bash limitation; can't fix.

Reported-by: Theodore Mozzo <theodore.mozzo@gmail.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
4 years agowg-quick: android: use iproute2 to bring up interface instead of ndc
Jason A. Donenfeld [Tue, 25 Aug 2020 19:54:22 +0000 (21:54 +0200)] 
wg-quick: android: use iproute2 to bring up interface instead of ndc

Android 11's ndc regresses even more, but it turns out that netd doesn't
need to track up/down state via direct invocation, so just set the
interface up by way of normal iproute2.

Reported-by: Harsh Shandilya <me@msfjarvis.dev>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
4 years agoversion: bump v1.0.20200820
Jason A. Donenfeld [Thu, 20 Aug 2020 10:06:22 +0000 (12:06 +0200)] 
version: bump

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
4 years agowg-quick: wait on process substitutions
Jason A. Donenfeld [Mon, 3 Aug 2020 08:18:40 +0000 (10:18 +0200)] 
wg-quick: wait on process substitutions

Bash does not propagate error values, which is a bummer, but process
substitutions are a useful feature. Introduce a new idiom to deal with
this: either "; wait $!" after the line to propagate the error, or "||
true" to indicate explicitly that we don't care about the error.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
4 years agoctype: use non-locale-specific ctype.h
Jason A. Donenfeld [Tue, 4 Aug 2020 12:49:21 +0000 (14:49 +0200)] 
ctype: use non-locale-specific ctype.h

We also make these constant time, even though we're never distinguishing
between bits of a secret using them. From that perspective, though, this
is markedly better than the locale-specific table lookups in glibc, even
though base64 characters span two cache lines and valid private keys
must hit both.

Co-authored-by: Samuel Neves <sneves@dei.uc.pt>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: Samuel Neves <sneves@dei.uc.pt>
4 years agopubkey: isblank is a subset of isspace
Jason A. Donenfeld [Tue, 4 Aug 2020 12:04:52 +0000 (14:04 +0200)] 
pubkey: isblank is a subset of isspace

Therefore, there's no need to test both.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoman: wg-quick: use syncconf instead of addconf for strip example
Jason A. Donenfeld [Tue, 28 Jul 2020 08:57:54 +0000 (10:57 +0200)] 
man: wg-quick: use syncconf instead of addconf for strip example

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agosystemd: add reload target to systemd unit
Domonkos P. Tomcsanyi [Fri, 24 Jul 2020 14:21:52 +0000 (16:21 +0200)] 
systemd: add reload target to systemd unit

Users can now run `systemctl reload wg-quick@wgnet0`, as described in
the wg-quick(8) man page. Note that this won't adjust Address=, DNS=, or
the various other non-wg(8) fields.

Signed-off-by: Domonkos P. Tomcsanyi <domi@tomcsanyi.net>
[zx2c4: use exec for bash commands to reduce excess forks, and rewrite
        commit message]
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowincompat: fold random into genkey
Jason A. Donenfeld [Tue, 26 May 2020 00:05:14 +0000 (18:05 -0600)] 
wincompat: fold random into genkey

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoipc: split into separate files per-platform
Jason A. Donenfeld [Mon, 25 May 2020 23:13:20 +0000 (17:13 -0600)] 
ipc: split into separate files per-platform

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoversion: bump v1.0.20200513
Jason A. Donenfeld [Thu, 14 May 2020 00:29:41 +0000 (18:29 -0600)] 
version: bump

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoipc: openbsd: switch to array ioctl interface
Jason A. Donenfeld [Wed, 13 May 2020 06:37:46 +0000 (00:37 -0600)] 
ipc: openbsd: switch to array ioctl interface

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoMakefile: remember to install all systemd units
Jason A. Donenfeld [Tue, 12 May 2020 03:31:05 +0000 (21:31 -0600)] 
Makefile: remember to install all systemd units

Reported-by: Unit 193 <unit193@unit193.net>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoversion: bump v1.0.20200510
Jason A. Donenfeld [Mon, 11 May 2020 04:20:44 +0000 (22:20 -0600)] 
version: bump

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg-quick: cleanup openbsd support
Jason A. Donenfeld [Sun, 10 May 2020 06:58:31 +0000 (00:58 -0600)] 
wg-quick: cleanup openbsd support

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg-quick: add support for openbsd kernel implementation
Matt Dunwoodie [Sun, 10 May 2020 08:06:14 +0000 (02:06 -0600)] 
wg-quick: add support for openbsd kernel implementation

Signed-off-by: Matt Dunwoodie <ncon@noconroy.net>
5 years agoipc: cleanup openbsd support
Jason A. Donenfeld [Sun, 10 May 2020 06:24:46 +0000 (00:24 -0600)] 
ipc: cleanup openbsd support

We also add a wg_if.h in the fallback include path.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoipc: add support for openbsd kernel implementation
Matt Dunwoodie [Sun, 29 Dec 2019 01:48:38 +0000 (12:48 +1100)] 
ipc: add support for openbsd kernel implementation

Signed-off-by: Matt Dunwoodie <ncon@noconroy.net>
5 years agoipc: remove extra space
Jason A. Donenfeld [Sun, 10 May 2020 05:20:03 +0000 (23:20 -0600)] 
ipc: remove extra space

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg-quick: support dns search domains
Jason A. Donenfeld [Sat, 9 May 2020 05:15:50 +0000 (23:15 -0600)] 
wg-quick: support dns search domains

If DNS= has an IP in it, treat it as a DNS server. If DNS= has a non-IP
in it, treat it as a DNS search domain.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agosystemd: add wg-quick.target
Martin Hauke [Fri, 1 May 2020 21:55:55 +0000 (23:55 +0200)] 
systemd: add wg-quick.target

Add file wg-quick.target, which allows starting and stopping all
wg-quick@.service instances at once.

Signed-off-by: Martin Hauke <mardnh@gmx.de>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoterminal: specialize color_mode to stdout only
Jason A. Donenfeld [Tue, 21 Apr 2020 04:52:35 +0000 (22:52 -0600)] 
terminal: specialize color_mode to stdout only

By specializing this to stdout, we can cache the isatty result.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agogit: add gitattributes so tarball doesn't have gitignore files
Jason A. Donenfeld [Thu, 9 Apr 2020 05:51:16 +0000 (23:51 -0600)] 
git: add gitattributes so tarball doesn't have gitignore files

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg-quick: android: support application whitelist
Jason A. Donenfeld [Mon, 6 Apr 2020 01:38:11 +0000 (19:38 -0600)] 
wg-quick: android: support application whitelist

Prior we only supported a blacklist, but actually a whitelist is an
easier algorithm because that's internally how netd considers it, so we
don't need to find range spans. This commit adds an IncludedApplications
key.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agohighlighter: insist on 256-bit keys, not 257-bit or 258-bit
Jason A. Donenfeld [Sat, 4 Apr 2020 05:14:07 +0000 (23:14 -0600)] 
highlighter: insist on 256-bit keys, not 257-bit or 258-bit

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoMakefile: simplify silent cleaning
Jason A. Donenfeld [Mon, 23 Mar 2020 06:06:24 +0000 (00:06 -0600)] 
Makefile: simplify silent cleaning

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoversion: bump v1.0.20200319
Jason A. Donenfeld [Thu, 19 Mar 2020 22:46:35 +0000 (16:46 -0600)] 
version: bump

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowincompat: use new protected prefix on Windows
Jason A. Donenfeld [Thu, 19 Mar 2020 22:33:14 +0000 (16:33 -0600)] 
wincompat: use new protected prefix on Windows

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowincompat: use string_list instead of inflatable_buffer
Jason A. Donenfeld [Thu, 19 Mar 2020 22:29:27 +0000 (16:29 -0600)] 
wincompat: use string_list instead of inflatable_buffer

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoman: add a warning to the SaveConfig description
Luis Ressel [Mon, 24 Feb 2020 12:00:08 +0000 (13:00 +0100)] 
man: add a warning to the SaveConfig description

Signed-off-by: Luis Ressel <aranea@aixah.de>
[zx2c4: slightly adjusted wording]
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoman: backlink wg-quick(8) in wg(8)
Jason A. Donenfeld [Wed, 12 Feb 2020 14:46:23 +0000 (15:46 +0100)] 
man: backlink wg-quick(8) in wg(8)

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoman: fix grammar in wg(8) and wg-quick(8)
Kai Haberzettl [Sat, 8 Feb 2020 20:23:47 +0000 (21:23 +0100)] 
man: fix grammar in wg(8) and wg-quick(8)

This fixes a few grammatical errors.

Signed-off-by: Kai Haberzettl <khaberz@gmail.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agocurve25519: squelch warnings on clang
Jason A. Donenfeld [Fri, 7 Feb 2020 14:46:59 +0000 (15:46 +0100)] 
curve25519: squelch warnings on clang

These are generic helper functions we don't want to move into the actual
implementations, so that it's easy to keep parity with the kernel code.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agonetlink: initialize mostly unused field
Jason A. Donenfeld [Thu, 6 Feb 2020 16:20:15 +0000 (17:20 +0100)] 
netlink: initialize mostly unused field

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoversion: bump v1.0.20200206
Jason A. Donenfeld [Thu, 6 Feb 2020 15:19:47 +0000 (16:19 +0100)] 
version: bump

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agonetlink: don't pretend that sysconf isn't a function
Jason A. Donenfeld [Wed, 5 Feb 2020 22:59:55 +0000 (23:59 +0100)] 
netlink: don't pretend that sysconf isn't a function

We can cache the value of this instead of evaluating every time.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agonetlink: remove libmnl requirement
Jason A. Donenfeld [Mon, 3 Feb 2020 15:52:29 +0000 (16:52 +0100)] 
netlink: remove libmnl requirement

It turns out that the binary actually gets smaller if we simply inline
the very small parts of libmnl that we need. Since we wind up needing
the mnlg bits anyway, there's little benefit in linking to libmnl.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoembeddable-wg-library: use newer string_list
Jason A. Donenfeld [Mon, 3 Feb 2020 15:35:01 +0000 (16:35 +0100)] 
embeddable-wg-library: use newer string_list

This ports 1d2d6200b8ff517db0f7530645180df3cc4afa74.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoextract-{handshakes,keys}: rework for upstream kernel
Jason A. Donenfeld [Fri, 31 Jan 2020 23:48:25 +0000 (00:48 +0100)] 
extract-{handshakes,keys}: rework for upstream kernel

Now that WireGuard has been upstreamed and the repos split, we have to
look elsewhere for these headers.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoman: document dynamic debug trick for Linux
Jason A. Donenfeld [Fri, 31 Jan 2020 22:17:12 +0000 (23:17 +0100)] 
man: document dynamic debug trick for Linux

This comes up occasionally, so it may be useful to mention its
possibility in the man page. At least the Arch Linux and Ubuntu kernels
support dynamic debugging, so this advise will at least help somebody.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg-quick: android: split uids into multiple commands
Jason A. Donenfeld [Fri, 31 Jan 2020 17:56:52 +0000 (18:56 +0100)] 
wg-quick: android: split uids into multiple commands

Different versions of netd have different limits on how many can be
passed at once.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Reported-by: Alexey <zaranecc@bk.ru>
5 years agoversion: bump v1.0.20200121
Jason A. Donenfeld [Tue, 21 Jan 2020 14:51:31 +0000 (15:51 +0100)] 
version: bump

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoMakefile: sort inputs to linker so that build is reproducible
Jason A. Donenfeld [Tue, 21 Jan 2020 12:05:42 +0000 (13:05 +0100)] 
Makefile: sort inputs to linker so that build is reproducible

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agonetlink: make sure to clear return value when trying again
Jason A. Donenfeld [Sat, 11 Jan 2020 17:16:13 +0000 (12:16 -0500)] 
netlink: make sure to clear return value when trying again

Otherwise this runs in an infinite loop if at some point a dump was
interrupted.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agofuzz: add set and setconf fuzzers
Jason A. Donenfeld [Sat, 11 Jan 2020 15:28:19 +0000 (16:28 +0100)] 
fuzz: add set and setconf fuzzers

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoMakefile: evaluate git version lazily
Jason A. Donenfeld [Wed, 8 Jan 2020 22:59:58 +0000 (17:59 -0500)] 
Makefile: evaluate git version lazily

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agofuzz: add generic command argument fuzzer
Jason A. Donenfeld [Sat, 4 Jan 2020 14:34:28 +0000 (15:34 +0100)] 
fuzz: add generic command argument fuzzer

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoipc: simplify inflatable buffer and add fuzzer
Jason A. Donenfeld [Sat, 4 Jan 2020 13:46:27 +0000 (14:46 +0100)] 
ipc: simplify inflatable buffer and add fuzzer

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoMakefile: add standard 'all' target
Jason A. Donenfeld [Fri, 3 Jan 2020 20:22:22 +0000 (21:22 +0100)] 
Makefile: add standard 'all' target

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Reported-by: Bruno Wolff III <bruno@wolff.to>
5 years agoMakefile: remove pwd from compile output
Jason A. Donenfeld [Fri, 3 Jan 2020 11:36:10 +0000 (12:36 +0100)] 
Makefile: remove pwd from compile output

We previously included $(pwd) in the compile output pretty printer,
because it matched our parent out-of-tree module build. Since we're no
longer coupled to the module, we can return to a prettier scheme of just
using the object name.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Fixes: eb68ad07 ("Makefile: even prettier output")
5 years agoversion: bump v1.0.20200102
Jason A. Donenfeld [Thu, 2 Jan 2020 18:53:11 +0000 (19:53 +0100)] 
version: bump

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoglobal: bump copyright
Jason A. Donenfeld [Thu, 2 Jan 2020 18:52:25 +0000 (19:52 +0100)] 
global: bump copyright

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg-quick: linux: quote ifname for nft
Jason A. Donenfeld [Sat, 28 Dec 2019 17:35:12 +0000 (18:35 +0100)] 
wg-quick: linux: quote ifname for nft

Otherwise nft(8) has strange ideas of what a string is.

Suggested-by: RistiCore <RistiCore@mail.ee>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoMakefile: rework automatic version.h mangling
Jason A. Donenfeld [Fri, 27 Dec 2019 17:17:00 +0000 (18:17 +0100)] 
Makefile: rework automatic version.h mangling

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Reported-by: Joe Doss <joe@solidadmin.com>
5 years agofuzz: find bugs when parsing uapi input
Jason A. Donenfeld [Fri, 27 Dec 2019 13:57:09 +0000 (14:57 +0100)] 
fuzz: find bugs when parsing uapi input

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agofuzz: find bugs in the config syntax parser
Jason A. Donenfeld [Fri, 27 Dec 2019 12:40:26 +0000 (13:40 +0100)] 
fuzz: find bugs in the config syntax parser

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoman: add documentation about removing explicit listen-port
Devin Smith [Fri, 27 Dec 2019 03:35:26 +0000 (21:35 -0600)] 
man: add documentation about removing explicit listen-port

Signed-off-by: Devin Smith <thundza@gmail.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agodns-hatchet: adjust path for new repo layout
Jason A. Donenfeld [Thu, 26 Dec 2019 17:10:37 +0000 (18:10 +0100)] 
dns-hatchet: adjust path for new repo layout

Reported-by: Joe Doss <joe@solidadmin.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoMakefile: port static analysis check
Jason A. Donenfeld [Thu, 26 Dec 2019 15:54:25 +0000 (16:54 +0100)] 
Makefile: port static analysis check

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoMakefile: DEBUG_TOOLS -> DEBUG and document
Jason A. Donenfeld [Thu, 26 Dec 2019 15:50:55 +0000 (16:50 +0100)] 
Makefile: DEBUG_TOOLS -> DEBUG and document

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agosystemd: update documentation URL
Jason A. Donenfeld [Thu, 26 Dec 2019 12:57:22 +0000 (13:57 +0100)] 
systemd: update documentation URL

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoversion: bump v1.0.20191226
Jason A. Donenfeld [Thu, 26 Dec 2019 12:59:11 +0000 (13:59 +0100)] 
version: bump

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoMakefile: add git versioning to dev builds
Jason A. Donenfeld [Thu, 26 Dec 2019 12:01:00 +0000 (13:01 +0100)] 
Makefile: add git versioning to dev builds

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoREADME: consolidate with INSTALL and rewrite
Jason A. Donenfeld [Thu, 26 Dec 2019 11:19:23 +0000 (12:19 +0100)] 
README: consolidate with INSTALL and rewrite

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg: include tools version
Jason A. Donenfeld [Thu, 26 Dec 2019 11:30:12 +0000 (12:30 +0100)] 
wg: include tools version

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg: add back source formerly shared with kernel module
Jason A. Donenfeld [Thu, 26 Dec 2019 11:09:53 +0000 (12:09 +0100)] 
wg: add back source formerly shared with kernel module

We used to reach back into parent directories for this, but with the
repo split, we now require our own copy.

We use -idirafter in case system headers are installed for the
wireguard.h netlink definitions.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agogitignore: trim down to basics
Jason A. Donenfeld [Thu, 26 Dec 2019 11:02:11 +0000 (12:02 +0100)] 
gitignore: trim down to basics

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg-quick: linux: use already configured addresses instead of in-memory
Jason A. Donenfeld [Tue, 17 Dec 2019 13:14:13 +0000 (14:14 +0100)] 
wg-quick: linux: use already configured addresses instead of in-memory

The ADDRESSES array might not have addresses added during PreUp. But
moreover, nft(8) and iptables(8) don't like ip addresses in the form
somev6prefix::someipv4suffix, such as fd00::1.2.3.4, while ip(8) can
handle it. So by adding these first and then asking for them back, we
always get normalized addresses suitable for nft(8) and iptables(8).

Reported-by: Silvan Nagl <mail@53c70r.de>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg: adjust wg.8 syntax for consistency in COMMANDS section
Kai Haberzettl [Fri, 13 Dec 2019 07:42:30 +0000 (08:42 +0100)] 
wg: adjust wg.8 syntax for consistency in COMMANDS section

Signed-off-by: Kai Haberzettl <khaberz@gmail.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg-quick: linux: try both iptables(8) and nft(8) on teardown
Jason A. Donenfeld [Thu, 12 Dec 2019 16:24:04 +0000 (17:24 +0100)] 
wg-quick: linux: try both iptables(8) and nft(8) on teardown

Daniel argues that technically a package manager could install nft(8)
after previously having started wg-quick(8) using iptables(8).

Suggested-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg-quick: linux: support older nft(8)
Jason A. Donenfeld [Tue, 10 Dec 2019 21:51:40 +0000 (22:51 +0100)] 
wg-quick: linux: support older nft(8)

Older nft(8), such as that on Ubuntu, does not accept the - parameter to
the -f argument and doesn't accept symbolic priority names. So instead
use the canonical numeric priority forms and use <(echo) instead of -.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoglobal: fix up spelling
Josh Soref [Tue, 10 Dec 2019 16:22:58 +0000 (17:22 +0100)] 
global: fix up spelling

Signed-off-by: Josh Soref <jsoref@gmail.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg-quick: linux: add support for nft and prefer it
Jason A. Donenfeld [Tue, 10 Dec 2019 15:37:34 +0000 (16:37 +0100)] 
wg-quick: linux: add support for nft and prefer it

If nft(8) is installed, use it. These rules should be identical to the
iptables-restore(8) ones, with the advantage that cleanup is easy
because we use custom table names.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg-quick: linux: ignore save warnings for iptables-nft
Jason A. Donenfeld [Fri, 6 Dec 2019 15:51:05 +0000 (16:51 +0100)] 
wg-quick: linux: ignore save warnings for iptables-nft

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg-quick: linux: suppress more warnings on weird kernels
Jason A. Donenfeld [Fri, 6 Dec 2019 15:22:18 +0000 (16:22 +0100)] 
wg-quick: linux: suppress more warnings on weird kernels

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg-quick: linux: some iptables don't like empty lines
Jason A. Donenfeld [Thu, 5 Dec 2019 17:33:15 +0000 (18:33 +0100)] 
wg-quick: linux: some iptables don't like empty lines

Reported-by: Kenneth R. Crudup <kenny@panix.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg-quick: linux: iptables-* -w is not widely supported
Jason A. Donenfeld [Thu, 5 Dec 2019 10:47:57 +0000 (11:47 +0100)] 
wg-quick: linux: iptables-* -w is not widely supported

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoipc: make sure userspace communication frees wgdevice
Jason A. Donenfeld [Mon, 2 Dec 2019 18:19:38 +0000 (19:19 +0100)] 
ipc: make sure userspace communication frees wgdevice

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg-quick: linux: have remove_iptables return true
Jason A. Donenfeld [Thu, 28 Nov 2019 17:15:41 +0000 (18:15 +0100)] 
wg-quick: linux: have remove_iptables return true

Reported-by: Thomas Sattler <sattler@med.uni-frankfurt.de>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg-quick: linux: ensure postdown hooks execute
Jason A. Donenfeld [Thu, 28 Nov 2019 12:49:34 +0000 (13:49 +0100)] 
wg-quick: linux: ensure postdown hooks execute

Reported-by: Thomas Sattler <sattler@med.uni-frankfurt.de>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg-quick: linux: suppress error when finding unused table
Jason A. Donenfeld [Wed, 27 Nov 2019 16:12:08 +0000 (17:12 +0100)] 
wg-quick: linux: suppress error when finding unused table

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg: add syncconf command
Jason A. Donenfeld [Tue, 11 Jun 2019 17:22:52 +0000 (19:22 +0200)] 
wg: add syncconf command

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoreresolve-dns: remove invalid anchors on regex match
Jason A. Donenfeld [Wed, 27 Nov 2019 12:30:43 +0000 (13:30 +0100)] 
reresolve-dns: remove invalid anchors on regex match

Reported-by: Conrad Meyer <cem@freebsd.org>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg-quick: linux: filter bogus injected packets and don't disable rpfilter
Jason A. Donenfeld [Thu, 21 Nov 2019 10:19:43 +0000 (11:19 +0100)] 
wg-quick: linux: filter bogus injected packets and don't disable rpfilter

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg-quick: linux: only touch net.ipv4 for v4
Jason A. Donenfeld [Thu, 21 Nov 2019 09:53:45 +0000 (10:53 +0100)] 
wg-quick: linux: only touch net.ipv4 for v4

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg-quick: android: check for null in binder cleanup functions
Jason A. Donenfeld [Wed, 16 Oct 2019 12:23:27 +0000 (14:23 +0200)] 
wg-quick: android: check for null in binder cleanup functions

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg-quick: android: use Binder for setting DNS on Android 10
Nicolas Douma [Wed, 2 Oct 2019 19:10:51 +0000 (21:10 +0200)] 
wg-quick: android: use Binder for setting DNS on Android 10

Signed-off-by: Nicolas Douma <nicolas@serveur.io>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg: windows: enforce named pipe ownership and use protected prefix
Jason A. Donenfeld [Fri, 30 Aug 2019 19:51:27 +0000 (13:51 -0600)] 
wg: windows: enforce named pipe ownership and use protected prefix

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg-quick: linux: don't fail down when using systemd-resolved
Ronan Pigott [Wed, 28 Aug 2019 01:42:14 +0000 (18:42 -0700)] 
wg-quick: linux: don't fail down when using systemd-resolved

systemd-resolved has a compatibility interface for use with resolvconf
scripts when resolvectl is called from a symlink from resolvconf.
However, when tearing down the interface, cmd_down calls del_if and then
unset_dns. In the case of systemd-resolved, deleting the interface also
removes the systemd-resolved entry and causes resolvconf -d to fail when
resolvconf really is a symlink to resolvectl. This causes `wg-quick
down` and 'wg-quick@.service' to exit with failure.

Instead we use the resolvconf '-f' flag to ignore non-existent
interfaces, supported by both openresolv and sd-resolved resolvconf.

Signed-off-by: Ronan Pigott <rpigott@berkeley.edu>
[zx2c4: moved -f argument to end to remain compatible with Debian's resolvconf]
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg-quick: openbsd: fix alternate routing table syntax
Ankur Kothari [Mon, 5 Aug 2019 22:57:28 +0000 (08:57 +1000)] 
wg-quick: openbsd: fix alternate routing table syntax

route(8) has always used the `-T` option to specify the
routing table; there is no `rdomain` option.

Signed-off-by: Ankur Kothari <ankur@lipidity.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg-quick: android: refactor and add incoming allow rules
Jason A. Donenfeld [Mon, 8 Jul 2019 10:56:41 +0000 (12:56 +0200)] 
wg-quick: android: refactor and add incoming allow rules

Suggested-by: Yağmur Oymak <yagmur.oymak@gmail.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg-quick: darwin: support being called from launchd
Jason A. Donenfeld [Wed, 19 Jun 2019 11:18:34 +0000 (13:18 +0200)] 
wg-quick: darwin: support being called from launchd

This causes wg-quick up to wait for the monitor to exit before it exits,
so that launchd can correctly wait on it.

Reported-by: Cameron Palmer <cameron@promon.no>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg: pass WG_ENDPOINT_RESOLUTION_RETRIES=infinity to systemd unit
Jason A. Donenfeld [Fri, 31 May 2019 19:10:41 +0000 (21:10 +0200)] 
wg: pass WG_ENDPOINT_RESOLUTION_RETRIES=infinity to systemd unit

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg: add wincompat layer to wg(8)
Jason A. Donenfeld [Sat, 11 May 2019 17:34:19 +0000 (19:34 +0200)] 
wg: add wincompat layer to wg(8)

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg: allow setting WG_ENDPOINT_RESOLUTION_RETRIES
Jason A. Donenfeld [Tue, 28 May 2019 20:45:15 +0000 (22:45 +0200)] 
wg: allow setting WG_ENDPOINT_RESOLUTION_RETRIES

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg-quick: specify protocol to ip(8), because of inconsistencies
Jason A. Donenfeld [Fri, 17 May 2019 15:30:38 +0000 (17:30 +0200)] 
wg-quick: specify protocol to ip(8), because of inconsistencies

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg-quick: look up existing routes properly
Jason A. Donenfeld [Fri, 17 May 2019 10:32:46 +0000 (12:32 +0200)] 
wg-quick: look up existing routes properly

This was never really correct, and then 5.1 broke it entirely.

Reported-by: piraty1@inbox.ru
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg-quick: make darwin and freebsd path search strict like linux
Jason A. Donenfeld [Tue, 23 Apr 2019 09:16:16 +0000 (18:16 +0900)] 
wg-quick: make darwin and freebsd path search strict like linux

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>