堡垒机 & 踏板机 深度分析

封面

同一种网络拓扑,两种截然不同的使用姿势。

核心概念配图


目录

  1. 核心概念
  2. 堡垒机深度拆解
  3. 踏板机攻击视角
  4. 技术实现细节
  5. 真实攻防对抗
  6. 主流堡垒机产品对比
  7. 搭建一个最小化堡垒机
  8. 延伸思考

一、核心概念

本质是什么?

堡垒机和踏板机描述的是同一种网络结构:通过一个中间节点,访问原本隔离的区域。

1
外部 ──→ 中间节点 ──→ 隔离区域内的目标

区别只在于谁在用、为了什么目的

概念 使用者 目的 中文别名
堡垒机 (Bastion Host) 防守方(运维/安全团队) 合法管控、审计、降低攻击面 跳板机、运维审计系统
踏板机 (Pivot Host) 攻击方(渗透测试/黑客) 横向移动、隐藏真实来源 跳板、肉鸡

一个有趣的现实:攻击者最喜欢的踏板,往往就是企业自己的堡垒机——因为它被所有内网机器信任,一旦拿下,等于拿下整个内网的钥匙。


堡垒机深度拆解

二、堡垒机深度拆解

2.1 为什么需要堡垒机?

没有堡垒机的企业网络通常长这样:

1
2
3
4
5
6
互联网

├──→ Web 服务器(开放 80/443)
├──→ 数据库(开放 3306) ← 危险!
├──→ Redis(开放 6379) ← 更危险!
└──→ 各种内网服务器... ← 到处是口子

运维人员从家里 SSH 直连服务器,没有任何记录,出了事根本不知道是谁干的,也不知道干了什么。

引入堡垒机之后:

1
2
3
4
5
6
7
互联网

└──→ 堡垒机(仅开放 22/443)

├──→ Web 服务器
├──→ 数据库(仅允许堡垒机IP访问)
└──→ 其他内网资源

所有内网服务器的防火墙规则只允许来自堡垒机的连接,外部完全不可达。

2.2 堡垒机的四大核心功能

① 认证(Authentication)

堡垒机是统一的身份入口,通常支持:

  • 用户名/密码 + 动态口令(TOTP)
  • 证书/密钥认证
  • LDAP/AD 域账号集成
  • 单点登录(SSO)

登录堡垒机本身往往是双因素认证,比直接 SSH 服务器安全得多。

② 授权(Authorization)

堡垒机做细粒度的权限管控:

1
2
3
4
张三   →  只能访问 Web 服务器(只读权限)
李四 → 可以访问数据库,但禁止执行 DROP 命令
运维组 → 全量权限,但操作需要审批
外包商 → 临时授权,有效期 2 小时,只能访问指定机器

③ 审计(Audit)

这是堡垒机最核心的能力,也是合规要求的重点:

  • 录像回放:每次会话完整录制,可以像看视频一样回放操作过程
  • 命令记录:每一条命令、每一次文件传输都有日志
  • 实时监控:管理员可以实时观看任意会话,发现异常立即介入
  • 行为分析:统计每个账号的操作模式,识别异常行为(如凌晨3点登录、批量删文件)

④ 管控(Control)

  • 危险命令拦截:rm -rf /DROP TABLE 等高危操作直接阻断
  • 实时断开:管理员可以强制踢下任意会话
  • 文件传输审计:上传/下载的文件都有记录,防止数据泄露
  • 命令审批:某些操作需要二次人工审批才能执行

2.3 堡垒机的工作原理(技术层面)

堡垒机的代理转发有两种主要模式:

模式一:透明代理模式(SSH ProxyJump)

1
2
3
4
5
6
7
用户 SSH 客户端
│ ssh -J bastion@堡垒机IP user@目标服务器

堡垒机(在中间建立 TCP 隧道)


目标服务器(看到的来源 IP 是堡垒机)

用户感知上和直连没区别,堡垒机透明转发流量,同时在中间抓包分析。

模式二:落地跳转模式

1
2
用户先 SSH 登录到堡垒机
堡垒机上再 SSH 到目标服务器

用户实际上是在堡垒机的 shell 里操作,目标服务器上的会话来源就是堡垒机。

模式三:Web 化管理(现代堡垒机主流)

1
2
3
4
5
6
7
用户浏览器 → HTTPS → 堡垒机 Web 界面
│ WebSocket

Web Terminal(在浏览器里操作终端)
│ SSH/RDP

目标服务器

用户不需要安装 SSH 客户端,浏览器就能操作服务器。JumpServer、Teleport 都是这种模式。


踏板机攻击视角

三、踏板机攻击视角

3.1 攻击者为什么需要踏板机?

