Skip to content

Commit 065bd14

Browse files
authored
Update docs for Nebula v1.9.0 (#123)
1 parent 21ae1e4 commit 065bd14

File tree

4 files changed

+68
-3
lines changed

4 files changed

+68
-3
lines changed

docs/config/firewall.mdx

+31-2
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,20 @@ The possible fields of a firewall rule are:
6565
unsafe_routes, the rule allows. If unset, the rule will allow access to the specified ports on both the node itself as
6666
well as any IP addresses it routes to.
6767

68-
Logical evaluation is roughly: port AND proto AND (ca_sha OR ca_name) AND (host OR group OR groups OR cidr OR
69-
local_cidr).
68+
:::note
69+
70+
Logical evaluation of these rules changed in Nebula v1.9.0. Previously, a match on `local_cidr` meant that a rule did
71+
not need to also pass `host`, `group`, `groups`, or `cidr` checks. This is almost never what uers want - `local_cidr`
72+
generally refers to a specific segment of an [unsafe_routes](/docs/config/tun/#tununsafe_routes) configuration that is
73+
being accessed, while the latter options relate to the connecting host's identity.
74+
75+
:::
76+
77+
Since Nebula v1.9.0, rules are evaluated as:
78+
`port AND proto AND (ca_sha OR ca_name) AND (host OR group OR groups OR cidr) AND local_cidr`.
79+
80+
Prior to Nebula v1.9.0, rules were evaluated as:
81+
`port AND proto AND (ca_sha OR ca_name) AND (host OR group OR groups OR cidr OR local_cidr)`.
7082

7183
```yml
7284
# Nebula security group configuration
@@ -75,6 +87,8 @@ firewall:
7587
outbound_action: drop
7688
inbound_action: drop
7789
90+
default_local_cidr_any: false # false will become the default in Nebula v1.10.0+
91+
7892
conntrack:
7993
tcp_timeout: 12m
8094
udp_timeout: 3m
@@ -118,6 +132,21 @@ outbound:
118132
At a minimum, it is recommended to enable ICMP so that `ping` can be used to verify connectivity. Additionally, if
119133
enabling the built-in Nebula SSH server, you may wish to grant access over the Nebula network via firewall rules.
120134

135+
## firewall.default_local_cidr_any
136+
137+
<Pill className="mb-24">Default: True</Pill>
138+
139+
This setting was introduced in Nebula v1.9.0 for backwards compatibility purposes. The default will be changed to
140+
`false` in Nebula v1.10.0 and the config option will be deprecated.
141+
142+
When set to `true`, any firewall rules which do not explicitly set `local_cidr` will be interpreted as if they were set
143+
to `any`. In other words, firewall rules which do not explicitly configure `local_cidr` will apply both to ports on the
144+
local machine as well as ports on any hosts accessible via [unsafe_routes](/docs/config/tun/#tununsafe_routes).
145+
146+
When set to `false`, firewall rules which do not explicitly set `local_cidr` will only apply to the local host. To
147+
permit access to machines accessible via unsafe_routes, define a firewall rule which explicitly references those routes
148+
in the `local_cidr` field.
149+
121150
## firewall.conntrack
122151

123152
Settings for the Connection Tracker.

docs/config/sshd.mdx

+34-1
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,12 @@ sshd:
2222
- user: steeeeve
2323
keys:
2424
- '[ssh public key string]'
25+
trusted_cas:
26+
- '[ssh ca public key string]'
2527
```
2628
29+
See also the [Debugging with Nebula SSH commands](/docs/guides/debug-ssh-commands/) guide.
30+
2731
## sshd.enabled
2832
2933
<Pill className="mb-24">Default: False</Pill>
@@ -37,7 +41,28 @@ allowed for your safety.
3741

3842
## sshd.host_key
3943

40-
`host_key` points to a file containing the ssh host private key to use for the ssh server side of the console.
44+
`host_key` points to a file containing the ssh host private key to use for the ssh server side of the console. In the
45+
above example, `/path/to/ssh_host_ed25519_key` contains a PEM-encoded SSH host key. The following example shows a host
46+
key inlined as a YAML multiline string.
47+
48+
```
49+
sshd:
50+
host_key: |
51+
-----BEGIN OPENSSH PRIVATE KEY-----
52+
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
53+
QyNTUxOQAAACCAvcPQI9IPXWXmsCFBi+IGoqxjKcCZjivS2ev7wVLWjAAAAKCzhBSYs4QU
54+
mAAAAAtzc2gtZWQyNTUxOQAAACCAvcPQI9IPXWXmsCFBi+IGoqxjKcCZjivS2ev7wVLWjA
55+
AAAECkLDZ1uXRNpvWTG+tff7MSoy6WCDkNhlwB+I5BpI0zfYC9w9Aj0g9dZeawIUGL4gai
56+
rGMpwJmOK9LZ6/vBUtaMAAAAGmptYWd1aXJlQGpvaG5zLW1icC0zLmxvY2FsAQID
57+
-----END OPENSSH PRIVATE KEY-----
58+
```
59+
60+
:::warning
61+
62+
Do not use the above private key in your own config file. SSH host keys should be unique per host, and provide
63+
authenticity that you are connecting to the correct server.
64+
65+
:::
4166
4267
You can generate a host key using the `ssh-keygen` command line utility.
4368
@@ -47,3 +72,11 @@ You can generate a host key using the `ssh-keygen` command line utility.
4772
4873
These options are how you create `users` for the debug ssh daemon. Password authentication for the ssh debug console is
4974
NOT supported.
75+
76+
# sshd.trusted_cas
77+
78+
As an alternative to (or in addition to) `authorized_users`, you may define a list of trusted SSH CA public keys. Any
79+
SSH certificate signed by a trusted CA will be granted access to the SSH debug server.
80+
81+
If an SSH certificate contains at least one principal, the connecting username must match a principal in the
82+
certificate. If no principals are specified in the certificate, any username can be used.

docs/config/tun.mdx

+2
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,8 @@ tun:
9696
install: true # controls whether this route is installed in the systems routing table.
9797
```
9898

99+
For more information, see the [Extend network access beyond overlay hosts](/docs/guides/unsafe_routes/) guide.
100+
99101
## tun.use_system_route_table
100102

101103
<Pill className="mb-24">Default: False</Pill>

docs/guides/debug-ssh-commands/index.mdx

+1
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ Available commands:
5555
change-remote - Changes the remote address used in the tunnel for the provided vpn ip
5656
close-tunnel - Closes a tunnel for the provided vpn ip
5757
create-tunnel - Creates a tunnel for the provided vpn ip and address
58+
device-info - Prints information about the network device.
5859
help - prints available commands or help <command> for specific usage info
5960
list-hostmap - List all known previously connected hosts
6061
list-lighthouse-addrmap - List all lighthouse map entries

0 commit comments

Comments
 (0)