fix(headscale): restrict admin ports to an admin group and tagged nodes; client PCs reach web:443 only #246
Loading…
Reference in a new issue
No description provided.
Delete branch "jfraeys/fix/headscale-acl-admin-group"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why: eight ACL rules used src '*'. Any user who can pass Authelia (the Headscale OIDC client's authorization_policy is one_factor) could enroll a device and reach SSH on both hosts, the LLDAP admin page, Alertmanager's UI (no login of its own), Forgejo git-SSH and web port, and the CI cache. docs/runbooks/onboard-client-user.md said non-infra nodes get 443 only. This matters now because the coaching site's multi-instance admin panel brings client and client-admin users onto the tailnet.
Change
Checked: test_headscale_acl.py (5 cases; two fail if a wildcard is put back); 'headscale policy check' on the live server says valid; Headscale users on the live server: jfraeys (id 2, oidc, one device = the operator's Mac) and infra.
Not checked: that the policy gives the operator's Mac the admin ports after deploy. That needs the deploy; see below.
Deploy and verify (headscale tag restarts the container briefly; existing tunnels keep running):
Follow-up PR: limit the Headscale OIDC login itself to the groups that should have devices.
🤖 Generated with Claude Code
https://claude.ai/code/session_01Ge5tovcwdEUBtPwUktsZZZ