Skip to content

附录 H:堡垒机架构与选型指引

第 26 章用 webterm_demo 演示了堡垒机的核心骨架(PTY over WebSocket + 会话录制 + 审计)。 本附录补充:一个生产级堡垒机的完整架构、关键技术选型,以及自研与选用现成方案的权衡。

H.1 堡垒机要解决的四件事

堡垒机(跳板机 / 特权访问管理 PAM)的价值可以归纳为「4A」:

A含义技术落点
Authentication 认证统一登录,支持 2FA/SSO第 17、23 章:JWT + TOTP;企业接 LDAP/OIDC
Authorization 授权谁能连哪台、用什么账号、能执行什么第 23 章:RBAC/资源级授权
Audit 审计全程录制、可回放、可追责第 26 章:会话录制 + 操作日志
Accounting 账号目标机凭据托管、定期轮换、用完回收第 20 章:凭据加密存储 + 轮换

webterm_demo 覆盖了认证与审计骨架,授权可接第 23 章,账号托管可接第 20 章——堡垒机本质是本书多个模块的组合应用

H.2 生产架构

text
运维 ──浏览器/SSH 客户端──▶ 堡垒机
                              ├─ 认证层:登录 + 2FA + SSO
                              ├─ 授权层:这次访问允许吗?(人 × 目标 × 账号 × 时间窗)
                              ├─ 代理层:SSH/RDP/数据库协议代理到目标机
                              │           (凭据从保险库取,运维看不到目标机密码)
                              ├─ 录制层:全程 I/O 录像 + 命令解析
                              └─ 管控层:实时监控、危险命令阻断、一键掐断会话
                              目标服务器(运维从不直接接触其凭据)

关键设计原则:

  • 凭据不落地到人:运维登录堡垒机,堡垒机从保险库(第 20 章加密存储)取目标机凭据去连,运维全程看不到目标机的密码/密钥。离职、轮岗只需在堡垒机回收权限,不必改目标机密码。
  • 旁路无法绕过:目标机应配置成只接受来自堡垒机的连接(网络策略/安全组),否则运维绕过堡垒机直连就前功尽弃。
  • 协议感知:能解析 SSH/RDP/数据库协议,才能做命令级审计与阻断(而不只是录一段黑屏视频)。

H.3 Rust 技术选型

自研堡垒机时,各层的 Rust 生态:

能力crate说明
SSH 服务端/客户端russh纯 Rust SSH 2.0,做 SSH 代理的核心
PTYportable-pty第 26 章已用,本地 shell / 桥接
Web 终端前端xterm.js(前端)浏览器里的成熟终端组件
WebSocketaxum(ws)第 24 章,浏览器 ⇄ 堡垒机
凭据加密aes-gcm + KMS第 20 章
录像存储对象存储 + 哈希链WORM、加密、防篡改

H.4 自研 vs 选用现成

先考虑现成方案。堡垒机是成熟品类,自研成本高、安全责任重:

  • 开源:Apache Guacamole(无客户端远程桌面网关)、Teleport(现代化、支持 SSH/K8s/DB,Go 编写)、JumpServer(国内广泛使用)
  • 商业:各云厂商的堡垒机 / 特权访问管理(PAM)产品

什么时候值得自研或深度定制:已有平台要把「访问 + 审计」深度嵌进自己的业务和权限体系(比如本书假想的资产管理 SaaS,要让堡垒会话和资产、租户、子账号权限打通),或有特殊合规/信创要求。即便如此,也建议代理层选用成熟组件、只自研管控与集成层,别从零实现 SSH/RDP 协议栈——那是安全事故高发区。

H.5 小结

  • 堡垒机 = 4A(认证/授权/审计/账号),是本书第 17/20/23/24/26 章的组合应用
  • 核心原则:凭据不落地到人、旁路不可绕过、协议感知才能做命令级管控
  • Rust 自研关键 crate:russh(SSH 代理)、portable-pty、axum(ws)
  • 优先选用成熟方案(Teleport/Guacamole/JumpServer),自研聚焦管控与集成层
  • 无论自研选用,录像的加密与防篡改、目标机的网络隔离是不可省的两条底线

导航:返回目录