JumpServer开源堡垒机全方位部署与运维指南
2026-04-04 09:38:35作者:宣海椒Queenly
[!TIP] 本文档提供JumpServer堡垒机从环境准备到安全加固的完整实施路径,适合企业级运维团队部署特权访问管理(PAM)系统,实现对服务器、数据库等核心资源的安全管控。
一、价值定位:为什么选择JumpServer
1.1 核心功能解析
JumpServer作为开源堡垒机解决方案,提供三大核心价值:
- 集中访问控制:通过Web界面统一管理SSH、RDP、Kubernetes等多协议连接
- 完整审计体系:记录所有操作行为并支持视频回放,满足合规审计要求
- 细粒度权限管理:基于最小权限原则,实现用户-资源-操作的精准授权
1.2 技术原理专栏
JumpServer采用B/S架构设计,通过Docker容器化部署实现组件解耦。核心模块包括:
- 认证网关:处理用户身份验证与MFA多因素认证
- 资源管理:维护资产信息与权限映射关系
- 会话管理:记录并存储用户操作会话数据
- 审计引擎:分析操作日志生成合规报告
图1:JumpServer系统架构示意图,展示核心功能模块与安全防护机制
二、环境预检:系统部署前置条件
[!IMPORTANT] 环境配置直接影响系统稳定性,建议严格按照推荐配置执行,生产环境禁止使用最低配置。
2.1 硬件配置要求
| 配置类型 | CPU核心 | 内存容量 | 磁盘空间 | 适用场景 |
|---|---|---|---|---|
| 最低配置 | 2核 | 4GB | 50GB | 测试环境 |
| 推荐配置 | 4核 | 8GB | 100GB | 生产环境(50用户内) |
| 高级配置 | 8核 | 16GB | 200GB | 生产环境(100+用户) |
2.2 软件环境准备
准备阶段
- 操作系统:CentOS 7.9/Ubuntu 20.04 LTS 64位
- 依赖组件:Docker 20.10+、Docker Compose 2.0+
执行阶段
# CentOS系统依赖安装
yum update -y && yum install -y curl wget git policycoreutils openssh-server
# Ubuntu系统依赖安装
apt update && apt install -y curl wget git openssh-server ufw
验证阶段
# 检查Docker是否安装成功
docker --version
docker-compose --version
Docker version 20.10.12, build e91ed57
docker-compose version 2.12.2, build 7240ff3
2.3 网络环境配置
🔍 检查点:确认以下端口未被占用且已开放防火墙
- 80/tcp:Web服务端口
- 443/tcp:HTTPS加密端口
- 2222/tcp:SSH协议转发端口
⚠️ 注意项:生产环境建议部署在隔离网段,仅允许特定IP访问管理端口
三、多元部署:灵活选择安装方式
[!NOTE] 提供两种部署方案,快速部署适合测试与小型环境,手动部署适合定制化需求场景。
3.1 快速部署方案(推荐)
准备阶段
# 克隆项目仓库
git clone https://gitcode.com/feizhiyun/jumpserver
cd jumpserver
执行阶段
# 启动一键安装脚本
chmod +x ./utils/quick_start.sh
./utils/quick_start.sh -d /opt/jumpserver -p 8080
| 参数 | 作用 | 默认值 |
|---|---|---|
| -d | 指定安装目录 | /opt/jumpserver |
| -p | Web服务端口 | 80 |
| -h | 显示帮助信息 | - |
验证阶段
# 查看服务状态
./jmsctl.sh status
Name Command State Ports
--------------------------------------------------------------------------------------------------
jumpserver_core /opt/jumpserver/co ... Up 0.0.0.0:2222->2222/tcp,:::2222->2222/tcp
jumpserver_db docker-entrypoint.s ... Up (healthy) 3306/tcp, 33060/tcp
jumpserver_redis docker-entrypoint.s ... Up (healthy) 6379/tcp
jumpserver_web /docker-entrypoint. ... Up 0.0.0.0:80->80/tcp,:::80->80/tcp
3.2 手动部署方案
准备阶段
# 创建安装目录
mkdir -p /opt/jumpserver && cd /opt/jumpserver
# 下载安装包
wget https://download.jumpserver.org/latest/jumpserver-offline.tar.gz
tar -xf jumpserver-offline.tar.gz
执行阶段
# 初始化配置
./jmsctl.sh config
# 启动服务
./jmsctl.sh start -d
💡 技巧提示:使用./jmsctl.sh config命令可交互式配置数据库、Redis等核心参数
验证阶段
访问服务器IP地址,出现JumpServer登录界面即表示部署成功
四、运维指南:日常管理与故障处理
[!TIP] 建立规范的运维流程可显著提升系统稳定性,建议定期执行数据备份与日志清理。
4.1 服务管理命令
基本操作
# 启动服务
./jmsctl.sh start
# 停止服务
./jmsctl.sh stop
# 重启服务
./jmsctl.sh restart
状态监控
# 查看实时日志
./jmsctl.sh logs -f core
# 检查服务健康状态
./jmsctl.sh health
4.2 数据备份策略
准备阶段
创建备份目录并设置权限:
mkdir -p /data/backups/jumpserver
chmod 700 /data/backups/jumpserver
执行阶段
# 执行数据库备份
./jmsctl.sh backup_db -d /data/backups/jumpserver
# 执行配置备份
./jmsctl.sh backup_config -d /data/backups/jumpserver
验证阶段
# 检查备份文件
ls -lh /data/backups/jumpserver
-rw-r--r-- 1 root root 12M Mar 2 10:30 jumpserver_db_202603021030.sql
-rw-r--r-- 1 root root 4K Mar 2 10:30 jumpserver_config_202603021030.tar.gz
4.3 常见故障速查
故障1:服务启动失败
- 现象:执行
./jmsctl.sh start后web服务未正常启动 - 排查:查看日志
./jmsctl.sh logs web - 解决方案:检查端口占用情况,释放冲突端口或修改配置文件中的端口设置
故障2:数据库连接错误
- 现象:服务启动后提示数据库连接失败
- 排查:检查数据库容器状态
docker ps | grep jumpserver_db - 解决方案:重启数据库服务
./jmsctl.sh restart db,如仍失败检查数据库密码配置
故障3:MFA认证失败
- 现象:登录时提示验证码错误
- 排查:检查服务器时间是否与客户端同步
- 解决方案:同步系统时间
ntpdate time1.aliyun.com
五、安全加固:构建纵深防御体系
[!WARNING] 堡垒机作为安全基础设施,自身安全尤为重要,建议完成以下所有加固措施。
5.1 端口安全策略
准备阶段
规划端口访问控制策略,仅开放必要端口
执行阶段
# CentOS防火墙配置
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --zone=public --add-port=2222/tcp --permanent
firewall-cmd --reload
# Ubuntu防火墙配置
ufw allow 443/tcp
ufw allow 2222/tcp
ufw enable
验证阶段
# 检查开放端口
ss -tuln
5.2 SSL证书配置
准备阶段
准备SSL证书文件(cert.pem和key.pem)
执行阶段
# 创建证书目录
mkdir -p /opt/jumpserver/config/nginx/ssl
# 复制证书文件
cp cert.pem key.pem /opt/jumpserver/config/nginx/ssl/
# 重启Web服务
./jmsctl.sh restart web
💡 技巧提示:可使用Let's Encrypt免费证书,通过certbot工具自动续期
5.3 多因素认证配置
准备阶段
确保用户已安装认证器应用(如Google Authenticator)
执行阶段
- 登录JumpServer管理界面
- 进入"个人设置" → "安全设置"
- 启用"TOTP多因素认证"
- 使用认证器扫描二维码
验证阶段
退出当前登录,重新登录时将要求输入TOTP验证码
5.4 安全审计配置
执行阶段
# 启用操作日志审计
./jmsctl.sh set LOG_LEVEL=DEBUG
./jmsctl.sh restart core
# 配置日志轮转
cp ./docs/logrotate/jumpserver /etc/logrotate.d/
⚠️ 注意项:生产环境建议将审计日志同步到专用日志服务器,防止日志被篡改
扩展阅读
- 管理员手册:docs/admin_guide.md - 详细介绍系统管理功能与最佳实践
- API开发指南:docs/api_guide.md - 提供RESTful API使用说明与示例代码
- 部署架构文档:docs/architecture.md - 介绍分布式部署方案与 scalability设计
登录后查看全文
热门项目推荐
相关项目推荐
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
LongCat-AudioDiT-1BLongCat-AudioDiT 是一款基于扩散模型的文本转语音(TTS)模型,代表了当前该领域的最高水平(SOTA),它直接在波形潜空间中进行操作。00
jiuwenclawJiuwenClaw 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。Python0245- QQwen3.5-397B-A17BQwen3.5 实现了重大飞跃,整合了多模态学习、架构效率、强化学习规模以及全球可访问性等方面的突破性进展,旨在为开发者和企业赋予前所未有的能力与效率。Jinja00
AtomGit城市坐标计划AtomGit 城市坐标计划开启!让开源有坐标,让城市有星火。致力于与城市合伙人共同构建并长期运营一个健康、活跃的本地开发者生态。01
HivisionIDPhotos⚡️HivisionIDPhotos: a lightweight and efficient AI ID photos tools. 一个轻量级的AI证件照制作算法。Python05
项目优选
收起
deepin linux kernel
C
27
13
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
641
4.19 K
Ascend Extension for PyTorch
Python
478
579
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
934
841
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
386
272
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
1.51 K
866
暂无简介
Dart
884
211
仓颉编程语言运行时与标准库。
Cangjie
161
922
昇腾LLM分布式训练框架
Python
139
162
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
69
21
