[Bug] Default ACLs differ from headscale #1059

Closed
opened 2025-12-29 02:28:00 +01:00 by adam · 1 comment
Owner

Originally created by @mpldr on GitHub (Jul 6, 2025).

Is this a support request?

  • This is not a support request

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

Currently, when setting empty ACLs ({}), a deny-all default policy is applied. This is the exact opposite of Tailscale (see documentation). Being unable to verify through the docs, issues, or commits whether or not this is intentional, I decided to file an issue in case it is not, and to document it, in case it is.

Expected Behavior

Headscale mirrors Tailscale's default behaviour.

Steps To Reproduce

  1. clear ACLs
  2. ping any host
  3. apply allow-all ACL
  4. ping any host

Environment

- OS: Linux
- Headscale version: 0.26.1
- Tailscale version: 1.84.0

Runtime environment

  • Headscale is behind a (reverse) proxy
  • Headscale runs in a container

Debug information

Image
Originally created by @mpldr on GitHub (Jul 6, 2025). ### Is this a support request? - [x] This is not a support request ### Is there an existing issue for this? - [x] I have searched the existing issues ### Current Behavior Currently, when setting empty ACLs (`{}`), a deny-all default policy is applied. This is the exact opposite of Tailscale (see [documentation](https://tailscale.com/kb/1192/acl-samples#allow-all-default-acl)). Being unable to verify through the docs, issues, or commits whether or not this is intentional, I decided to file an issue in case it is not, and to document it, in case it is. ### Expected Behavior Headscale mirrors Tailscale's default behaviour. ### Steps To Reproduce 1. clear ACLs 2. ping any host 3. apply allow-all ACL 4. ping any host ### Environment ```markdown - OS: Linux - Headscale version: 0.26.1 - Tailscale version: 1.84.0 ``` ### Runtime environment - [x] Headscale is behind a (reverse) proxy - [x] Headscale runs in a container ### Debug information <img width="768" height="137" alt="Image" src="https://github.com/user-attachments/assets/1568e23a-c20a-48a7-970a-68dec065563b" />
adam added the bugtailscale-feature-gapno-stale-bot labels 2025-12-29 02:28:00 +01:00
adam closed this issue 2025-12-29 02:28:00 +01:00
Author
Owner

@afonsofrancof commented on GitHub (Aug 14, 2025):

I have this problem as well.
This means that I can't point to any ACL file (or have it in database mode), as it can't be empty (needs to have at least the root object), so it applies a deny all rule.
The only way it works for me is to have it in "file" mode, but with an empty file path.

@afonsofrancof commented on GitHub (Aug 14, 2025): I have this problem as well. This means that I can't point to any ACL file (or have it in database mode), as it can't be empty (needs to have at least the root object), so it applies a deny all rule. The only way it works for me is to have it in "file" mode, but with an empty file path.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/headscale#1059