Skip to content

02|堡垒机与访问审计

上一篇用 SSH 直连服务器。机器不多、人就自己一个时,直连很方便。但机器和人员一多,几个问题就冒出来:同事离职了,他本地的 SSH 密钥还在不在?几个人共用 root,出了问题谁干的?临时给外包开个账号,事完忘了收回。

问题直连 SSH 的表现
权限管理本地账号+口头约定,离职时逐台清理密钥
操作追溯多人共用 root,无法区分具体操作人
高危命令执行完才知道,无事前拦截
临时授权口头答应,过期了没人记得收回

堡垒机把这些入口收回一个点:所有人先登录堡垒机,再由堡垒机连接资产。核心价值是谁、在什么时间、通过什么账号、对哪台机器、做了什么——全链路审计。本篇以 JumpServer 为例讲堡垒机的核心对象、权限模型、审计能力,原理适用于同类产品。

一、核心对象关系

堡垒机最容易搞混的是几类对象:

对象含义示例
用户登录堡垒机的人adminops01
资产被管理的目标资源Linux 主机、Windows、数据库
账号资产上的系统登录身份(不是堡垒机用户)rootdeploy
授权规则规定哪个人可以用哪个账号访问哪些资产adminroot@192.168.10.129
审计连接过程、命令、录像连接日志、命令记录、会话回放

关系一句话概括:

用户通过堡垒机,被授权使用某个资产账号,连接某台资产。

只创建资产不够——资产告诉堡垒机"这台机器存在",账号表示"用什么身份登录",授权表示"这个人可以使用这个身份"。缺任何一块最终都连不上。新手最常踩的坑:资产建了、账号建了,但忘了做授权。

二、JumpServer 实验环境

组件地址
JumpServerhttp://192.168.10.11/
被管理主机192.168.10.129
堡垒机管理员admin
资产账号root

登录入口

打开浏览器访问 http://192.168.10.11/,使用 admin 账号登录。控制台展示平台概览——资产、用户、会话等对象入口。

实验环境使用简单密码;生产环境必须开启 MFA、强密码策略、来源 IP 限制。

三、资产纳管

创建资产

导航:进入 JumpServer,左侧菜单「资产管理」→「资产列表」→「创建资产」

字段推荐值说明
名称test-rocky-192.168.10.129建议名字带地址,排查时一眼识别
IP/主机192.168.10.129堡垒机连接资产的实际地址
平台Linux决定协议类型与连接方式
协议SSH + SFTPLinux 主机至少 SSH
节点/默认/按节点批量授权

名称建议带地址,如 test-rocky-192.168.10.129——纯业务名(web-prod-03)需要想一下是哪台,带地址的 web-prod-03-10.0.1.23 一目了然。

密码、Token 等敏感信息不要放在备注里。

四、资产账号

创建账号

导航:进入资产详情 →「账号」→「创建账号」

字段推荐值说明
用户名root目标主机上的登录用户名
密码/密钥托管密码或私钥凭据由堡垒机托管,用户不需要知道真实密码
权限密文表示JumpServer保管了认证凭据

凭据统一托管在堡垒机,用户不需要知道目标机器的真实密码。

凭据托管的含义

账号列表的 密文 状态表示 JumpServer 保存了凭据。好处是用户只需通过授权即可访问,不需要接触真实的密码或私钥

账号管理的几种方式

方式优点缺点
托管密码用户不需要知道真实密码堡垒机被攻破后凭据全部暴露
托管私钥适合批量 Linux 主机管理私钥需定期轮换
手动输入临时连接,审计仍在每次输入,体验差
个人账号+sudo责任清晰,可追溯具体人账号生命周期管理复杂

生产推荐:个人账号 + sudo + 命令审计。root 保留给少数应急场景,日常操作走个人身份。

五、授权规则

授权规则把用户、资产、账号串联起来。

创建授权

导航:左侧菜单「权限管理」→「授权规则」→「创建授权」

区域字段配置要点
基本信息名称说明谁对什么资产的授权
用户/用户组选择用户哪些堡垒机用户可用此授权,建议按用户组权限管理
资产/节点选择资产授权到具体资产或节点(建议节点:加入节点的资产自动获得授权)
账号选择账号允许使用哪些资产账号(如 root、deploy)
协议SSH/SFTP/RDP按需勾选
动作连接/文件传输按需勾选,谨慎开放文件传输
有效期开始和结束时间临时授权必须设过期时间,到期自动失效

授权规则的风险信号

风险处理
所有人授权所有资产权限面太大,人员变动难收敛
所有账号都可用用户可随意选高权限账号,绕过最小权限原则
永不过期的临时授权过期自动失效比人记更可靠
同时开放文件传输+剪贴板数据带出风险增高

