最近做了一次堡垒机部署实验,环境比较贴近实际:内网、无外网、通过 PVE 虚拟化部署。整体目标很明确——所有服务器运维必须通过堡垒机,禁止直连,并具备审计能力。
这篇记录一下从部署到实现强制运维的全过程。
一、环境说明
本次环境比较简单:
- JumpServer:172.16.11.205
- 被管理服务器:172.16.11.216
- 系统:Ubuntu 24.04
- 网络:内网
由于环境无法访问公网,因此采用 JumpServer 离线包部署。
二、JumpServer 离线部署
使用官方提供的离线包:

解压后直接执行:
安装过程中保持默认即可(内置 MySQL 和 Redis)。
安装完成后启动:./jmsctl.sh install
./jmsctl.sh install
./jmsctl.sh start

浏览器访问:http://172.16.11.205
登录后即可进入管理界面。
三、资产接入(服务器纳管)
接下来把目标服务器纳入管理。
路径:资产管理 → 资产列表 → 创建

关键配置:
- IP:172.16.11.216
- 协议:SSH(22)
- 账号:使用实际可登录用户(这里不要一开始就用 root,如果目标服务器禁用了 root 登录,会直接失败。)
四、通过堡垒机登录测试
资产创建完成后,进入:控制台 → 账号列表 → 连接

如果配置正确,会直接打开 Web 终端。
到这一步,其实已经完成了通过堡垒机登录服务器的基本能力。
五、强制运维:禁止直连服务器(核心)
这是整个实验最关键的一步。
默认情况下,用户仍然可以直接:ssh yxwa@172.16.11.216
这不符合安全要求。
解决方案:只允许堡垒机访问 SSH
在目标服务器执行:

sudo ufw enable
sudo ufw allow from 172.16.11.205 to any port 22
sudo ufw deny 22
效果:从普通终端登录就会超时失败。从 JumpServer 登录就是正常的
验证结果:

说明策略生效。
六、运维审计(会话记录)
JumpServer 默认会记录所有操作。
查看路径:审计 台

这一点在实际环境中非常重要,用于追溯问题和安全审计。
七、命令过滤(限制高危操作)
为了进一步提升安全性,可以配置命令拦截。
路径:控制台里访问控制 → 命令过滤
创建规则:

应用后测试:

说明命令过滤已经生效。
通过授权机制可以控制哪个用户能访问哪台服务器,使用哪个账号登录可以实现最基本的运维权限隔离。

权限控制(简单隔离)

通过授权机制可以控制:哪个用户能访问哪台服务器,使用哪个账号登录
路径:授权管理 → 资产授权
这一步可以实现最基本的运维权限隔离。

整体效果总结
最终实现的效果:
- 所有 SSH 运维必须通过 JumpServer
- 禁止用户直接连接服务器
- 所有操作可审计(日志 + 录像)
- 支持命令级别的安全控制
- 可按用户分配访问权限
Comments NOTHING