Teleport 访问管理平台部署
Teleport 是由 Gravitational 开发的开源基础设施访问管理平台,提供了零信任安全模型下的 SSH、Kubernetes、数据库和 Web 应用访问管理。Teleport 自动颁发短期证书代替传统密码和密钥,所有访问都有完整的审计日志和会话录制。在搬瓦工 VPS 上部署 Teleport 可以构建一个安全的服务器访问入口,统一管理多台服务器的访问权限。
一、系统要求
- 操作系统:Ubuntu 20.04+(推荐 Ubuntu 22.04)。
- 内存:至少 2GB,推荐 4GB。
- 磁盘:至少 20GB 可用空间(用于审计日志和会话录制)。
- 域名:需要一个域名并配置 DNS 解析。
二、安装 Teleport
2.1 添加官方仓库
apt update && apt upgrade -y
curl https://goteleport.com/static/install.sh | bash -s
验证安装:
teleport version
2.2 手动安装(可选)
wget https://cdn.teleport.dev/teleport-v16-linux-amd64-bin.tar.gz
tar -xzf teleport-v16-linux-amd64-bin.tar.gz
cd teleport
./install
三、配置 Teleport
3.1 生成配置文件
teleport configure --cluster-name=teleport.your-domain.com \
--public-addr=teleport.your-domain.com:443 \
--acme --acme-email=admin@your-domain.com \
-o /etc/teleport.yaml
--acme 参数会自动通过 Let's Encrypt 获取 SSL 证书。
3.2 编辑配置文件
cat > /etc/teleport.yaml <<'EOF'
version: v3
teleport:
nodename: teleport-server
data_dir: /var/lib/teleport
log:
output: /var/log/teleport.log
severity: INFO
auth_service:
enabled: true
cluster_name: teleport.your-domain.com
listen_addr: 0.0.0.0:3025
tokens:
- "node:your-secure-join-token-here"
ssh_service:
enabled: true
labels:
env: production
role: master
proxy_service:
enabled: true
web_listen_addr: 0.0.0.0:443
public_addr: teleport.your-domain.com:443
https_keypairs: []
acme:
enabled: true
email: admin@your-domain.com
EOF
四、启动 Teleport
systemctl enable teleport
systemctl start teleport
systemctl status teleport
4.1 创建管理员用户
tctl users add admin --roles=editor,access --logins=root,ubuntu
此命令会输出一个注册链接,在浏览器中打开该链接,设置密码和双因素认证(支持 TOTP 或 WebAuthn)。
五、Web 界面使用
在浏览器中访问 https://teleport.your-domain.com,使用创建的管理员账号登录。Web 界面提供了以下功能:
- 服务器列表:查看所有已注册的服务器节点。
- Web 终端:直接在浏览器中打开 SSH 终端。
- 会话管理:查看和加入活跃的 SSH 会话。
- 审计日志:查看所有访问记录和操作日志。
- 用户管理:管理用户账号和访问权限。
六、添加节点
在其他搬瓦工 VPS 上安装 Teleport 并作为节点加入集群:
# 在新节点上安装 Teleport
curl https://goteleport.com/static/install.sh | bash -s
# 生成节点配置
cat > /etc/teleport.yaml <<'EOF'
version: v3
teleport:
nodename: node-01
data_dir: /var/lib/teleport
auth_token: your-secure-join-token-here
auth_servers:
- teleport.your-domain.com:443
ssh_service:
enabled: true
labels:
env: production
role: worker
proxy_service:
enabled: false
auth_service:
enabled: false
EOF
systemctl enable teleport
systemctl start teleport
七、使用 tsh 客户端
tsh 是 Teleport 的命令行客户端,可以在本地机器上使用:
# 登录 Teleport 集群
tsh login --proxy=teleport.your-domain.com:443 --user=admin
# 查看可用服务器
tsh ls
# SSH 连接到服务器
tsh ssh root@node-01
# 安全复制文件
tsh scp file.txt root@node-01:/tmp/
八、角色和权限管理
# 创建只读角色
cat > readonly-role.yaml <<'EOF'
kind: role
version: v7
metadata:
name: readonly
spec:
allow:
logins: ['ubuntu']
node_labels:
env: 'production'
rules:
- resources: ['session']
verbs: ['list', 'read']
options:
max_session_ttl: 8h
EOF
tctl create readonly-role.yaml
# 创建用户并分配角色
tctl users add viewer --roles=readonly --logins=ubuntu
九、会话录制与回放
Teleport 默认录制所有 SSH 会话,通过 Web 界面可以回放历史会话:
# 查看审计日志
tctl audit ls
# 导出会话录制
tctl audit export --format=json > audit.json
十、常见问题
证书获取失败
确保域名 DNS 已正确解析到 VPS IP,并且 443 端口未被其他服务占用:
ufw allow 443/tcp
ufw allow 3025/tcp
节点无法加入集群
检查 auth_token 是否正确,以及 auth_servers 地址是否可达。
总结
Teleport 是企业级的基础设施访问管理平台,提供了零信任安全模型下的统一访问入口。在搬瓦工 VPS 上部署 Teleport 可以安全地管理多台服务器的访问权限,并拥有完整的审计和录制功能。建议选择 2GB 以上内存的方案。选购搬瓦工 VPS 请参考 全部方案,购买时使用优惠码 NODESEEK2026 可享受 6.77% 折扣。