Docker 一键安装部署 JumpServer 堡垒机完全指南

JumpServer 作为全球首款完全开源的堡垒机,使用 Python/Django 开发,遵循 GNU GPL v2.0 开源协议,是符合 4A(认证 Authentication、授权 Authorization、账号 Accounting、审计 Audit) 标准的专业运维审计系统。本文将详细介绍如何使用 Docker 一键安装部署 JumpServer 堡垒机,包括环境准备、安装配置、初始设置以及日常管理等全流程。

环境准备

在开始安装 JumpServer 之前,需要确保您的系统满足以下基本要求:

  • 操作系统:推荐使用 CentOS 7+ 或 Ubuntu 20.04+

  • 硬件配置

    • 内存:至少 2GB(生产环境建议 8GB 以上)

    • CPU:至少 2 核

    • 磁盘空间:至少 20GB

  • 网络要求

    • 开放必要端口:80(HTTP)、443(HTTPS)、2222(SSH)

    • 关闭防火墙或配置相应规则

Docker环境安装

JumpServer 基于 Docker 部署,因此需要先安装 Docker 和 Docker Compose:

# CentOS/RHEL系统
sudo yum install -y docker docker-compose
sudo systemctl start docker && sudo systemctl enable docker

# Ubuntu/Debian系统
sudo apt update && sudo apt install -y docker.io docker-compose
sudo systemctl start docker && sudo systemctl enable docker

对于国内用户,建议配置 Docker 镜像加速器以提高下载速度:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    " https://docker.mirrors.ustc.edu.cn ",
    " https://hub-mirror.c.163.com "
  ]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

验证 Docker 安装是否成功:

docker --version
docker-compose --version

JumpServer一键安装

JumpServer 官方提供了快速安装脚本,大大简化了部署流程。以下是完整的一键安装步骤:

1. 下载并执行安装脚本

curl -sSL https://github.com/jumpserver/jumpserver/releases/latest/download/quick_start.sh  | bash

该脚本会自动完成以下工作:

  • 拉取所需的 Docker 镜像

  • 创建必要的目录结构

  • 生成配置文件模板

  • 初始化数据库

注:如果安装过程中拉取镜像失败,可以先配置国内镜像源再重新执行安装。

2. 配置关键参数

安装过程中会提示配置以下关键参数:

  • SECRET_KEY:用于加密的密钥,建议使用复杂随机字符串(可通过openssl rand -hex 32生成)

  • BOOTSTRAP_TOKEN:组件间通信的令牌,自定义 16 位字符

  • 数据库配置:选择使用内置 PostgreSQL 或外部数据库

  • Redis 配置:选择 Redis 引擎模式(redis/sentinel)

  • 持久化目录:默认为/data/jumpserver/,建议选择磁盘空间充足的路径

  • 外部访问端口:默认 80(HTTP) 和 443(HTTPS)

3. 启动JumpServer服务

安装完成后,进入安装目录启动服务:

cd /opt/jumpserver-installer-v2.6.2  # 版本号可能不同
./jmsctl.sh start

检查服务状态:

./jmsctl.sh status

预期输出应显示所有容器正常运行,类似如下:

jumpserver-core    Up
jumpserver-koko    Up
jumpserver-mariadb Up
jumpserver-redis   Up
jumpserver-web     Up

4. 访问Web界面

在浏览器中输入服务器 IP 或域名访问 JumpServer:

http://<服务器IP>:80

https://<服务器IP>:443

首次登录使用默认管理员账号:

  • 用户名:admin

  • 密码:admin

注意:首次登录后系统会强制要求修改密码。

初始配置

成功登录后,需要进行以下基础配置以使 JumpServer 正常工作:

1. 系统设置

  • 基本设置:配置系统名称、公司名称等基本信息

  • 邮件设置:配置 SMTP 服务器以便发送通知邮件(必填项)

  • 安全设置:配置密码策略、登录限制等安全选项

2. 创建系统用户

JumpServer 需要通过 "系统用户" 来连接和管理资产。创建步骤:

  1. 导航至 "资产管理" → "系统用户"

  2. 点击 "创建系统用户"

  3. 填写用户名(如 root)、密码 / 密钥等信息

  4. 保存配置

3. 添加资产

将需要管理的服务器添加到 JumpServer 中:

  1. 导航至 "资产管理" → "资产列表"

  2. 点击 "创建资产"

  3. 填写资产信息(IP、主机名、平台等)

  4. 选择关联的系统用户

  5. 保存配置

4. 资产授权

只有经过授权的用户才能访问资产:

  1. 导航至 "权限管理" → "资产授权"

  2. 点击 "创建授权规则"

  3. 选择用户 / 用户组和资产 / 节点

  4. 设置权限(如连接、上传 / 下载等)

  5. 保存配置

日常管理与维护

常用管理命令

JumpServer 安装目录下的jmsctl.sh脚本提供了丰富的管理命令:

# 启动JumpServer
./jmsctl.sh start

# 停止JumpServer
./jmsctl.sh stop

# 重启JumpServer
./jmsctl.sh restart

# 查看状态
./jmsctl.sh status

# 升级JumpServer
./jmsctl.sh upgrade

# 数据备份
./jmsctl.sh backup

# 查看更多命令帮助
./jmsctl.sh --help

数据备份与恢复

