mirror of
https://github.com/netbirdio/docs.git
synced 2026-10-26 14:39:04 +01:00
Document daemon IPC privilege requirements and the Windows named pipe (#894)
This commit is contained in:
@@ -35,13 +35,20 @@ unix:///var/run/netbird-http.sock
|
||||
```
|
||||
|
||||
<Warning>
|
||||
**Security warning:** On supported Linux installations, the default Unix
|
||||
socket allows read and write access for local users. The API exposes control
|
||||
operations as well as status. If you require local-user isolation, place a
|
||||
custom socket inside a restricted directory and ensure that the directory is
|
||||
recreated securely at boot.
|
||||
**Security warning:** The default Unix socket allows read and write access for
|
||||
local users. The API exposes control operations as well as status. If you
|
||||
require local-user isolation, place a custom socket inside a restricted
|
||||
directory and ensure that the directory is recreated securely at boot.
|
||||
</Warning>
|
||||
|
||||
The gateway runs inside the daemon and re-dials it locally, so it reads the identity
|
||||
of its own HTTP client and forwards it, which is what lets the daemon authorize the
|
||||
request as that user rather than as the daemon itself. The
|
||||
[privileged operations](/client/grpc-socket#privileged-operations) therefore behave
|
||||
the same over HTTP as over gRPC, and a refusal comes back as HTTP 403 with the same
|
||||
`PRIVILEGE_REQUIRED` detail. Metadata headers reserved for that forwarding are
|
||||
dropped when a client supplies them.
|
||||
|
||||
To enable it on an existing installation, reconfigure the service:
|
||||
|
||||
<Warning>
|
||||
@@ -95,6 +102,11 @@ sudo netbird service reconfigure \
|
||||
listeners bound to a trusted interface such as `127.0.0.1` and do not expose
|
||||
them to an untrusted network. The API includes operations that can read or
|
||||
change the local NetBird daemon's state.
|
||||
|
||||
A TCP connection carries no caller identity, so the gateway cannot tell who is
|
||||
calling and every
|
||||
[privileged operation](/client/grpc-socket#privileged-operations) is refused on
|
||||
such a socket, whoever runs the client.
|
||||
</Warning>
|
||||
|
||||
To disable the gateway again, run:
|
||||
@@ -241,6 +253,15 @@ If you supplied `--json-socket` without `--enable-json-socket`, NetBird rejects
|
||||
|
||||
Verify that the process running the integration can access the socket and every parent directory in its path. A custom restricted directory can prevent access even when the socket itself allows it.
|
||||
|
||||
### A Request Is Refused With 403
|
||||
|
||||
The operation is one of the
|
||||
[privileged operations](/client/grpc-socket#privileged-operations) and the HTTP
|
||||
client is not root, or not an administrator on Windows. The response body carries a
|
||||
`PRIVILEGE_REQUIRED` detail in domain `daemon.netbird.io`, with a summary and the
|
||||
command that performs the same operation with the privileges it needs. On a TCP
|
||||
gateway socket these operations are always refused.
|
||||
|
||||
### A TCP Request Cannot Connect
|
||||
|
||||
Confirm that the host and port in the request match the value passed to `--json-socket`. Prefer `127.0.0.1` over `0.0.0.0` unless remote access is explicitly required and protected by an additional security boundary.
|
||||
|
||||
Reference in New Issue
Block a user