实用指南:使用 Teleport + Tailscale 实现 GPU 集群访问控制与审计

💡 原文英文,约1400词,阅读约需5分钟。
📝

内容提要

本文介绍使用 Teleport 与 Tailscale 管理 GPU 集群远程访问。Teleport 多路复用仅暴露 3080 端口;隔离网络需在 repo 文件配置代理;Nginx 反向代理须使用 HTTPS 并处理 WebSocket;Docker 端口经 DOCKER-USER 链,需限制来源;Nginx 应指向 127.0.0.1 以避免循环依赖;通过 RBAC 分离权限,供应商仅使用 Web 终端且无法查看审计记录。

🔎

延伸解读

端口收敛与多路复用

Teleport 默认使用 3022-3080 端口范围,在引入 Nginx、Docker 和云防火墙后管理复杂。通过配置 proxy_listener_mode: multiplex,HTTPS、SSH 和隧道流量可共享 3080 端口,利用 ALPN 区分流量类型。这减少了对外暴露的端口数量,简化了防火墙规则,但需确保所有客户端支持 ALPN。

Docker 端口与防火墙链

Docker 发布的端口会绕过 INPUT 链,直接进入 DOCKER-USER 链,导致在 INPUT 链中设置的规则无效。必须使用 iptables 在 DOCKER-USER 链中限制来源,例如仅允许 127.0.0.1 和 Tailscale 网段(100.64.0.0/10)访问 3080 端口,并丢弃其他流量。操作前备份规则,避免使用 -F 清空链。

Nginx 反向代理的注意事项

代理 Teleport Web 终端时,proxy_pass 必须使用 https 协议,并配置 WebSocket 升级头(Upgrade 和 Connection),否则终端会立即断开。同时,上游应指向 127.0.0.1 而非 Tailscale VPN IP,以避免 VPN 故障导致管理页面不可用,形成循环依赖。

权限分离与审计限制

通过 RBAC 将供应商限制为仅使用 Web 终端,并移除其角色的审计权限,使其无法查看会话记录和日志页面。但需注意,移除审计权限仅改变可见性,不保证所有录制提示消失,具体行为取决于 Teleport 版本和配置,应自行测试。此外,供应商不应获得 Tailscale 访问权限,并通过节点标签限制其可见节点和登录用户。

❓

Q&A

Teleport 如何通过端口多路复用简化 GPU 集群的访问控制?

Teleport 默认使用 3022-3080 端口范围,通过配置 proxy_listener_mode: multiplex 启用多路复用,让 HTTPS、SSH 和隧道流量共享 3080 端口,利用 ALPN 区分流量类型,从而只需对外暴露一个端口,简化防火墙和反向代理配置。

在隔离网络中安装 Teleport Agent 时,为什么系统代理不生效?如何解决?

因为包管理器(如 yum/dnf)可能不读取系统代理设置,导致证书错误。解决方法是在 repo 文件中显式配置代理,例如在 /etc/yum.repos.d/teleport.repo 中添加 proxy=http://[Bastion_VIP]:8888。

Nginx 反向代理 Teleport Web 终端时,终端立即断开应如何配置?

需要确保 proxy_pass 使用 https(如 https://127.0.0.1:3080),并设置 proxy_http_version 1.1、Upgrade 和 Connection 头以支持 WebSocket,同时可关闭 SSL 验证(proxy_ssl_verify off)以适配自签名证书。

Docker 映射端口如何绕过 INPUT 链?如何正确限制访问?

Docker 发布的端口流量经过 DOCKER-USER 链而非 INPUT 链,因此需在 DOCKER-USER 链中设置规则。例如允许 127.0.0.1 和 Tailscale 网段(100.64.0.0/10)访问 3080 端口,最后 DROP 其他流量。注意操作前备份规则,避免使用 -F 清空链。

为什么 Nginx 不应指向 Tailscale VPN IP?应该指向哪里?

指向 VPN IP 会导致循环依赖:如果 VPN 故障,管理页面也会不可用。应改为指向 127.0.0.1,这样即使 Tailscale 宕机,公网管理入口仍可访问,便于修复 Tailscale。

如何通过 RBAC 实现供应商权限分离与审计隐藏?

为供应商创建受限角色,仅允许通过 Web 终端访问,并移除其审计权限,使其无法查看会话录制和日志页面。同时通过节点标签(如 vendor: vendor-x)限制可见节点和登录用户,并禁止 root 登录。注意移除审计权限仅改变可见性,不保证所有录制提示消失,需根据版本测试。

🏷️

标签

➡️

继续阅读