Commit Graph

218 Commits (92b60f535dd628a60405eb66020f560e10783fc6)

Author SHA1 Message Date
Jake McGinty 78c2bfd6db meta: release v1.3.0-beta.1 2021-05-09 03:37:03 +09:00
Jake McGinty 8f12583c8c docker-tests: add test for server expiration cleanup 2021-05-09 03:07:32 +09:00
Jake McGinty fb1de8e210 shared(wg): don't fail silently on bringing the interface up 2021-05-09 02:17:23 +09:00
Jake McGinty 2ce552cc36
client, server: invite expirations
The server now expects a UNIX timestamp after which the invitation will be expired. If a peer invite hasn't been redeemed after it expires, the server will clean up old entries and allow the IP to be re-allocated for a new invite.

Closes #24
2021-05-09 00:32:51 +09:00
Jake McGinty 76500b3778 shared(prompts): simplify cidr selection code 2021-05-07 15:45:32 +09:00
Jake McGinty f27a2426c8 client: make clippy happy 2021-05-06 12:40:00 +09:00
Jake McGinty c01c2be4bb
server: switch from using warp directly to hyper (#67)
Closes #53
2021-05-06 12:32:54 +09:00
Jake McGinty d8de58c8a8 meta: cargo update 2021-05-06 01:48:56 +09:00
Jake McGinty f18fe14553 {client,server}: hide innernet-server CIDR from selection menus
It's a special /32 CIDR that is un-interactable, so is only taking
up space.

Closes #63
2021-05-04 11:34:16 +09:00
Jake McGinty a7f35ee12b client(list --tree): show CIDRs in numerical order
Closes #47
2021-04-30 19:02:07 +09:00
Jake McGinty 9896d8ee52 meta: cargo update & fmt 2021-04-30 19:01:17 +09:00
Jake McGinty 7ef92b354c meta: cargo update, fmt, fix build 2021-04-28 15:16:17 +09:00
Jake McGinty ee475715c3 client: make install step a bit more resilient
change private keys on client earlier to avoid race conditions,
and attempt the fetch call multiple times to avoid spurious issues,
while also not failing the entire command if fetch doesn't succeed.
2021-04-28 15:00:39 +09:00
Jake McGinty 733118a463 README: add security recommendations for services 2021-04-25 01:59:48 +09:00
Jake McGinty c6bb8052fb meta: release v1.2.0 2021-04-24 23:39:28 +09:00
dbr/Ben 2f18ff8e10
Fix cargo install instructions (#59)
"git checkout" -> "git clone" and install both client and server for consistency with other install methods
2021-04-24 00:30:03 +09:00
Jake McGinty 378aa8383c meta: release v1.2.0-beta.1 2021-04-21 01:13:44 +09:00
Jake McGinty d56136a89f docker-test: minor cleanups 2021-04-21 01:11:20 +09:00
Jake McGinty 0a26bdedce
{client,server}: allow hostnames in endpoints (#56)
use new Endpoint type instead of SocketAddr in appropriate places
2021-04-21 00:35:10 +09:00
Jake McGinty e2ea2ddded
docker-tests: initial integration tests (#55)
Scripts that demonstrate building a network of docker containers, doubling as an integration test for innernet.

Includes a number of improvements to the recent non-interactive CLI changes as well.
2021-04-19 21:56:18 +09:00
Matt Blessed 849cc4cd4f
use proper c char types (#54)
related: https://github.com/tonarino/innernet/issues/50
2021-04-19 15:23:46 +09:00
Jake McGinty c4e369ee54 server: non-interactive network creation 2021-04-18 01:32:56 +09:00
Jake McGinty b92ad65b17 client: add opts for non-interactive network installs 2021-04-17 12:33:24 +09:00
Jake McGinty 6d28e7f4ab
{client,server}: allow peer/cidr creation with CLI arguments (#48)
Fixes #20
2021-04-15 00:25:31 +09:00
Brian Schwind a1818d9618
Update minimum Rust version in README.md 2021-04-13 12:17:06 +09:00
Jake McGinty 142553a9cc client: use StructOpt's conflicts_with 2021-04-12 00:34:56 +09:00
Jake McGinty cb0e76c39b meta: release v1.1.0 2021-04-11 16:42:24 +09:00
Jake McGinty 10ae9b51eb wgctrl-rs: remove loud debug println 2021-04-11 16:38:32 +09:00
Jake McGinty 05d78eb253 shared: add types module 2021-04-11 14:56:47 +09:00
Jake McGinty e8790f3178 meta: release v1.1.0-rc.2 2021-04-11 13:34:09 +09:00
Jake McGinty dde58c8f45 wgctrl-rs: create /var/run/wireguard if it's not there
wireguard-go wasn't writing the name file if the directory didn't
already exist.
2021-04-11 13:30:38 +09:00
Jake McGinty c15db6f833 client: don't leave interface behind on failed install 2021-04-10 17:38:59 +09:00
Jake McGinty dcf553c8fd shared: update chmod util to ignore non-perm bits 2021-04-10 17:13:00 +09:00
Jake McGinty 0feb34690e client: small cleanups 2021-04-10 16:03:39 +09:00
Jake McGinty 6c55dafce6 meta: release v1.1.0-rc.1 2021-04-09 22:47:33 +09:00
Jake McGinty c370c25924 server: add uninstall command 2021-04-09 22:42:29 +09:00
Jake McGinty a44fe0d3ad client: add uninstall command 2021-04-09 22:37:33 +09:00
Jake McGinty 5c444cc841 release.sh: generate manpages after version bump 2021-04-09 16:26:56 +09:00
Jake McGinty eedb5758c9 meta: add homebrew package for macOS 2021-04-09 16:22:50 +09:00
Jake McGinty 6b6cb07690 release.sh: store compressed and uncompressed manpages 2021-04-09 16:15:46 +09:00
Jake McGinty badabf1145 meta: release.sh: use annotated tags 2021-04-09 15:06:57 +09:00
Jake McGinty bd7987f82f meta: release v1.0.2-rc.2 2021-04-09 15:02:44 +09:00
Jake McGinty 72dc14c49c {client,server}: enforce permissions on directories and files
This may become a warning rather than an action later, but for now
let's make sure older installations that had incorrect permissions
are taken care of.
2021-04-09 15:00:53 +09:00
Jake McGinty ee890ccaa7 meta: release v1.0.2-rc.1 2021-04-09 14:14:43 +09:00
Jake McGinty 0a0ce0793d meta: release.sh
cargo-release doesn't do everything we want during the release process,
so a separate script ends up being necessary if I don't want to forget
steps.
2021-04-09 14:14:34 +09:00
Jake McGinty a87d56cfc9
{client,server}: send and require a header that contains the server public key
This is a stop-gap CSRF protection mechanism from unsophisticated attacks. It's to be considered a temporary solution until a more complete one can be implemented, but it should be sufficient in most cases for the time being.

See https://github.com/tonarino/innernet/issues/38 for further discussion.
2021-04-09 13:48:00 +09:00
Jake McGinty bcd68df772 wgctrl-sys: correct InterfaceName parsing and simplify a bit
It was dropping the last character in the name, and I modified it to
instead just error on any &str that has a '\0' in it. The strictness
feels acceptable and simplifies the code a bit.
2021-04-09 12:27:49 +09:00
BlackHoleFox b1e1ff8f4f
wgctrl-sys: Remove some unsafe in the kernel backend
Validates WireGuard interfaces against the linux specification for interface names.
Refactor userspace and other OSes to use InterfaceName
2021-04-09 10:28:37 +09:00
Orhun Parmaksız 67c69ecfa0
readme: update installation instructions for Arch Linux (#40) 2021-04-09 10:03:34 +09:00
Jake McGinty 9b6d27d860 readme: remove linux modprobe section 2021-04-08 12:17:28 +09:00