定期备份是保障系统可靠性的重要措施。以下是备份脚本示例:

#!/bin/bash
BACKUP_DIR="/backup/jumpserver/$(date +%Y%m%d)"
mkdir -p $BACKUP_DIR

# 备份数据库
docker exec jumpserver-mariadb mysqldump -uroot -p"${DB_PASSWORD}" jumpserver > $BACKUP_DIR/jumpserver.sql

# 备份配置文件
cp /opt/jumpserver/{.env,docker-compose.yml} $BACKUP_DIR/

# 备份持久化数据
tar -czf $BACKUP_DIR/volumes.tar.gz \
    /opt/jumpserver/core/data \
    /opt/jumpserver/koko/data \
    /opt/jumpserver/web/data

# 加密压缩
gpg --batch --passphrase "YourBackupPass" --symmetric $BACKUP_DIR/*

# 保留30天备份
find /backup/jumpserver -type d -mtime +30 -exec rm -rf {} \;

可以设置定时任务每天自动备份:

# 每天凌晨2点备份
0 2 * * * /bin/bash /opt/jumpserver/backup.sh

恢复流程:

# 1. 恢复数据库
gunzip -c jumpserver.sql.gz | docker exec -i jumpserver-mariadb mysql -uroot -p"${DB_PASSWORD}" jumpserver

# 2. 恢复配置文件
cp /backup/jumpserver/20230101/{.env,docker-compose.yml} /opt/jumpserver/

# 3. 恢复持久化数据
tar -xzf volumes.tar.gz -C /

# 4. 重启服务
docker-compose down && docker-compose up -d

安全加固建议

1. 修改默认端口

建议修改默认的 HTTP/HTTPS 端口以增强安全性:

# 修改docker-compose.yml中的端口映射
ports:
  - "8080:80"       # 原80端口改为8080
  - "8443:443"      # 原443端口改为8443
  - "2222:2222"     # SSH端口

2. 启用HTTPS

生产环境强烈建议启用 HTTPS:

  1. 准备 SSL 证书(如 Let's Encrypt)

  2. 将证书文件放置于持久化目录

  3. 修改 Nginx 配置启用 SSL

3. 配置防火墙规则

仅开放必要的端口:

# 开放SSH端口(22)和JumpServer端口
sudo ufw allow 22/tcp
sudo ufw allow 8080/tcp
sudo ufw allow 8443/tcp
sudo ufw allow 2222/tcp
sudo ufw enable

4. 定期更新

保持 JumpServer 更新至最新版本以获取安全补丁:

./jmsctl.sh upgrade

高级功能配置

1. 集成LDAP/AD认证

JumpServer 支持与企业现有的 LDAP/AD 集成:

  1. 导航至 "系统设置" → "认证设置" → "LDAP"

  2. 配置 LDAP 服务器地址、绑定 DN、密码等参数

  3. 测试连接并保存

2. 多因素认证(MFA)

增强账户安全性:

  1. 导航至 "系统设置" → "安全设置"

  2. 启用 "二次认证" 选项

  3. 配置认证方式(如 TOTP)

3. 审计与报表

JumpServer 提供完整的操作审计功能:

  • 会话记录:记录所有 SSH/RDP 会话

  • 命令审计:记录执行的命令

  • 操作日志:记录用户在 JumpServer 上的操作

可通过 "审计台" 查看和分析这些数据。

常见问题解决

1. 安装失败

问题:执行安装脚本时失败
解决

  • 检查网络连接是否正常

  • 确保系统满足最低要求

  • 查看日志文件/var/log/jumpserver-installer.log

2. 无法访问Web界面

问题:服务已启动但无法访问
解决

  • 检查防火墙 / 安全组规则

  • 确认端口未被占用:netstat -tulnp | grep <端口>

  • 查看容器日志:docker logs jumpserver-web

3. 忘记管理员密码

问题:无法登录管理员账户
解决:通过命令行重置密码:

docker exec -it jumpserver-web python /opt/jumpserver/apps/manage.py changepassword admin

总结

通过 Docker 一键部署 JumpServer 堡垒机,企业可以快速构建一个安全、合规的运维审计系统。本文详细介绍了从环境准备、安装配置到日常管理的全流程,包括:

  1. 快速部署:使用官方脚本实现一键安装

  2. 灵活配置:支持自定义端口、数据库等关键参数

  3. 完善功能:提供资产管理、权限控制、操作审计等核心功能

  4. 高可靠性:通过备份恢复机制保障数据安全

JumpServer 作为开源堡垒机,不仅能满足中小企业简化运维权限管理的需求,也能支撑大型企业构建多层级安全防护体系。通过集中管控、权限精细分配和操作全链路审计,JumpServer 让运维操作真正实现 "可管、可控、可追溯",从根源上降低误操作和违规操作带来的风险。

随着企业安全意识的提升,堡垒机已成为 IT 基础设施中不可或缺的一环。JumpServer 凭借其开源特性、丰富功能和活跃社区,是构建安全运维体系的理想选择。


Docker 一键安装部署 JumpServer 堡垒机完全指南
https://uniomo.com/archives/docker-yi-jian-an-zhuang-bu-shu-jumpserver-bao-lei-ji-wan-quan-zhi-nan
作者
雨落秋垣
发布于
2025年08月02日
许可协议