tailscaleで管理者とユーザーを分離する

ラズパイ5のluantiサーバーの管理者とユーザーは少なくとも別のメールアカウントにしないと、サーバー含めた管理者エリアへのアクセスができてしまうので現実運用に即した多少のアップデート

つまり管理者エリアとユーザエリアはメールアカウントを別にして、ユーザアカウントの管理画面には最悪アクセスできても管理者エリアの管理画面へのアクセスは禁止する設定

ユーザデバイスは以下のuser@gmail.com(仮想のアドレスです)の配下に登録、管理者デバイスはadmin@gmail.comの配下に登録します

	"groups": {
		"group:admin":   ["admin@gmail.com"],
		"group:players": ["admin@gmail.com", "user@gmail.com"],
	},
	// Define the tags which can be applied to devices and by which users.
	// "tagOwners": {
	//  	"tag:example": ["autogroup:admin"],
	// },
	"tagOwners": {
		"tag:luanti-server": ["group:admin"],
	},
	// Define grants that govern access for users, groups, autogroups, tags,
	// Tailscale IP addresses, and subnet ranges.

	"acls": [
		{
			"action": "accept",
			"src":    ["group:players"],
			"dst": [
				"tag:luanti-server:30000-30010",
				"tag:luanti-server:22",
        "tag:luanti-server:5900",
				"tag:luanti-server:5901",
			],
		},
	],

user@gmail.com側のドメインではACL設定はできないので、user@gmail.com側の相互ユーザ分離はできないですが、それは通常のWi-Fi環境下と大差はないだろうから現実的運用では、管理者エリアとユーザエリアを分離だけでも相当にセキュアだろうと思う

P.S. 2026/2/21

"tag:luanti-server:5900",
"tag:luanti-server:5901",

5900 portも通過許容に変更、そうしないとVNCがtailscale経由では通らない

 

P.S. 2026/2/23

tailscaleの管理者機能で、

tailscaleのアカウント切り替えは、一台のクライアントで登録は一個だけに限定されるからログアウトして再登録する必要がある、VMwareで例えばLinux動かしとけば、実質二台のPCとして使えるから2個のtailscaleアカウントを一台で持つことができる

 

admin

 

tailscaleのセキュリティ設定

tailscale自体はtailnet以外からのアクセスに対しては強固ですが、前の記事で述べた通りいくつか考慮すべきポイントがあります

その中でもクライアント同士(特にユーザクライアントから管理クライアント)でアクセスできてしまうというのは避けなければいけない項目でしょう

そのための設定がACLです、tailscaleの管理画面で、”Access controls”のjsonファイルに以下のように書き込んで、クライアントからサーバーへのアクセスだけ許可します、ここで許可した以外は全部deny扱いなのでクライアント間は完全分離です

	"groups": {
		"group:admin":   ["user@gmail.com"],
		"group:players": ["user@gmail.com"],
	},
	// Define the tags which can be applied to devices and by which users.
	// "tagOwners": {
	//  	"tag:example": ["autogroup:admin"],
	// },
	"tagOwners": {
		"tag:luanti-server": ["group:admin"],
	},
	// Define grants that govern access for users, groups, autogroups, tags,
	// Tailscale IP addresses, and subnet ranges.
	"acls": [
		{
			"action": "accept",
			"src":    ["group:players"],
			"dst": [
				"tag:luanti-server:30000-30010",
				"tag:luanti-server:22",
				"tag:luanti-server:5901",
			],
		},
	],

jsonファイルを編集してセーブすると、Machinesの選択メニューでEdit ACL tagsが現れて、これを選択するとデバイスにタグ付できます

タグ付すると、

のようにmachinesのデバイス名の下にtag表示されるようになりますから、このタグがACL設定の"tag:luanti-server": ["group:admin"]と合致してアクセス(フロー)制御が実行できます

ラズパイ5のufw設定(使うポートだけ許可する)と、unattended-upgradesを使った自動セキュリティアップデートも追加しておきます

tailscaleのfree版だとアクセスの権限制限設定できないけれども、身内の運用ならばあえて管理画面のことは伝えずに運用だね

 

admin