首页
/ JumpServer开源堡垒机全方位部署与运维指南

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多因素认证
  • 资源管理:维护资产信息与权限映射关系
  • 会话管理:记录并存储用户操作会话数据
  • 审计引擎:分析操作日志生成合规报告

JumpServer架构示意图 图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)

执行阶段

  1. 登录JumpServer管理界面
  2. 进入"个人设置" → "安全设置"
  3. 启用"TOTP多因素认证"
  4. 使用认证器扫描二维码

TOTP认证配置 图2:使用认证器扫描二维码完成多因素认证配置

验证阶段

退出当前登录,重新登录时将要求输入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设计
登录后查看全文
热门项目推荐
相关项目推荐