
[!NOTE] 很多小伙伴在使用 Tailscale 组网时,都直接保留了官方默认的“全通”访问控制规则,认为只要设备加入了 Tailnet 就是安全的。然而,如果您的某台轻量云服务器被侵入,或者某台临时测试电脑被控制,黑客就能以其为跳板,直接访问您家里的群晖 NAS、私有云甚至核心台式机。今天老周手把手教大家配置 Tailscale 的 ACL(访问控制列表)策略,通过给设备打上 Tag(标签),实现按最小权限原则进行物理隔离与零信任安全隔离!本教程仅用于个人多设备互联与合规的远程办公场景。
亲爱的读者,欢迎回到 老周的AI进化实验室!
在日常搭建私有组网时,大多数人都图省事,设备拉进网就完事了。大家觉得:“这都是我自己的设备,肯定没问题。”
但这种“全信任”模式,在网络安全中是极具隐患的,行业内称之为“扁平化内网”。
举个例子:许多小伙伴会买一台便宜的云主机做自建 DERP 中继,或者在云上跑一些公开的 Web 测试服务。这些云主机常年面对外网的端口扫描与暴力破解,是极易被攻破的节点。如果您的云主机被拿下,而您的 Tailscale 策略又是全通的,黑客就可以顺藤摸瓜,直接访问您家里那台放满了私人照片与重要文件的 NAS!
要解决这个隐患,我们必须配置 Tailscale ACL 策略,将传统的“全信任网格”改造成“零信任私有网络”。
今天,老周就手把手带大家学会编写一套严密的安全隔离规则。
ACL(Access Control List) 是 Tailscale 的核心安全机制。默认情况下,Tailscale 控制台中的 ACL 策略是一条最简规则:
// 默认规则:允许所有设备(Autogroup:members)访问所有设备(*){"action":"accept","src":["autogroup:member"],"dst":["*:*"]}我们要做的,就是删除这条危险的“全通规则”,建立一套按需访问、最小特权的规则。在 Tailscale 中,我们不需要使用死板的 IP 地址来写规则,而是使用更高级的 Tag(标签) 来对设备分组管理。
在编写规则前,老周建议将您加入 Tailnet 的设备划分为以下几个角色,并打上对应的 Tag:
tag:admin:管理员终端(如您的工作 MacBook、随身手机),拥有最高权限,可以访问所有服务。tag:server:受保护的内部服务(如家里的群晖 NAS、私有数据库、局域网打印机),仅允许管理员访问。tag:public-vps:暴露在公网的轻量云服务器(如部署了公开 Web 网页、RustDesk、DERP 的云主机),属于低安全域设备。这些设备被严格禁止主动发起访问其他设备的连接。登录您的 Tailscale 后台控制面板,导航到 Access Control (访问控制) 页面,清空原配置并粘贴以下经过老周精心设计的安全策略配置文件:
{// 1. 定义我们的角色标签所有者(只有管理员能给设备打上这些 Tag)"tagOwners":{"tag:admin":["autogroup:admin"],"tag:server":["autogroup:admin"],"tag:public-vps":["autogroup:admin"],},// 2. 核心访问控制规则列表"acls":[// 规则 A:允许管理员(tag:admin)访问所有设备上的所有端口(最高权限){"action":"accept","src":["tag:admin"],"dst":["*:*"]},// 规则 B:允许局域网内部服务(tag:server)之间互相通信(如群晖备份到另一台服务器){"action":"accept","src":["tag:server"],"dst":["tag:server:*"]},// 规则 C:云服务器(tag:public-vps)只能被管理员访问,自身绝不能发起对内网的连接// (注意:这里不需要写 accept,在默认拒绝原则下,不写即代表 public-vps 无法连接任何内网设备)],// 3. (可选)为 SSH 登录配置独立的身份验证策略"ssh":[{"action":"accept","src":["tag:admin"],"dst":["tag:server"],"users":["autogroup:nonroot","root"]}]}tag:admin)依然可以自由地 SSH 登录云主机,或访问家里的群晖 NAS 管理网页。tag:public-vps),他会发现这台云服务器无法 Ping 通,也无法访问您的 NAS、路由器或局域网内的任何一台设备。安全边界被严密地阻断在云主机内部。保存好配置文件后,我们需要在控制台手动为每台机器分配标签:
... -> 选择 Edit ACL tags。
tag:server 并保存。
tag:public-vps。您的工作电脑,勾选 tag:admin。
配置完成后,我们可以在终端中进行简单的连线性验证: * 在您的 MacBook(tag:admin)上:尝试 Ping 您的群晖 NAS,会发现通信顺畅,延迟极低。 * 登录您的云服务器(tag:public-vps)终端:尝试运行 ping <您的群晖NAS内网IP>,系统会直接返回丢包或连接被拒绝。
这表明我们的安全隔离策略已经完美生效,您的私有网格已经升级为具备“零信任安全防线”的高安全局域网!
Tailscale ACL 是网络安全建设中必不可少的硬核拼图。通过简单的 Tag 划分和最小权限配置,我们只放行必要的网络流向,将高风险节点死死锁在隔离沙盒内,彻底终结了“一处设备沦陷,整网照片裸奔”的安全灾难。
如果您在配置 ACL JSON 语法或标签关联时遇到报错,欢迎在留言区给老周留言,我们一起探讨解决!
[!TIP] 觉得本期教程实用?别忘了点击“关注”老周的AI进化实验室,并把文章分享给身边同样饱受远控限速折扰的极客朋友们!