攻击者打进一家公司,拿到一台边界服务器(如 Web 服务器)的权限后,发现内网还有更有价值的目标(数据库、内网 OA、代码仓库),但:

  • 防火墙拦截了从外部直接访问内网的流量
  • 直接用自己的 IP 去扫内网,会留下明显日志
  • 需要一个”合法”的内网节点来中转流量

于是把已控制的机器变成踏板机,借助它访问内网深处。

3.2 三种核心技术手法

手法一:SSH 本地/远程/动态端口转发

1
2
3
4
5
6
7
# 本地端口转发:把内网数据库的 3306 映射到本地
ssh -L 3306:内网数据库IP:3306 user@踏板机IP
# 之后连 localhost:3306 就是连内网数据库

# 动态端口转发(SOCKS5 代理)
ssh -D 1080 user@踏板机IP
# 之后配置浏览器/工具走 127.0.0.1:1080 的 socks5,流量全走踏板机

手法二:frp / chisel 内网穿透

frp 是攻击者非常喜欢用的工具,可以把内网服务暴露到攻击者控制的公网服务器上:

1
2
3
4
5
攻击者公网服务器(frps)
↑ 反向连接(踏板机主动出站,一般不被防火墙拦)
踏板机(frpc)
│ 访问
内网目标

因为是从内往外的连接,大多数防火墙默认不拦出站流量,这是内网穿透能成功的核心原因。

手法三:msf/cs 的路由与 socks 模块

Metasploit 和 Cobalt Strike(CS)内置了路由转发能力:

1
2
3
4
攻击者 MSF → 已控制的 Session(踏板)→ 内网目标
# MSF 命令
route add 192.168.1.0/24 [session_id] # 添加内网路由
use auxiliary/server/socks_proxy # 起 socks 代理

3.3 踏板链(多级跳转)

复杂渗透场景下可能需要多级踏板:

1
2
3
4
5
6
7
8
9
攻击者

└──→ 踏板A(互联网 → DMZ)

└──→ 踏板B(DMZ → 内网)

└──→ 踏板C(内网 → 核心区)

└──→ 最终目标(域控/数据库)

每一跳都使溯源更加困难。


技术实现细节

四、技术实现细节

4.1 SSH ProxyJump 配置(日常运维必备)

~/.ssh/config 里配置,以后 SSH 自动走堡垒机:

1
2
3
4
5
6
7
8
9
10
11
12
13
# 堡垒机配置
Host bastion
HostName 1.2.3.4
User ops
IdentityFile ~/.ssh/bastion_key

# 目标服务器,自动经过堡垒机
Host prod-*
ProxyJump bastion
User ubuntu
IdentityFile ~/.ssh/prod_key

# 使用时直接:ssh prod-web01,自动跳转

4.2 堡垒机的会话录制原理

堡垕机录制 SSH 会话的核心是在 PTY(伪终端)层面拦截数据流:

1
2
3
4
5
6
7
8
9
用户 SSH 客户端
│ 加密流量

堡垒机 SSH 服务(解密)

├──→ 数据流写入审计日志(asciinema 格式或私有格式)


目标服务器(堡垒机作为客户端建立新连接)

录制的是原始终端字节流,包含所有字符、颜色、光标移动,可以完整回放。

4.3 防火墙规则配合堡垒机

内网服务器的 iptables 规则示例:

1
2
3
4
5
6
7
# 只允许来自堡垒机的 SSH 连接
iptables -A INPUT -p tcp --dport 22 -s 192.168.1.10 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP

# 数据库只接受堡垒机连接
iptables -A INPUT -p tcp --dport 3306 -s 192.168.1.10 -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j DROP

真实攻防对抗

五、真实攻防对抗

5.1 攻击者如何绕过堡垒机?

攻击路径 原理 防御手段
直接打堡垒机 堡垒机本身有漏洞 及时打补丁,堡垒机不对外暴露管理后台
盗取合法账号 钓鱼运维人员,拿到账号密码 双因素认证,硬件密钥
内鬼 内部运维人员主动搞破坏 操作录制 + 行为分析 + 最小权限
绕过堡垒机直连 发现某台服务器防火墙配置有误,允许外部直连 定期扫描,确保所有机器只信任堡垒机
打下堡垒机再横向 堡垒机被所有内网机器信任,一台打下全网 堡垒机自身做加固,与业务网络隔离

5.2 一次完整的内网渗透路径示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1. 信息收集
└── 发现公司有个 Web 服务开放 80 端口

2. 漏洞利用
└── SQL 注入 → 写 webshell → 获得 Web 服务器权限

3. 内网探测(在踏板机上)
└── arp-scan、nmap 扫内网
└── 发现 192.168.1.10 是堡垒机(高价值目标!)
└── 发现 192.168.1.100 是域控服务器

