Tailscale ACLs as you see fit. I've gone with a setup like this:
// Example ACLs for mkinitcpio-tailscale and ZFSBootMenu
{
"tagOwners": {
"tag:zfsbootmenu": ["autogroup:admin"],
"tag:server": ["autogroup:admin"],
"tag:local": ["autogroup:admin"],
},
"acls": [
{"action": "accept", "src": ["tag:local"], "dst": ["*:*"]},
{"action": "accept", "src": ["tag:server"], "dst": ["tag:server:*"]},
],
}
Because there is no listed ACL with tag:zfsbootmenu
in the src
field, it cannot initiate any connections to other parts of the Tailnet.
Then, generate an auth key and save it somewhere like /tmp/mk-ts-authkey
. I recommend creating the key as not reusable, 1 day expiration, not ephemeral, and tagged with the relevant ACL tag.
Next, install mkinitcpio-tailscale (it's packaged for Void Linux and maybe other distros) and use the provided script to authenticate to Tailscale:
# mkinitcpio-tailscale-setup -k /tmp/mk-ts-authkey
Once it runs successfully, you should see something like this in the Tailscale admin console:
Add the hook to the HOOKS
array (HOOKS+=(tailscale)
) in /etc/zfsbootmenu/mkinitcpio.conf
after any network setup hooks and run generate-zbm
to regenerate the ZFSBootMenu image with Tailscale support.
You should now be able to reboot and ssh into ZFSBootMenu using the Tailscale IP or hostname.