The easiest, most secure way to use WireGuard and 2FA.
Go to file
David Crawshaw d417be6a4b controlclinet: clone filter.MatchAllowAll
This avoids a non-obvious data race, where the JSON decoder ends
up creating do-nothing writes into global variables.

	==================
	WARNING: DATA RACE
	Write at 0x0000011e1860 by goroutine 201:
	  tailscale.com/wgengine/packet.(*IP).UnmarshalJSON()
	      /home/crawshaw/repo/corp/oss/wgengine/packet/packet.go:83 +0x2d9
	  encoding/json.(*decodeState).literalStore()
	      /home/crawshaw/go/go/src/encoding/json/decode.go:877 +0x445e
	...
	  encoding/json.Unmarshal()
	      /home/crawshaw/go/go/src/encoding/json/decode.go:107 +0x1de
	  tailscale.com/control/controlclient.(*Direct).decodeMsg()
	      /home/crawshaw/repo/corp/oss/control/controlclient/direct.go:615 +0x1ab
	  tailscale.com/control/controlclient.(*Direct).PollNetMap()
	      /home/crawshaw/repo/corp/oss/control/controlclient/direct.go:525 +0x1053
	  tailscale.com/control/controlclient.(*Client).mapRoutine()
	      /home/crawshaw/repo/corp/oss/control/controlclient/auto.go:428 +0x3a6
	Previous read at 0x0000011e1860 by goroutine 86:
	  tailscale.com/wgengine/filter.matchIPWithoutPorts()
	      /home/crawshaw/repo/corp/oss/wgengine/filter/match.go:108 +0x91
	  tailscale.com/wgengine/filter.(*Filter).runIn()
	      /home/crawshaw/repo/corp/oss/wgengine/filter/filter.go:147 +0x3c6
	  tailscale.com/wgengine/filter.(*Filter).RunIn()
	      /home/crawshaw/repo/corp/oss/wgengine/filter/filter.go:127 +0xb0
	  tailscale.com/wgengine.(*userspaceEngine).SetFilter.func1()
	      /home/crawshaw/repo/corp/oss/wgengine/userspace.go:390 +0xfc
	  github.com/tailscale/wireguard-go/device.(*Device).RoutineDecryption()
	      /home/crawshaw/repo/corp/wireguard-go/device/receive.go:295 +0xa1f

For #112

Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-02-28 22:33:06 -05:00
.github Remove the explicit security redirect. 2020-02-13 22:44:08 -08:00
atomicfile Move Linux client & common packages into a public repo. 2020-02-09 09:32:57 -08:00
cmd netcheck: add hairpinning detection 2020-02-28 14:26:51 -08:00
control/controlclient controlclinet: clone filter.MatchAllowAll 2020-02-28 22:33:06 -05:00
derp derp/derphttp: fix reconnect behavior 2020-02-28 13:39:48 -08:00
interfaces interfaces: recognize utun as a possible Tailscale interface name prefix 2020-02-28 10:16:09 -08:00
ipn ipn: always guard LocalBackend.prefs with mu 2020-02-28 21:54:22 -05:00
logpolicy logpolicy: automatically figure out paths and filenames. 2020-02-19 18:52:41 -08:00
logtail logtail/filch: use x/sys/unix instead of syscall. 2020-02-13 23:56:39 -08:00
netcheck netcheck: add hairpinning detection 2020-02-28 14:26:51 -08:00
portlist portlist: add a lint ignore for unused function. 2020-02-10 23:50:06 -08:00
ratelimit Move Linux client & common packages into a public repo. 2020-02-09 09:32:57 -08:00
safesocket safesocket: delete incorrect build tag 2020-02-25 09:02:52 -08:00
stun stun: add server support 2020-02-26 15:19:32 -08:00
stunner netcheck, stunner: reduce log spam 2020-02-28 09:40:25 -08:00
tailcfg netcheck: add hairpinning detection 2020-02-28 14:26:51 -08:00
tempfork/osexec Move Linux client & common packages into a public repo. 2020-02-09 09:32:57 -08:00
testy Move Linux client & common packages into a public repo. 2020-02-09 09:32:57 -08:00
tsweb tsweb, cmd/derper: move common web/debug stuff from derper to new tsweb 2020-02-25 10:06:56 -08:00
types types/key: add IsZero methods 2020-02-28 11:15:07 -08:00
version version: add a manual date as version for now 2020-02-28 09:44:34 -08:00
wgengine controlclinet: clone filter.MatchAllowAll 2020-02-28 22:33:06 -05:00
.gitattributes .gitattributes: add a smudge filter for go.mod. 2020-02-19 20:02:02 -05:00
.gitignore cmd/relaynode: drop local --acl-file in favour of central packet filter. 2020-02-20 00:15:43 -05:00
AUTHORS Move Linux client & common packages into a public repo. 2020-02-09 09:32:57 -08:00
CODE_OF_CONDUCT.md Add a code of conduct. 2020-02-10 22:16:30 -08:00
Dockerfile Dockerfile: install iptables in the container. 2020-02-18 11:05:24 -08:00
go.mod go.mod: roll forward wireguard-go 2020-02-28 22:12:05 -05:00
go.sum go.mod: bump wireguard-go 2020-02-28 11:15:07 -08:00
LICENSE Move Linux client & common packages into a public repo. 2020-02-09 09:32:57 -08:00
PATENTS Move Linux client & common packages into a public repo. 2020-02-09 09:32:57 -08:00
README.md README.md: Fix typo on the word versions 2020-02-11 08:01:28 -08:00
SECURITY.md Add a SECURITY.md for vulnerability reports. 2020-02-11 10:26:41 -08:00

Tailscale

https://tailscale.com

Private WireGuard® networks made easy

Overview

This repository contains all the open source Tailscale code. It currently includes the Linux client.

The Linux client is currently cmd/relaynode, but will soon be replaced by cmd/tailscaled.

Building

go install tailscale.com/cmd/tailscale{,d}

We only support the latest Go release and any Go beta or release candidate builds (currently Go 1.13.x or Go 1.14) in module mode. It might work in earlier Go versions or in GOPATH mode, but we're making no effort to keep those working.

Bugs

Please file any issues about this code or the hosted service on the issue tracker.

Contributing

under_construction.gif

PRs welcome, but we are still working out our contribution process and tooling.

We require Developer Certificate of Origin Signed-off-by lines in commits.

About Us

We are apenwarr, bradfitz, crawshaw, danderson, dfcarney, from Tailscale Inc. You can learn more about us from our website.

WireGuard is a registered trademark of Jason A. Donenfeld.