Commit graph

65 commits

Author SHA1 Message Date
Jo-Philipp Wich
e28f9a0491 luci-proto-wireguard: fix broken DNS option in peer config generator
The config generation code was referencing a not existing `dns_servers`
input field.

Fixes: #6921
Fixes: 5b26887c52 ("Adding a DNS option to the wireguard peer config ...")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2024-02-16 16:17:26 +01:00
Nicholaos Mouzourakis
5b26887c52 Adding a DNS option to the wireguard peer config generator.
Some clients like iOS require this explicitly, and so this change
adds the appropriate config with some sensible defaults.

Closes #6351

Signed-off-by: Nicholaos Mouzourakis <nevumx@gmail.com>
Signed-off-by: Paul Donald <newtwen@gmail.com>
Tested-by: Paul Donald <newtwen@gmail.com>
(cherry picked from commit 990696d73f982de015df7c7d552daef1a03f50c5)
2023-12-05 00:08:33 +01:00
Paul Donald
a5786b5f2f
luci-proto-wireguard: Remove confirmation dialogue to generate keys (#6697)
Quality of life improvements. Reduce click amounts.
LuCI batches all changes for user-review anyway.

Tested on 23.05.0

Signed-off-by: Paul Donald <newtwen@gmail.com>
2023-12-04 22:00:35 +01:00
Nicholaos Mouzourakis
3bc0be4a00 Adding an Addresses option to the wireguard peer config generator.
Some clients like iOS require this explicitly, and so this change
adds the appropriate config with some sensible defaults.
Addresses issue #6050
Signed-off-by: Nicholaos Mouzourakis <nevumx@gmail.com>
2023-10-21 22:42:58 -04:00
Jonathan Duncan
527453ff48 luci-proto-wireguard: Escape IPv6 endpoints with [] in generated wireguard config
Signed-off-by: Jonathan Duncan <JonathanDuncan@gmail.com>
2023-09-24 16:16:35 +01:00
Paul Dee
992cca55ae luci-proto-wireguard: grammar fixes
To setup (n) -> To set(v) up

Signed-off-by: Paul Dee <itsascambutmailmeanyway@gmail.com>
2023-08-11 13:21:45 +02:00
Jo-Philipp Wich
59a6f062d2 luci-proto-wireguard: use ddns lookup_host for peer hints
The `domain` option of a DDNS service entry may contain non-hostname values,
use the `lookup_hostname` option instead.

Fixes: #6289
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2023-03-14 23:36:39 +01:00
Jo-Philipp Wich
785792a591 luci-proto-wireguard: fix configuration import
Avoid referencing not existing `peerdns` option during the configuration
file import process.

Fixes: #6136
Fixes: 2be01cbfcb ("luci-mod-network: restrict peerdns option to protocols that implemenent it")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-12-05 10:34:51 +01:00
Jo-Philipp Wich
22c51acf81 luci-proto-wireguard: fix loading peer descriptions
Explicitly load `network` uci in wireguard rpcd backend as `ctx.foreach()`
does not implicitly load it.

Also remove leftover test setup information from the status page source.

Fixes: #6095
Fixes: 008fa18878 ("luci-proto-wireguard: rewrite rpcd handler in ucode")
Fixes: 6e6fce3eb4 ("luci-proto-wireguard: merge status page functionality")
Ref: https://github.com/jow-/ucode/pull/126
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-11-23 13:20:42 +01:00
Jo-Philipp Wich
6e6fce3eb4 luci-proto-wireguard: merge status page functionality
Merge status page functionality from the separate `luci-app-wireguard`
package into the `luci-proto-wirguard` protocol backend.

Also rewrite the status page markup to be more compact while we're at it.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-11-22 10:56:36 +01:00
Julien Cassette
73aca68b9e luci-proto-wireguard: fix generated AllowedIPs
This corrects the option `AllowedIPs` in generated peer configurations,
and allows to customize it via a dropdown list.

Fixes: #5956
Signed-off-by: Julien Cassette <julien.cassette@gmail.com>
[correct fixes tag, slightly adjust option description]
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-11-09 21:00:56 +01:00
Jo-Philipp Wich
008fa18878 luci-proto-wireguard: rewrite rpcd handler in ucode
Rewrite the wireguard rpcd plugin in ucode to prevent an implicit dependency
on the LuCI Lua runtime.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-10-25 01:03:37 +02:00
Jo-Philipp Wich
94bfa33452 luci-proto-wireguard: handle multiple peers in imported configuration
When importing a fully configuration, import all peer entries from it
instead of non-deterministically merging all peer keys into one.

When importing a remote configuration as peer, only use the setting from
the peer section matching our local interface pubkey.

Also relabel the `Import peer configuration` button to
`Import configuration as peer` in order to be more explicit.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-08-01 13:00:31 +02:00
Jo-Philipp Wich
2ae74b909b luci-proto-wireguard: configuration import improvements
- Reword texts in import dialogs for better clarity, use different
   descriptions for full import and peer import

 - Allow importing configurations without [Peer] section

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-07-23 20:24:09 +02:00
Jo-Philipp Wich
340183786e luci-proto-wireguard: gracefully deal with missing uci configs
The /etc/config/ddns in particular might not be present on the system,
don't fail if it is absent.

Fixes: #5838
Fixes: 9ba20645b0 ("luci-proto-wireguard: rewrite protocol handler")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-06-21 00:07:48 +02:00
Jo-Philipp Wich
4769bf11aa luci-proto-wireguard: grant uci read access to system and ddns config
The configuration export requires access to /e/c/system and /e/c/ddns for
external hostname hints.

Fixes: #5838
Fixes: 9ba20645b0 ("luci-proto-wireguard: rewrite protocol handler")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-06-20 23:58:07 +02:00
Jo-Philipp Wich
9ba20645b0 luci-proto-wireguard: rewrite protocol handler
This commit rewrites large chunks of the WireGuard protocol handler in order
to simplify the process of importing and exporting configuration. The major
changes are:

1) The wireguard interface configuration tab (General Settings) gained an
   import assistant which allows dragging or pasting a native WireGuard
   configuration file in order to import required settrings into uci

