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 --versionJumpServer一键安装
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 Up4. 访问Web界面
在浏览器中输入服务器 IP 或域名访问 JumpServer:
http://<服务器IP>:80或
https://<服务器IP>:443首次登录使用默认管理员账号:
用户名:admin
密码:admin
注意:首次登录后系统会强制要求修改密码。
初始配置
成功登录后,需要进行以下基础配置以使 JumpServer 正常工作:
1. 系统设置
基本设置:配置系统名称、公司名称等基本信息
邮件设置:配置 SMTP 服务器以便发送通知邮件(必填项)
安全设置:配置密码策略、登录限制等安全选项
2. 创建系统用户
JumpServer 需要通过 "系统用户" 来连接和管理资产。创建步骤:
导航至 "资产管理" → "系统用户"
点击 "创建系统用户"
填写用户名(如 root)、密码 / 密钥等信息
保存配置
3. 添加资产
将需要管理的服务器添加到 JumpServer 中:
导航至 "资产管理" → "资产列表"
点击 "创建资产"
填写资产信息(IP、主机名、平台等)
选择关联的系统用户
保存配置
4. 资产授权
只有经过授权的用户才能访问资产:
导航至 "权限管理" → "资产授权"
点击 "创建授权规则"
选择用户 / 用户组和资产 / 节点
设置权限(如连接、上传 / 下载等)
保存配置
日常管理与维护
常用管理命令
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:
准备 SSL 证书(如 Let's Encrypt)
将证书文件放置于持久化目录
修改 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 enable4. 定期更新
保持 JumpServer 更新至最新版本以获取安全补丁:
./jmsctl.sh upgrade高级功能配置
1. 集成LDAP/AD认证
JumpServer 支持与企业现有的 LDAP/AD 集成:
导航至 "系统设置" → "认证设置" → "LDAP"
配置 LDAP 服务器地址、绑定 DN、密码等参数
测试连接并保存
2. 多因素认证(MFA)
增强账户安全性:
导航至 "系统设置" → "安全设置"
启用 "二次认证" 选项
配置认证方式(如 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 堡垒机,企业可以快速构建一个安全、合规的运维审计系统。本文详细介绍了从环境准备、安装配置到日常管理的全流程,包括:
快速部署:使用官方脚本实现一键安装
灵活配置:支持自定义端口、数据库等关键参数
完善功能:提供资产管理、权限控制、操作审计等核心功能
高可靠性:通过备份恢复机制保障数据安全
JumpServer 作为开源堡垒机,不仅能满足中小企业简化运维权限管理的需求,也能支撑大型企业构建多层级安全防护体系。通过集中管控、权限精细分配和操作全链路审计,JumpServer 让运维操作真正实现 "可管、可控、可追溯",从根源上降低误操作和违规操作带来的风险。
随着企业安全意识的提升,堡垒机已成为 IT 基础设施中不可或缺的一环。JumpServer 凭借其开源特性、丰富功能和活跃社区,是构建安全运维体系的理想选择。