临时排除时需要高权限时,在授权规则里设过期时间,到期自动失效。

六、Web Terminal 连接

普通用户进入 JumpServer 的「Web Terminal」(Luna)后,只能看到被授权的资产树——没授权的资产不显示

连接步骤

  1. 登录 JumpServer Web 控制台
  2. 进入「Web Terminal」(Luna)
  3. 在资产树中选择目标资产
  4. 确认连接弹窗中的信息:
字段
协议SSH
账号root(资产托管的)
连接方式Web CLI
  1. 点击连接,浏览器中打开终端

连接后确认

bash
whoami       # 确认当前系统用户
hostname -I  # 确认目标 IP,避免连错机器

远程运维的习惯:连上后先确认身份、主机名、IP,再动手改配置——能避免"改错机器"这种灾难性事故。

七、审计能力与局限

堡垒机通常提供的审计能力

审计类型内容用途
登录日志谁在什么时间、从什么 IP 登录堡垒机异常来源发现
连接日志谁连接了哪台资产、用了什么账号操作追溯
命令记录SSH 会话中执行的命令操作审计
会话录像完整的交互过程回放事故复盘
文件传输上传/下载/SFTP 操作数据防泄漏
改密记录托管密码是否按时轮换合规检查

命令审计的覆盖盲区

盲区具体表现
交互程序vimmysqlredis-cli 内部操作不全
执行脚本只记录 bash deploy.sh,脚本内部内容看脚本自身
二进制工具记录 kill 1234,但不知 1234 是哪个进程
SFTP终端命令记录看不到文件传输

堡垒机是远程入口治理的一个环节,不是全部工具。命令审计 + 应用日志 + 数据库审计结合起来,才能完整还原一次操作的全貌。

八、MFA 与登录保护

堡垒机能连接大量资产,入口的登录认证需要比普通系统更严格。 一台服务器被攻破是单点损失;堡垒机密码泄露就等于所有资产的访问权。

措施作用
MFA(多因素认证)密码加动态码/硬件令牌,拿到密码也登录不了
强密码策略降低弱口令被撞库的风险
登录失败锁定连续错误后锁定,防暴力破解
来源 IP 限制只允许办公网/VPN 访问堡垒机入口
管理员账号一人一个审计日志才能精确到人
定期审计管理员及时清理离职/转岗残留权限

管理员账号如果多人共用一个,审计日志只能记录"admin 做了什么",追踪不到具体责任人。

九、常见故障排查

资产可见但无可用账号

现象:Luna 中能看到资产,点击连接时提示没有可用账号。

排查顺序:

步骤检查项要确认什么
1资产是否存在资产列表中有目标机器
2账号是否绑定账号列表中有对应资产的账号
3授权规则是否包含此账号规则"账号"栏勾选了此账号
4授权是否对用户生效用户/用户组匹配,启用状态正常,在有效期内
5协议是否匹配SSH 资产需要授权规则包含 SSH 协议

只授权了资产但没有授权账号,就会出现"看得到但连不上"。

连接失败:两段排查

用户 → JumpServer(第 1 段)
JumpServer → 目标资产(第 2 段)

第 1 段失败:登录堡垒机——账号状态、MFA、浏览器访问。

第 2 段失败:从 JumpServer 机器测试:

bash
nc -vz 192.168.10.129 22    # 端口通?
ssh -i key user@192.168.10.129  # 认证通?

端口不通→目标机器防火墙/安全组;认证失败→账号密码/密钥/sshd 配置。

审计缺命令:确认是否绕过了堡垒机

如果用户还能绕过堡垒机直连目标机器,堡垒机当然审不到。

目标机器侧收紧来源:

bash
# 只允许堡垒机 192.168.10.11 访问 SSH
iptables -A INPUT -p tcp --dport 22 -s 192.168.10.11 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP

远程改防火墙规则时需要确认:当前连接来源、回滚方式、VNC/控制台入口。 否则直接 DROP 22 把自己关在外面。

十、上线关键点

堡垒机上线不是装起来就完工,真正费力的部分是把资产、用户、授权、审计理顺:

事项做法
资产来源从 CMDB 或云平台同步,不靠手工维护
用户来源对接 LDAP/AD,员工离职在源头停掉,堡垒机联动失效
授权模型按岗/环境/节点分组授权,不逐个用户配
高危权限root、DBA、生产写权限单独审批
审计留存明确日志和录像保留期,满足合规要求
绕行治理目标资产只允许堡垒机 IP 访问
应急入口堡垒机故障时保留受控的应急登录方式

上线后定期检查两件事:

  1. 目标资产还能被绕过堡垒机直连吗?——绕行使审计断掉
  2. 授权规则是否保持过大的范围?——人员变动后权限没回收

这两件事不管好,堡垒机就只是个摆设。