From a4c5e72c0b2cff730f822f25ba32581d16d3fe3e Mon Sep 17 00:00:00 2001 From: Alex Manning Date: Sat, 8 Jan 2022 13:40:15 +0000 Subject: [PATCH] Add wireguard client. --- wireguard-client/DOCS.md | 127 +++++++++++++++++++++++++++++++++++ wireguard-client/README.md | 33 +++++++++ wireguard-client/config.yaml | 56 +++++++++++++++ wireguard-client/icon.png | Bin 0 -> 13402 bytes wireguard-client/logo.png | Bin 0 -> 23352 bytes 5 files changed, 216 insertions(+) create mode 100644 wireguard-client/DOCS.md create mode 100644 wireguard-client/README.md create mode 100755 wireguard-client/config.yaml create mode 100644 wireguard-client/icon.png create mode 100644 wireguard-client/logo.png diff --git a/wireguard-client/DOCS.md b/wireguard-client/DOCS.md new file mode 100644 index 0000000..f9e70d7 --- /dev/null +++ b/wireguard-client/DOCS.md @@ -0,0 +1,127 @@ +# Home Assistant Community Add-on: WireGuard Client + +[WireGuard®][wireguard] is an extremely simple yet fast and modern VPN that +utilizes state-of-the-art cryptography. It aims to be faster, simpler, leaner, +and more useful than IPsec, while avoiding the massive headache. + +It intends to be considerably more performant than OpenVPN. WireGuard is +designed as a general-purpose VPN for running on embedded interfaces and +supercomputers alike, fit for many different circumstances. + +Initially released for the Linux kernel, it is now cross-platform (Windows, +macOS, BSD, iOS, Android) and widely deployable, +including via an Hass.io add-on! + +WireGuard is currently under heavy development, but already it might be +regarded as the most secure, easiest to use, and the simplest VPN solution +in the industry. + +## Sponsor + +Please, if You want support this kind of projects: + +Buy Me A Coffee + +Many Thanks, + +Fabio Mauro + +## Authors & contributors + +Fabio Mauro Bigmoby + +Project forked from [Wireguard add-on][original_project]. + +For a full list of all authors and contributors, +check [the contributor's page][contributors]. + +## Installation + +WireGuard Client add-on is pretty simple, however, can be quite complex for user that isn't +familiar with all terminology used. The add-on takes care of a lot of things +for you (if you want). + +Follow the following steps for installation & a quick start: + +1. Search for the "WireGuard Client" add-on in the Supervisor add-on store + and install it. +1. use the following configuration as example: + +```yaml +interface: + private_key: your-private-key + address: 10.6.0.2 + dns: + - 8.8.8.8 + - 8.8.4.4 + post_up: iptables -t nat -A POSTROUTING -o wg0 -j MASQUERADE + post_down: iptables -t nat -D POSTROUTING -o wg0 -j MASQUERADE +peers: + - public_key: your-public-key + pre_shared_key: your-preshared-key + endpoint: 'xxxxxxxxxxxxxxx.duckdns.org:51820' + allowed_ips: + - 10.6.0.0/24 + persistent_keep_alive: 25 +``` + +1. Save the configuration. +1. Start the "WireGuard" add-on + +## WireGuard client status API + +This add-on provides a simple WireGuard status API. This API is not an +official API, darn simple, and experimental, but does allow you to pull +in data from the add-on into Home Assistant. + +With the use of the [Home Assistant RESTful][ha-rest] integration, one should +be able to grab some interesting data from this add-on. + +Example: + +```yaml +sensor: + - platform: rest + resource: http://a0d7b954-wireguard +``` + +At this moment, we do not have template or examples on how this could be +used effectively with Home Assistant. +If you have, sharing would be appreciated! + +## Authors & contributors + +The original setup of this repository is by [Fabio Mauro][bigmoby]. + +This is a fork of Wireguard Add-on + +## License + +MIT License + +Copyright (c) 2020-2021 Fabio Mauro + +Copyright (c) 2019-2020 Franck Nijhof + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +[bigmoby]: https://github.com/bigmoby +[wireguard]: https://www.wireguard.com +[original_project]: https://github.com/hassio-addons/addon-wireguard +[contributors]: https://github.com/bigmoby/addon-wireguard-client/graphs/contributors diff --git a/wireguard-client/README.md b/wireguard-client/README.md new file mode 100644 index 0000000..af718fe --- /dev/null +++ b/wireguard-client/README.md @@ -0,0 +1,33 @@ +# Home Assistant Bigmoby Add-on: WireGuard Client + +WireGuard: fast, modern, secure VPN tunnel. + +## About + +[WireGuard®][wireguard] is an extremely simple yet fast and modern VPN that +utilizes state-of-the-art cryptography. It aims to be faster, simpler, leaner, +and more useful than IPsec, while avoiding the massive headache. + +It intends to be considerably more performant than OpenVPN. WireGuard is +designed as a general-purpose VPN for running on embedded interfaces and +supercomputers alike, fit for many different circumstances. + +Initially released for the Linux kernel, it is now cross-platform (Windows, +macOS, BSD, iOS, Android) and widely deployable, +including via an Hass.io add-on! + +WireGuard is currently under heavy development, but already it might be +regarded as the most secure, easiest to use, and the simplest VPN solution +in the industry. + +## Sponsor + +Please, if You want support this kind of projects: + +Buy Me A Coffee + +Many Thanks, + +Fabio Mauro + +[wireguard]: https://www.wireguard.com \ No newline at end of file diff --git a/wireguard-client/config.yaml b/wireguard-client/config.yaml new file mode 100755 index 0000000..12eec80 --- /dev/null +++ b/wireguard-client/config.yaml @@ -0,0 +1,56 @@ +--- +name: WireGuard Client +version: 0.2.0 +slug: wireguard_client +description: Fast, modern, secure Wireguard tunnel (client) +url: https://github.com/bigmoby/addon-wireguard-client +arch: + - aarch64 + - amd64 + - armhf + - armv7 + - i386 +apparmor: true +host_network: true +init: false +ports: + 80/tcp: 80 +ports_description: + 80/tcp: WireGuard client status API +hassio_api: true +privileged: + - NET_ADMIN +devices: + - /dev/net/tun +map: + - ssl:rw +options: + interface: + private_key: "" + address: 10.6.0.2 + dns: [ 8.8.8.8, 8.8.4.4] + post_up: "iptables -t nat -A POSTROUTING -o wg0 -j MASQUERADE" + post_down: "iptables -t nat -D POSTROUTING -o wg0 -j MASQUERADE" + peers: + - public_key: "" + pre_shared_key: "" + endpoint: "xxxxxx.duckdns.com:51820" + allowed_ips: [ "10.6.0.0/24" ] + persistent_keep_alive: "25" +schema: + log_level: list(trace|debug|info|notice|warning|error|fatal)? + interface: + private_key: password? + address: str + dns: + - str? + post_up: str? + post_down: str? + peers: + - public_key: str? + pre_shared_key: str? + endpoint: str + allowed_ips: + - str + persistent_keep_alive: int +image: "bigmoby/{arch}-addon-wireguard-client" \ No newline at end of file diff --git a/wireguard-client/icon.png b/wireguard-client/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..feec0ef35470c3227da477894e18f9cdb4713886 GIT binary patch literal 13402 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 literal 0 HcmV?d00001 diff --git a/wireguard-client/logo.png b/wireguard-client/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..296bad4a788acdfdfd69b0ea38454166b144882e GIT binary patch literal 23352 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 TTiZ)e00000NkvXXu0mjf`x{)$ literal 0 HcmV?d00001