4. 横向移动
└── 在踏板机上起 socks5
└── 通过代理扫描堡垒机,发现 JumpServer 未授权漏洞
└── 拿下堡垒机,获取所有服务器的 SSH 密钥
└── 用堡垒机上存储的密钥直接登录所有内网服务器

5. 权限维持
└── 在域控上创建后门账号
└── 清理日志(但堡垒机的日志可能已上传到日志服务器)

5.3 JumpServer 历史漏洞(真实案例)

JumpServer 是国内最流行的开源堡垒机,历史上出现过几个严重漏洞:

  • CVE-2021-26832:未授权 WebSocket 访问,可以直接执行系统命令,无需任何认证
  • 原因:某个 WebSocket 接口忘记加认证中间件
  • 影响:攻击者只要能访问 JumpServer 的 Web 端口,就能直接拿到所有被管理服务器的权限
  • 教训:堡垒机本身是最高价值目标,它的安全性必须高于任何被它管理的服务器

主流产品对比

六、主流堡垒机产品对比

产品 类型 特点 适用场景
JumpServer 开源 功能完整,中文友好,社区活跃 中小企业自建
Teleport 开源 现代化架构,支持 K8s/数据库,证书认证 云原生环境
阿里云堡垒机 商业 SaaS 开箱即用,与阿里云生态集成好 全部在阿里云的团队
CyberArk 商业 企业级,特权账号管理最强 大型金融/政府机构
PAM360 商业 密码轮换自动化 需要自动化密码管理的场景

JumpServer 架构简图

1
2
3
4
5
6
7
8
9
10
11
12
                    ┌─────────────────────────────────┐
│ JumpServer │
用户(浏览器)──HTTPS──→ │ Nginx → Core(Django) │
用户(SSH Client)──→ │ Koko(SSH/Telnet 代理) │
用户(RDP Client)──→ │ Lion(RDP 代理,基于 Guacamole)│
│ Celery(异步任务) │
│ Redis / MySQL │
└───────────────┬─────────────────┘

SSH/RDP/Telnet│

各被管理服务器

最小化搭建

七、搭建一个最小化堡垒机

方案一:用 SSH ProxyJump 实现最简单的堡垒机

只需一台有公网 IP 的云服务器,不需要任何额外软件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 1. 在云服务器上创建专门的堡垒机用户(不允许登录 shell)
useradd -m -s /bin/false bastion_user

# 2. 把运维人员的公钥加入 authorized_keys
echo "ssh-rsa AAAA..." >> /home/bastion_user/.ssh/authorized_keys

# 3. 内网服务器防火墙只允许堡垒机 IP
iptables -A INPUT -p tcp --dport 22 -s <堡垒机IP> -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP

# 4. 运维人员 ~/.ssh/config 配置
Host internal-server
HostName 192.168.1.100
User ubuntu
ProxyJump bastion_user@<堡垒机公网IP>

方案二:Docker 快速部署 JumpServer

1
2
3
4
# 一键部署脚本
curl -sSL https://github.com/jumpserver/jumpserver/releases/download/v3.x.x/quick_start.sh | bash

# 访问 http://服务器IP 进行初始化配置

主要配置步骤:

  1. 创建管理员账号
  2. 添加资产(被管理的服务器,填 IP、SSH 端口、系统用户)
  3. 创建运维账号,分配资产访问权限
  4. 运维人员登录 Web 界面,点击资产直接在浏览器里操作

延伸思考

八、延伸思考

8.1 云原生时代,堡垒机在演进

传统堡垒机是为了管理固定 IP 的物理/虚拟机设计的。云原生时代面临新挑战:

  • 容器:Pod 随时启停,IP 动态变化,传统 SSH 管控不适用
  • K8s:用 kubectl exec 进容器,绕过了 SSH 堡垒机
  • Serverless:根本没有服务器可以 SSH

新一代方案(如 Teleport)的思路是:

1
2
3
不再基于 IP 信任,而是基于证书信任
每次访问动态签发短期证书(几小时有效)
K8s、数据库、Web 应用全都纳入统一访问控制

8.2 零信任架构下的堡垒机

零信任(Zero Trust)的核心理念:不因为你在内网就信任你,每次访问都要验证身份、设备、上下文

这对堡垒机的影响:

  • 传统堡垒机:你通过认证后,对授权的服务器有持续会话
  • 零信任堡垒机:每次连接都验证身份 + 设备健康状态 + 访问时间/地点是否异常,动态决定是否放行

8.3 一句话总结

堡垒机本质上是用”集中信任”换”降低攻击面”——把分散在几百台服务器上的认证/授权/审计,集中到一个节点统一管理。它的最大价值不是挡住攻击,而是让每一次运维操作都有迹可查,出了问题能还原事故全过程


参考资源


生成时间:2026-02-25
作者:Claude + Francis