Skip to content

Commit c501153

Browse files
committed
add Rosenpass support
1 parent 00d99eb commit c501153

File tree

4 files changed

+46
-0
lines changed

4 files changed

+46
-0
lines changed

netbird/DOCS.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ comparison to installing any other Home Assistant add-on.
2020
1. Install the "NetBird" add-on.
2121
1. If you are using the central NetBird instance you can either use the URL generated in the log or you can use a `setup_key`. If hosting your own then you'll want to set `admin_url` & `management_url` and again only need to set up the `setup_key` if you don't want to login via the log generated URL.
2222
1. If you would like to change the auto generated hostname (which is the docker container id in case of hassio) set the `hostname`.
23+
1. If you would like to enable Rosenpass set the `rosenpass` to `true`.
24+
1. If you would like to enable Rosenpass in permissive way set the `rosenpass_permissive` to true.
2325
1. Start the "NetBird" add-on.
2426
1. Feels free to check the logs for `NetBird` to make sure its booted correctly.
2527
1. This client will show up in your NetBird dashboard.
@@ -73,6 +75,20 @@ Hostname in the NetBird network (used to during registration)
7375

7476
This hostname will be used in the Peers to identify your machine.
7577

78+
### Option: `rosenpass`
79+
80+
Rosenpass can be enabled by setting a flag on client start-up.
81+
82+
Rosenpass is a post-quantum secure key-exchange protocol that enhances WireGuard
83+
VPNs against quantum computer attacks. It employs advanced cryptographic methods
84+
Classic McEliece and Kyber.
85+
86+
### Option: `rosenpass_permissive`
87+
88+
Rosenpass can be enabled in permissive way.
89+
90+
Enabling Rosenpass on one peer assumes that all peers have Rosenpass enabled. If one of the peers does not enable this feature or run an older version that lacks Rosenpass, the connection won't work. To allow non-Rosenpass enabled peers to connect to a Rosenpass peer, the permissive mode can be activated. In this case, the NetBird client will default to a standard WireGuard connection without pre-shared keys for those connections that don't support Rosenpass. It will continue negotiating PSKs with Rosenpass for the rest, ensuring enhanced security wherever possible.
91+
7692
### Option: `env_vars`
7793

7894
Extra environment variables

netbird/config.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,16 @@ options:
3030
management_url: ""
3131
setup_key: ""
3232
hostname: ""
33+
rosenpass: false
34+
rosenpass_permissive: false
3335
env_vars: []
3436
schema:
3537
admin_url: str
3638
management_url: str
3739
setup_key: str
3840
hostname: str
41+
rosenpass: bool
42+
rosenpass_permissive: bool
3943
env_vars:
4044
- name: match(^NB_([A-Z0-9_])+$)
4145
value: str

netbird/rootfs/etc/s6-overlay/s6-rc.d/netbird/run

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ admin_url="$(bashio::config 'admin_url')"
1919
management_url="$(bashio::config 'management_url')"
2020
setup_key="$(bashio::config 'setup_key')"
2121
hostname="$(bashio::config 'hostname')"
22+
rosenpass="$(bashio::config 'rosenpass')"
23+
rosenpass_permissive="$(bashio::config 'rosenpass_permissive')"
2224
log_level="$(bashio::config 'log_level')"
2325

2426
options+=(--foreground-mode)
@@ -55,6 +57,18 @@ else
5557
options+=(--hostname "${hostname}")
5658
fi
5759

60+
if ! ${rosenpass}; then
61+
bashio::log.info "Rosenpass disabled"
62+
options+=(--enable-rosenpass=false)
63+
else
64+
bashio::log.info "Rosenpass enabled"
65+
options+=(--enable-rosenpass)
66+
if ${rosenpass_permissive}; then
67+
bashio::log.info "Rosenpass permissive mode enabled"
68+
options+=(--rosenpass-permissive)
69+
fi
70+
fi
71+
5872
if [ "${log_level}" = "" ] || [ "${log_level}" = "null" ]; then
5973
bashio::log.info "No log level Set"
6074
bashio::log.info "This client will use the default logging."

netbird/translations/en.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,18 @@ configuration:
2929
description: >-
3030
Hostname of the client (default "netbird-client")
3131
This is the name of the client that will be displayed in the NetBird dashboard.
32+
rosenpass:
33+
name: Rosenpass
34+
description: >-
35+
Rosenpass can be enabled by setting a flag on client start-up.
36+
Rosenpass is a post-quantum secure key-exchange protocol that enhances WireGuard
37+
VPNs against quantum computer attacks. It employs advanced cryptographic methods
38+
Classic McEliece and Kyber.
39+
rosenpass_permissive:
40+
name: Rosenpass Permissive
41+
description: >-
42+
Rosenpass permissive mode can be enabled by setting a flag on client start-up.
43+
This mode allows the client to connect to a non-Rosenpass server.
3244
env_vars:
3345
name: Extra environment variables
3446
description: >-

0 commit comments

Comments
 (0)