From 24ba586d0a91af676c7c3e239513e262b371935d Mon Sep 17 00:00:00 2001 From: John Bowdre Date: Sun, 28 Jul 2024 15:16:15 -0500 Subject: [PATCH] new draft: taking-taildrive-testdrive --- .../taking-taildrive-testdrive/files-tags.png | Bin 0 -> 52562 bytes .../posts/taking-taildrive-testdrive/index.md | 192 ++++++++++++++++++ 2 files changed, 192 insertions(+) create mode 100644 content/posts/taking-taildrive-testdrive/files-tags.png create mode 100644 content/posts/taking-taildrive-testdrive/index.md diff --git a/content/posts/taking-taildrive-testdrive/files-tags.png b/content/posts/taking-taildrive-testdrive/files-tags.png new file mode 100644 index 0000000000000000000000000000000000000000..9e9d534a20d57a7808a7a4b716ebeb215469736b GIT binary patch literal 52562 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 Share a directory with your tailnet +> +> USAGE +> `tailscale drive share ` +> `tailscale drive rename ` +> `tailscale drive unshare ` +> `tailscale drive list` +> +> Taildrive allows you to share directories with other machines on your tailnet. + +That sounded kind of neat - especially once I found the corresponding [Taildrive documentation](https://tailscale.com/kb/1369/taildrive) and started to get a better understanding of how this new(ish) feature works: + +> Normally, maintaining a file server requires you to manage credentials and access rules separately from the connectivity layer. Taildrive offers a file server that unifies connectivity and access controls, allowing you to share directories directly from the Tailscale client. You can then use your tailnet policy file to define which members of your tailnet can access a particular shared directory, and even define specific read and write permissions. +> +> Beginning in version 1.64.0, the Tailscale client includes a WebDAV server that runs on `100.100.100.100:8080` while Tailscale is connected. Every directory that you share receives a globally-unique path consisting of the tailnet, the machine name, and the share name: `/tailnet/machine/share`. +> +> For example, if you shared a directory with the share name `docs` from the machine `mylaptop` on the tailnet `mydomain.com`, the share's path would be `/mydomain.com/mylaptop/docs`. + +Oh yeah. That will be a huge simplification for how I share files within my tailnet. + +I've finally had a chance to get this implemented and am pretty pleased with the results so far. Here's how I did it. + +### ACL Changes +My Tailscale policy relies heavily on [ACL tags](https://tailscale.com/kb/1068/acl-tags) to manage access between systems, and especially for server nodes which don't typically have a user logging on to them directly. I don't necessarily want every system to be able to export a file share so I decided to control that capability with a new `tag:share` flag. Before I can use that tag, though, I need to [add it to the ACL](https://tailscale.com/kb/1068/acl-tags#define-a-tag): + +```json +{ + "groups": { + "group:admins": ["user@example.com"], + }, + "tagOwners": { + "tag:share": ["group:admins"], + }, + {...}, +} +``` + +Next I needed to add the appropriate [node attributes](https://tailscale.com/kb/1337/acl-syntax#nodeattrs) to enable Taildrive: + +```json +{ + "nodeAttrs": { + { + // devices with the share tag can share files with Taildrive + "target": ["tag:share"], + "attr": ["drive:share"], + }, + { + // all devices can access shares + "target": ["*"], + "attr": ["drive:access"], + }, + }, + {...}, +} +``` + +And I created a pair of [Grants](https://tailscale.com/kb/1324/acl-grants) to give logged-in users read-write access and tagged devices read-only access: + +```json +{ + "grants":[ + { + // users get read-write access to shares + "src": ["autogroup:member"], + "dst": ["tag:share"], + "app": { + "tailscale.com/cap/drive": [{ + "shares": ["*"], + "access": "rw" + }] + } + }, + { + // tagged devices get read-only access + "src": ["autogroup:tagged"], + "dst": ["tag:share"], + "app": { + "tailscale.com/cap/drive": [{ + "shares": ["*"], + "access": "ro" + }] + } + } + ], + {...}, +} +``` + +Then I just used the Tailscale admin portal to add the new `tag:share` tag to my existing `files` node: + +![The files node tagged with `tag:internal`, `tag:salt-minion`, and `tag:share`](files-tags.png) + +### Exporting the Share +After making the required ACL changes, actually publishing the share was very straightforward. Per the [`tailscale drive --help` output](https://paste.jbowdre.lol/tailscale-drive), the syntax is: + +```shell +tailscale drive share # [tl! .cmd] +``` + +I (somewhat-confusingly) wanted to share a share named `share`, found at `/home/john/share`... so I used this to export it: + +```shell +tailscale drive share share /home/john/share # [tl! .cmd] +``` + +And I could verify that `share` had, in fact, been shared with: + +```shell +tailscale drive list # [tl! .cmd] +name path as # [tl! .nocopy:2] +----- ---------------- ---- +share /home/john/share john +``` + +### Mounting the Share +In order to mount the share from the Debian environment on my Chromebook, I first needed to install the `davfs2` package to add support for mounting WebDAV shares: + +```shell +sudo apt update # [tl! .cmd:1] +sudo apt install davfs2 +``` + +I then added my user to the `davfs2` group so that I could mount WebDAV shares without needing `sudo` access: + +```shell +sudo usermod -aG davfs2 $USER # [tl! .cmd] +``` + +And used `newgrp` to activate that membership without needing to log out and back in again: + +```shell +newgrp davfs2 # [tl! .cmd] +``` + +I also created a folder inside my home directory to use as a mountpoint: + +```shell +mkdir ~/taildrive # [tl! .cmd] +``` + +I knew from the [Taildrive docs](https://tailscale.com/kb/1369/taildrive) that the WebDAV server would be running at `http://100.100.100.100:8080` and the share would be available at `///`, so I added the following to my `/etc/fstab`: + +```txt + http://100.100.100.100:8080/example.com/files/share /home/john/taildrive/ davfs user,rw,noauto 0 0 +``` + +Then I ran `sudo systemctl daemon-reload` to make sure the system knew about the changes to the fstab. + +And to avoid being prompted for (unnecessary) credentials when attempting to mount the taildrive, I added this to the bottom of `~/.davfs2/secrets`: + +```txt +/home/john/taildrive john "" +``` + +After that, I could mount the share like so: + +```shell +mount ~/taildrive # [tl! .cmd] +``` + +And verify that I could see the files being shared from `share` on `files`: + +```shell +ls -l ~/taildrive # [tl! .cmd] +drwxr-xr-x - john 15 Feb 09:20 books # [tl! .nocopy:5] +drwxr-xr-x - john 22 Oct 2023 dist +drwx------ - john 28 Jul 15:10 lost+found +drwxr-xr-x - john 22 Nov 2023 media +drwxr-xr-x - john 16 Feb 2023 notes +.rw-r--r-- 18 john 10 Jan 2023 status +``` + +Neat, right? \ No newline at end of file