📞 IT 峰哥团队 · 企业信息化落地服务
IT 峰哥深耕企业 IT 基础设施领域多年,专注为各类型企业提供网络安全规划、设备选型、上网行为管理、超融合部署、文档加密、考勤门禁、视频监控等信息化项目整包落地服务。从方案设计、设备选型、上门实施到后期运维,全程跟进。
承接规模:小微企业 / 成长型企业 / 中大型企业,均提供定制化方案
服务范围:防火墙、上网行为、AP+AC、域控、NAS、超融合、文档加密、人脸考勤、视频监控、机房动环等
合作流程:需求沟通 → 方案设计 → 设备选型 → 落地实施 → 持续运维
📱 17712677007(微信同号)
📞 24 小时全天候响应 · 紧急项目优先安排

企业服务器数量从几台增长到几十台以后,直接把 Linux root 密码、Windows 管理员密码和数据库账号分发给运维人员,会迅速带来账号共享、权限失控、离职交接困难和操作无法追溯等问题。JumpServer 是国内使用广泛的开源堡垒机与运维安全审计平台,能够把人员、资产、账号、授权和会话审计集中到一个入口,实现身份认证、访问控制、操作审计和账号管理。
本文聚焦一个具体场景:在 Rocky Linux 9 上部署 JumpServer 4.x 单机版,并从一台干净服务器开始,完成系统初始化、安装包准备、jmsctl 部署、端口与 HTTPS 规划、首次登录、Linux 和 Windows 资产纳管、资产授权、命令与录像审计、备份升级及常见故障排查。本文不追求把所有架构都塞进一篇,而是给出一套中小规模生产环境可以照着落地的完整流程。
一、JumpServer 架构和本次实战目标
JumpServer 并不是一台简单的 Web SSH 服务器。它由核心 API、Web 前端、SSH 终端、RDP 组件、数据库代理、任务调度、数据库、Redis 和反向代理等组件共同组成。官方单机安装包通过容器编排把这些组件部署在同一台 Rocky Linux 9 主机上,管理员主要使用 jmsctl.sh 完成安装、启动、停止、升级、备份和故障查看。
| 组件或能力 | 主要作用 | 本文是否配置 |
|---|---|---|
| Core | 用户、资产、账号、权限、审计等核心 API | 是 |
| Web | 管理控制台与用户工作台 | 是 |
| Koko | SSH、Telnet 等字符协议访问 | 是 |
| Lion | Windows RDP 与图形会话 | 是 |
| Magnus | 数据库客户端代理入口 | 按需 |
| MySQL/PostgreSQL 与 Redis | 业务数据和缓存 | 单机内置 |
| 录像与审计日志 | 会话回放、命令检索、追责 | 是 |
本文演示环境使用 JumpServer 社区版 4.10 LTS 分支。写作时 GitHub Latest Release 显示为 v4.10.17,但版本会持续更新,正式安装时应从官方发布页读取最新安全版本,不能永久照抄文章里的小版本号。尤其生产环境要关注安全公告,历史上低版本出现过需要升级修复的安全漏洞。
二、Rocky Linux 9 服务器规划与安装前检查
JumpServer 单机部署适合实验室、中小企业和并发量不高的生产环境。最低资源不代表推荐资源,数据库、Redis、会话录像和多个接入组件同时运行时会消耗明显内存与磁盘。建议从 4 核 CPU、8GB 内存和 100GB SSD 起步;如果需要纳管大量 Windows 资产、长时间保存录像或多人并发,建议使用 8 核、16GB 内存和 200GB 以上磁盘。
| 项目 | 演示值 | 生产建议 |
|---|---|---|
| 操作系统 | Rocky Linux 9 x86_64 Minimal | 安装最新安全更新 |
| 主机名 | jumpserver01.example.com | 使用可解析 FQDN |
| IP 地址 | 192.168.10.50/24 | 固定地址,禁止 DHCP 漂移 |
| CPU / 内存 | 4 核 / 8GB | 按并发和资产规模上调 |
| 系统盘 | 100GB | 录像目录最好独立大盘 |
| 访问域名 | jms.example.com | 配置企业有效 HTTPS 证书 |
| 数据目录 | /data/jumpserver | 独立挂载并纳入备份 |
先以 root 或拥有 sudo 权限的账号登录 Rocky Linux 9,检查系统版本、CPU 架构、内存、磁盘、时间和 DNS:
cat /etc/os-release
uname -m
nproc
free -h
df -hT
timedatectl
hostnamectl
getent hosts github.com
curl -I --max-time 10 https://github.com
设置主机名与 Asia/Shanghai 时区,并启用 chronyd。堡垒机的审计日志必须有准确时间,否则发生安全事件时无法建立可靠时间线。
hostnamectl set-hostname jumpserver01.example.com
timedatectl set-timezone Asia/Shanghai
systemctl enable --now chronyd
chronyc tracking
更新系统并安装常用工具:
dnf update -y
dnf install -y curl wget tar gzip unzip vim git rsync chrony bind-utils lsof
如果这是远程生产服务器,更新内核后不要在没有控制台和维护窗口的情况下贸然重启。先确认网络、SSH、公网或离线安装包来源都可用,再进入安装阶段。
三、确认 SELinux、firewalld、端口和网络边界
很多教程为了省事直接关闭 SELinux 和 firewalld,但生产堡垒机恰恰不应该裸奔。正确思路是先记录当前安全状态,按照实际访问方式开放最少端口,并在测试环境验证容器卷挂载和反向代理。若官方当前安装文档对 SELinux 有明确要求,以对应版本说明为准;遇到权限问题应优先查审计日志,而不是永久 setenforce 0。
getenforce
sestatus
systemctl status firewalld --no-pager
ss -lntup
firewall-cmd --get-active-zones
对于最常见的 Web 管理和 SSH 客户端接入,通常需要考虑 80、443、2222 等端口。22 是 Rocky Linux 本机运维 SSH,不应对整个互联网开放。RDP、数据库代理和 VNC 端口只有实际使用对应能力时才放行,而且优先限制到管理网段或 VPN 网段。
| 端口 | 用途 | 推荐暴露范围 |
|---|---|---|
| 22/TCP | Rocky Linux 主机管理 | 仅管理网或 VPN |
| 80/TCP | HTTP 或跳转 HTTPS | 按访问范围 |
| 443/TCP | Web HTTPS | 企业用户网段或公网受控入口 |
| 2222/TCP | SSH 客户端连接 JumpServer | 管理网或 VPN |
| 3389/TCP | RDP 相关接入 | 仅有需求时开放 |
| 33061 等 | 数据库客户端代理 | 仅数据库管理员网段 |
示例只开放 Web 和 SSH Client 端口:
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --permanent --add-port=2222/tcp
firewall-cmd --reload
firewall-cmd --list-all
云服务器还要同步配置安全组。操作系统防火墙已开放并不代表云安全组放行,反过来云安全组开放也不代表 firewalld 允许。部署前还应检查 80、443、2222 是否已被 Nginx、宝塔面板或其他服务占用。
四、获取 JumpServer 4.10 安装包并校验
生产环境推荐使用官方发布的社区版离线包,原因是安装内容可控、升级容易留档,也避免在线安装过程中因 GitHub 或镜像网络波动中断。先访问 JumpServer 官方文档、飞致云下载页或 GitHub Release,确认当前最新 LTS 安全版本和支持架构。本文以 v4.10.17、x86_64 为示例,实际文件名以官方 Release Assets 为准。
cd /opt
# 示例:将官方下载的离线包上传到 /opt
ls -lh jumpserver-ce-v4.10.17-x86_64.tar.gz
sha256sum jumpserver-ce-v4.10.17-x86_64.tar.gz
SHA256 必须与发布方提供的校验信息一致。不要从不明网盘或陌生镜像直接下载安装脚本,因为堡垒机掌握企业大量高权限凭据,一旦安装包被篡改,后果比普通应用服务器更严重。
解压安装包并进入版本目录:
tar -xf jumpserver-ce-v4.10.17-x86_64.tar.gz
cd jumpserver-ce-v4.10.17-x86_64
ls -la
chmod +x jmsctl.sh
./jmsctl.sh -h
如果官方发布页的包名或目录结构发生变化,以该版本 README 和官方安装文档为准。不要为了让命令“看起来能跑”而自行猜测下载 URL。
五、运行 jmsctl 安装并检查核心配置
在安装目录运行交互式安装:
cd /opt/jumpserver-ce-v4.10.17-x86_64
./jmsctl.sh install
安装程序会检查环境并询问数据目录、数据库、Redis、服务端口和访问配置。单机实战可选择内置数据库与 Redis,数据目录建议设置为 /data/jumpserver。如果企业已有高可用 PostgreSQL、MySQL 或 Redis,必须先按官方支持矩阵核对版本、字符集、网络和备份方案,不能把外部组件参数凭经验乱填。
安装完成后,核心配置通常位于安装目录的 config/config.txt。重点核对以下项目:
cd /opt/jumpserver-ce-v4.10.17-x86_64
sed -n '1,220p' config/config.txt
| 配置项 | 含义 | 注意事项 |
|---|---|---|
| VOLUME_DIR | 持久化数据目录 | 必须备份,容量要足够 |
| SECRET_KEY | 敏感数据加密密钥 | 严禁泄露,迁移恢复必须一致 |
| BOOTSTRAP_TOKEN | 组件注册令牌 | 严禁泄露 |
| HTTP_PORT / HTTPS_PORT | 对外 Web 端口 | 避免端口冲突 |
| DOMAINS | 可信访问域名 | 填写真实域名和端口 |
| DOCKER_SUBNET | 容器网络 | 不能与办公网、VPN、资产网冲突 |
| TZ | 时区 | 建议 Asia/Shanghai |
SECRET_KEY 和 BOOTSTRAP_TOKEN 是恢复的生命线。应该把 config.txt 加密备份到堡垒机之外,并限制只有少数管理员可以读取。文章、工单、聊天记录和截图中都不要出现真实密钥。
六、启动 JumpServer 并完成安装后验证
./jmsctl.sh start
./jmsctl.sh status
首次启动需要等待数据库初始化和各组件注册。不要只看到命令返回成功就认为部署完成,应从进程、监听端口、容器状态、日志和 HTTP 五个角度验证:
ss -lntup
curl -I http://127.0.0.1
curl -I http://服务器IP
./jmsctl.sh status
docker ps --format 'table {{.Names}}t{{.Status}}t{{.Ports}}'
如果某个组件反复重启,使用 jmsctl 提供的日志命令或 docker logs 定位。例如:
docker logs --tail 200 jms_core
docker logs --tail 200 jms_koko
docker logs --tail 200 jms_lion
容器名称可能随版本和编排方式变化,应先用 docker ps 查真实名称。重点关注数据库连接失败、Redis 认证失败、磁盘权限、端口占用、容器网段冲突和组件注册失败。
七、首次登录与 HTTPS 安全配置
浏览器访问 http://服务器IP 或已配置域名。不同 JumpServer 版本的初始化账号和密码策略可能调整,必须以安装完成时终端提示及官方当前文档为准。若安装包提示默认管理员账号,应首次登录立即修改强密码,并启用 MFA;不要长期保留公开教程中流传的默认凭据。
正式上线建议使用 jms.example.com 之类的域名和有效 HTTPS 证书。TLS 可以由 JumpServer 自带反向代理终止,也可以在前置 Nginx、负载均衡器或防火墙上终止。无论采用哪种方式,都要正确传递 Host、X-Forwarded-Proto 和客户端地址,并把 DOMAINS、站点 URL 配成用户实际访问地址。
生产安全基线至少包括:
- 修改管理员密码,启用多因素认证和登录失败限制。
- 禁止把管理后台直接暴露给全网,优先走 VPN、零信任或固定管理网段。
- 22、2222 和数据库代理端口按来源 IP 限制。
- 配置企业 HTTPS 证书,禁止长期明文 HTTP 登录。
- 为审计录像和数据库设置异机备份,不与系统盘共存。
- 关注 JumpServer 安全公告,及时升级到官方安全版本。
八、纳管第一台 Rocky Linux 资产
JumpServer 的正确配置顺序是“用户和用户组 → 资产节点 → 资产 → 账号 → 资产授权 → 连接测试”。不要一开始就把所有服务器和 root 密码批量导入。先选择一台非生产 Rocky Linux 测试机,验证网络、账号和审计链路。
1. 创建资产节点
进入资产管理,在根节点下创建“Linux-测试”“Linux-生产”“Windows-生产”“网络设备”等节点。节点不是简单目录,它会参与批量授权,因此生产与测试、服务器与网络设备必须分开。
2. 创建主机资产
新增 Linux 主机时填写名称、IP 或域名、平台、节点和 SSH 协议端口。JumpServer 主机必须能访问目标资产的 SSH 端口:
ping -c 2 192.168.10.61
nc -vz 192.168.10.61 22
ssh -o ConnectTimeout=5 ops@192.168.10.61
网络不通时,在 Web 界面重复点“测试”没有意义。应检查目标主机 sshd、路由、防火墙、安全组和访问控制列表。
3. 创建资产账号
建议在目标 Linux 主机建立专用运维账号,不要默认把 root 作为所有人的登录账号。可根据工作职责分配 sudo 命令,并由 JumpServer 保存或托管凭据。高权限账号应设置审批、定期改密和更严格审计。
# 在被管理的 Rocky Linux 资产上执行示例
useradd ops
passwd ops
usermod -aG wheel ops
id ops
生产环境不要简单授予 wheel 的全部 sudo 权限,应在 /etc/sudoers.d/ 中按岗位定义允许命令,并使用 visudo -cf 验证语法。
九、纳管 Windows 资产和数据库资产
Windows 资产通常通过 RDP 使用 Lion 组件访问。添加资产前要确认 JumpServer 到目标 Windows 的 3389 网络连通、远程桌面已启用、账号允许远程登录,并且系统授权符合 Microsoft 许可要求。
# 在 JumpServer Rocky Linux 主机测试网络
nc -vz 192.168.10.71 3389
如果需要通过自动化功能管理 Windows 账号,可能还需按当前官方文档配置 OpenSSH 或相关管理协议。能 RDP 登录不等于自动化改密、账号发现和命令任务都可用,这些能力需要分别验证。
数据库资产可通过 Magnus 等组件代理 MySQL、PostgreSQL、MariaDB、Redis、Oracle 等协议。不要把生产数据库端口开放到公网,只需要允许 JumpServer 组件所在网络访问数据库。数据库授权应遵循只读、开发、运维、DBA 分级,并验证 SQL 审计和高危语句控制。
十、创建用户、资产授权和最小权限模型
堡垒机最核心的不是“能连服务器”,而是让正确的人在正确时间,以正确账号访问正确资产,并执行被允许的动作。推荐按部门和岗位创建用户组,例如“系统运维组”“数据库管理员组”“外包维护组”,不要给每个人单独堆大量授权规则。
创建资产授权时至少确认以下字段:
| 授权维度 | 示例 | 风险控制 |
|---|---|---|
| 用户或用户组 | 系统运维组 | 离职时移出组即可回收 |
| 资产或节点 | Linux-生产 | 生产与测试分开 |
| 账号 | ops、只读账号 | 避免默认全选 root |
| 动作 | 连接、上传、下载 | 文件传输按需开启 |
| 有效期 | 项目开始至结束 | 外包权限自动过期 |
| 审批 | 生产高危资产审批 | 事前控制 |
授权完成后,使用普通测试用户登录用户工作台,确认只看得到被授权资产,不能看到管理控制台和未授权节点。再连接测试 Linux 与 Windows,确认会话建立、上传下载限制和命令策略符合预期。
十一、命令过滤、录像审计与告警验证
一套堡垒机是否真正落地,要看审计是否可用。测试用户连接 Rocky Linux 资产,执行 hostname、whoami、ip addr 等无破坏命令后退出,再由审计管理员进入会话审计查看登录时间、用户、资产、账号、源 IP、命令记录和录像回放。
命令过滤策略应从“告警”开始,经过测试后再对高风险命令设置拒绝。正则表达式或命令匹配过宽可能阻断正常业务,过窄则容易被绕过。rm、mkfs、shutdown、用户管理、网络和防火墙修改等高危操作,应结合审批、最小 sudo 权限和告警,而不是只靠一条关键字黑名单。
建议完成以下验收:
- SSH 字符会话能检索每条命令及执行时间。
- Windows RDP 会话可以回放,画面完整且时间正确。
- 文件上传和下载有审计记录。
- 高危命令策略能产生告警或阻断测试命令。
- 审计员无法修改资产密码,系统管理员不能删除审计证据。
- 录像目录容量和保留周期符合企业制度。
十二、备份、升级和日常运维
JumpServer 至少要备份数据库、config.txt、SECRET_KEY、BOOTSTRAP_TOKEN 以及需要长期保留的录像文件。只备份数据库但丢失 SECRET_KEY,可能导致原有加密凭据无法正常使用;只备份配置但没有数据库,也无法恢复用户、资产和授权关系。
cd /opt/jumpserver-ce-v4.10.17-x86_64
./jmsctl.sh backup_db
find /data/jumpserver/backups -maxdepth 1 -type f -ls
rsync -aH --delete /data/jumpserver/backups/ /backup/jumpserver/database/
rsync -aH /data/jumpserver/core/data/media/replay/ /backup/jumpserver/replay/
备份目录和录像实际路径可能随版本及 VOLUME_DIR 变化,必须通过 config.txt 和官方文档核实。备份完成后还要定期做恢复演练,不能只看任务显示“成功”。
升级前先阅读目标版本 Release Notes,确认升级路径,备份数据库、配置和录像,记录当前版本和容器状态。JumpServer 3.x 升级 4.x 需要遵守官方规定的中间版本路径,不能跨大版本直接覆盖。
./jmsctl.sh status
./jmsctl.sh backup_db
# 解压官方新版本安装包后,在新版本目录按官方说明执行
./jmsctl.sh upgrade
./jmsctl.sh start
./jmsctl.sh status
升级后至少验证管理员登录、普通用户登录、Linux SSH、Windows RDP、数据库代理、授权规则、会话录像和邮件告警。不要只检查首页能打开。
十三、Rocky Linux 9 部署常见故障排查
| 故障现象 | 常见原因 | 排查方向 |
|---|---|---|
| 安装时拉取镜像失败 | DNS、代理、GitHub 或镜像网络异常 | dig、curl、离线包、镜像配置 |
| 80/443 无法监听 | 端口被 Nginx/Apache/面板占用 | ss -lntup、调整 HTTP_PORT |
| 容器网段访问冲突 | DOCKER_SUBNET 与办公网或 VPN 重叠 | ip route、docker network、修改网段 |
| Core 反复重启 | 数据库、Redis、密钥或权限异常 | jms_core 日志、config.txt |
| 网页能开但 SSH 资产失败 | JumpServer 到资产 22 端口不通 | nc、ssh、目标 firewalld |
| Windows 黑屏或断开 | RDP、NLA、证书或 Lion 组件异常 | 3389、Windows 日志、Lion 日志 |
| 录像无法播放 | 存储权限、空间不足或文件丢失 | df、目录权限、对象存储配置 |
| 反代后回调地址错误 | 站点 URL、DOMAINS、转发头不正确 | Nginx 与系统基本设置 |
建议按照“系统资源 → 容器状态 → 监听端口 → 组件日志 → 数据库与 Redis → 目标资产网络”的顺序排查:
uptime
free -h
df -hT
ss -lntup
docker ps -a
docker stats --no-stream
./jmsctl.sh status
journalctl -u docker --since "30 min ago" --no-pager
磁盘满是堡垒机高频故障。会话录像会持续增长,应为录像设置容量监控、保留周期和归档策略。清理时必须按 JumpServer 支持方式进行,不要直接在数据库和录像目录里随意 rm 文件,否则审计索引与实际文件会不一致。
十四、上线验收清单
| 验收项目 | 通过标准 |
|---|---|
| 系统与时间 | Rocky Linux 9 已更新,chronyd 正常,时区正确 |
| 组件状态 | jmsctl status 和容器均无异常重启 |
| HTTPS | 域名证书有效,浏览器无安全警告 |
| 网络边界 | 22、2222、数据库代理端口按来源限制 |
| 管理员安全 | 默认凭据已处理,强密码和 MFA 已启用 |
| Linux 资产 | 普通运维账号可连接,root 未被泛授权 |
| Windows 资产 | RDP 正常,录像可回放 |
| 权限模型 | 普通用户只能看到授权资产与账号 |
| 审计 | 命令、录像、文件传输均有记录 |
| 备份 | 数据库、密钥、配置和录像已异机备份 |
| 升级预案 | 已记录当前版本、官方升级路径与回退方案 |
完成以上验收后,Rocky Linux 9 上的 JumpServer 才算从“安装成功”进入“可上线运行”。后续应按岗位持续梳理权限,定期复核离职账号、过期授权、高权限账号和异常会话,并把备份恢复、安全更新与磁盘容量纳入日常巡检。
JumpServer 的价值不是让远程连接多一个网页,而是把原本散落的人员、账号、资产和操作统一纳入授权与审计。先用一台测试资产把连接、授权、审计和备份链路跑通,再分批接入生产系统,是比一次性导入全部服务器更稳妥的实施方式。
官方参考:JumpServer v4 官方文档、JumpServer GitHub Releases、JumpServer 官方网站。版本号、安装包名、默认凭据、组件端口与配置项可能随版本变化,正式部署必须以下载版本对应文档为准。
👉 相关阅读:JumpServer 4.x 通用部署与运维指南
本文聚焦 Rocky Linux 9 单机实战;如果还需要查看 JumpServer 支持资产类型、完整配置参数、集群思路和跨版本升级说明,可继续阅读:JumpServer 4.x 堡垒机部署及运维管理完整指南。
🚀 IT峰哥软件库
更多 Linux、堡垒机、网络安全和企业信息化实战资料,可访问 IT峰哥软件库 获取。