2) The peer configuration tab gained a similar import assistant which allows
   importing the settings for a WireGuard peer from an existing native
   WireGuard configuration file

3) The QR code export feature has been rewritten to make the resulting codes
   actually useful for importing into a WireGuard client application.
   Additionally the plaintext native WireGuard configuration is displayed
   to allow copy-pasting it for use on a Linux or OS X system

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-05-17 15:45:20 +02:00
Florian Eckert
7206d8fd6a luci-proto-wireguard: adjust MTU range from 0-8940
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2022-04-14 11:59:56 +02:00
Florian Eckert
ddd04a719f luci-proto-wireguard: remove MTU limit
fixes #5737

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2022-04-12 10:32:25 +02:00
Lukas Voegl
b6925a1227 luci-proto-wireguard: add generate psk button
Signed-off-by: Lukas Voegl <lvoegl@tdt.de>
2022-03-18 14:47:44 +01:00
Jo-Philipp Wich
ff4f52983e
Merge pull request #5540 from jow-/wireguard-peer-gridsection
Implement nested grid section support and use it for wireguard peer config
2021-12-02 10:54:36 +01:00
Florian Eckert
a1723c2272
Merge pull request #5400 from systemcrash/wg_pubkey
luci-proto-wireguard: display interface public key
2021-11-30 14:10:19 +01:00
Jo-Philipp Wich
f2445a862e luci-proto-wireguard: turn peer configuration into grid view
Turn the list of configured peers into a grid section in order to improve
the overview of the configuration form.

Fixes: #5489
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2021-11-22 09:43:29 +01:00
Jo-Philipp Wich
f58ae7635c luci-proto-wireguard: fix QR code generation markup
The custom code generation markup lacked a required CSS class.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2021-11-21 23:40:21 +01:00
Robert Walli
aaa2b3dd2b luci-proto-wireguard: add option to disable peer-section
Submitted-by: Robert Walli <12079858+rwalli@users.noreply.github.com>
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2021-11-17 16:38:20 +01:00
Paul Dee
8a9dbe39d5 luci-proto-wireguard: display interface public key
Signed-off-by: Paul Dee <itsascambutmailmeanyway@gmail.com>
2021-11-11 01:31:43 +01:00
Jo-Philipp Wich
44445a8097 luci-proto-wireguard: fix potential shell injection vulnerabilities
The `luci.wireguard.generateQrCode` UBUS method allows injecting
arbitrary shell code by not sanitizing the `privkey` and `allowed_ips`
arguments before concatenating them into shell command expressions.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2021-10-08 20:27:13 +02:00
Jo-Philipp Wich
01ecb1ac8a luci-proto-wireguard: fix markup not valid for XHTML
Fixes: #5407
Fixes: 03d615f62c ("luci-proto-wireguard: add more options to qr code")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2021-10-07 16:19:30 +02:00
Florian Eckert
fc8a0b4d51
Merge pull request #5403 from lvoegl/luci-app-wireguard-fix-parsing
luci-app-wireguard: fix allowed_ip parsing
2021-10-01 17:06:33 +02:00
lvoegl
193abe7221 luci-app-wireguard: fix allowed_ip parsing
Signed-off-by: lvoegl <lvoegl@tdt.de>
2021-10-01 15:31:38 +02:00
Florian Eckert
88d7cc1261 luci-proto-wireguard: fix luci.wireguard rpcd dependency
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2021-09-30 12:46:15 +02:00
Florian Eckert
9d560c46cc luci-app-wireguard: fix dependency
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2021-09-26 13:50:46 +02:00
lvoegl
03d615f62c luci-proto-wireguard: add more options to qr code
Signed-off-by: lvoegl <lvoegl@tdt.de>
2021-09-17 14:22:54 +02:00
lvoegl
8530232f51 luci-proto-wireguard: client qr code generation
Signed-off-by: lvoegl <lvoegl@tdt.de>
2021-09-17 14:15:56 +02:00
lvoegl
d98935c45b luci-app-wireguard: merge app and proto rpcd
Signed-off-by: lvoegl <lvoegl@tdt.de>
2021-09-17 14:15:56 +02:00
Keith Irwin
092109c905
#5307 Made AllowedIPs optional
Signed-off-by: Keith Irwin <git@ki9.us>
2021-08-28 23:34:31 -06:00
Jo-Philipp Wich
bc1015f7db luci-proto-wireguard: fix fwmark validation to allow 32 bit values
The iptables mark field is 32 bits wide, which is 4 bytes and so 8 hex
characters. Fix the fwmark validation to allow 8 characters in the hex
string.

Fixes: #5098
Suggested-by: Robert <32970961+differentblue@users.noreply.github.com>
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2021-06-03 09:51:58 +02:00
Jo-Philipp Wich
171ef77e89 treewide: remove rendundant proto handler options
The introduction of network device configuration support also implemented
all common, protocol-independent interface options directly in the
interface config view, so drop the redundant option definitions.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2021-03-15 11:41:44 +01:00
Ilya Lipnitskiy
98c3d36d45 luci-{app,proto}-wireguard: remove kmod-wireguard
Prepares for 5.10 migration. wireguard-tools will bring in the correct
wireguard kernel module dependency - either kmod-wireguard or
kmod-wireguard-oot.

Depends on https://github.com/openwrt/openwrt/pull/3885

Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
2021-02-27 07:11:37 +02:00
Wojciech Jowsa
60ce87a197 luci-proto-wireguard: Add generate key button
Signed-off-by: Wojciech Jowsa <wojciech.jowsa@gmail.com>
[minor indentation fix, use bound section_id value, remove empty translation]
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2020-08-21 11:03:53 +02:00
Florian Eckert
dae15b8cf4 luci-proto-wireguard: verify last base64 string symbol is an = sign
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2020-05-14 09:44:50 +02:00
Florian Eckert
59bc317326 luci-proto-wireguard: add warning that allowed_ips must not be empty
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2020-05-13 15:34:27 +02:00
Jo-Philipp Wich
890dcac2de luci-proto-wireguard: remove peer sections when deleting interface
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2020-03-03 21:22:46 +01:00
Yuxiang Zhu
9684901dc2 wireguard: add checkbox for nohostroute option
This change allows to configure `nohostroute` option for wireguard to explicitely prevent creation
of host routes to endpoints.

By default without `option nohostroute '1'`, an explicite route to the peer's endpoint will be created in the main routing table with the next hop to the gateway. However, it causes issues with some setup. Enabling this option will inhibit this behavior. See discussions at http://lists.openwrt.org/pipermail/openwrt-devel/2019-March/016329.html.

Signed-off-by: Yuxiang Zhu <vfreex@gmail.com>
2020-02-09 02:12:30 +08:00
Jo-Philipp Wich
f1c89c103b luci-proto-wireguard: explicitely escape slashes in regex literals
The unespaced slashes confuse xgettext and likely other source
scanners as well.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2020-01-22 22:02:24 +01:00
Jo-Philipp Wich
284918bfaf treewide: move templates and libraries not used by the core to luci-compat
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-11-03 17:56:58 +01:00
Jo-Philipp Wich
995322c55f luci-proto-wireguard: fix preshared key validation
Ensure that the preshared key option remains optional.

Fixes: #3075
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-17 08:28:45 +02:00
Jo-Philipp Wich
06f4feca1d protocols: drop server side cbi implementations of protocol handlers
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-10 15:28:16 +02:00
Jo-Philipp Wich
6a2a53a829 protocols: add client side protocol handler implementations
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-10 15:28:16 +02:00
Dan Lüdtke
63b86dbbbf luci-*-wireguard: Remove inactive maintainer
I tried to find a successor in the last months, but that failed.

Signed-off by Dan Luedtke <mail@danrl.com>
2018-11-10 13:54:59 +01:00