一、环境准备

bash
 
# 更新系统
sudo apt update && sudo apt upgrade -y # 安装 Docker
sudo apt install -y docker.io docker-compose
sudo systemctl enable --now 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 restart docker # 创建部署目录
sudo mkdir -p /opt/jumpserver && cd /opt/jumpserver

二、一键部署 JumpServer

bash
 
# 下载官方 Docker-Compose 文件
sudo curl -sSL https://github.com/jumpserver/jumpserver/releases/latest/download/docker-compose.yml -o docker-compose.yml # 下载环境配置文件模板
sudo curl -sSL https://github.com/jumpserver/installer/releases/latest/download/config-example.txt -o config-example.txt # 生成配置文件(根据提示修改)
sudo cp config-example.txt .env
sudo nano .env
ini
 
# 关键配置项示例
## 设置强密码!!!
SECRET_KEY=your_strong_secret_key_32_chars
BOOTSTRAP_TOKEN=your_bootstrap_token_16_chars ## 数据库配置
DB_PASSWORD=StrongDBPass123! ## 邮件配置(必填)
EMAIL_HOST=smtp.example.com
EMAIL_PORT=587
EMAIL_HOST_USER=admin@example.com
EMAIL_HOST_PASSWORD=EmailPass123!
EMAIL_FROM=admin@example.com ## 域名配置
DOMAINS=jumpserver.yourdomain.com
bash
 
# 启动 JumpServer
sudo docker-compose up -d # 查看启动状态
sudo docker-compose ps

预期输出:

text
 
      Name                     Command               State           Ports
--------------------------------------------------------------------------------
jumpserver-core /opt/startup.sh Up 0.0.0.0:80->8080/tcp
jumpserver-koko /opt/entrypoint.sh Up 5000/tcp, 0.0.0.0:2222->2222/tcp
jumpserver-mariadb docker-entrypoint.sh mysqld Up 3306/tcp
jumpserver-redis docker-entrypoint.sh redis ... Up 6379/tcp
jumpserver-web /init Up 0.0.0.0:443->8443/tcp

三、初始配置与访问

  1. 访问控制台:

    • 浏览器访问:https://<服务器IP> 或 https://jumpserver.yourdomain.com

    • 使用默认管理员账号:admin / admin

  2. 首次登录强制修改密码:

    bash
     
    # 如果忘记修改密码,可通过命令行重置
    sudo docker exec -it jumpserver-web python /opt/jumpserver/apps/manage.py changepassword admin
  3. 基本配置:

    • 系统设置 → 基本设置 → 配置系统名称和域名

    • 系统设置 → 邮件设置 → 测试邮件发送

    • 系统设置 → 安全设置 → 配置密码策略和MFA


四、数据备份与恢复

1. 自动备份脚本
bash
 
#!/bin/bash
# /opt/jumpserver/backup.sh
BACKUP_DIR="/backup/jumpserver/$(date +%Y%m%d)"
mkdir -p $BACKUP_DIR # 备份数据库
sudo docker exec jumpserver-mariadb mysqldump -uroot -p"${DB_PASSWORD}" jumpserver > $BACKUP_DIR/jumpserver.sql # 备份配置文件
sudo cp /opt/jumpserver/{.env,docker-compose.yml} $BACKUP_DIR/ # 备份持久化数据
sudo 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. 设置定时任务
bash
 
sudo crontab -e
cron
 
# 每天凌晨2点备份
0 2 * * * /bin/bash /opt/jumpserver/backup.sh
3. 灾难恢复流程
bash
 
# 1. 恢复数据库
gunzip -c jumpserver.sql.gz | sudo docker exec -i jumpserver-mariadb mysql -uroot -p"${DB_PASSWORD}" jumpserver # 2. 恢复配置文件
sudo cp /backup/jumpserver/20230101/{.env,docker-compose.yml} /opt/jumpserver/ # 3. 恢复持久化数据
sudo tar -xzf volumes.tar.gz -C / # 4. 重启服务
sudo docker-compose down && sudo docker-compose up -d

五、扩展功能配置

1. 集成 LDAP/AD 认证
  1. 登录 JumpServer → 系统设置 → 认证设置 → LDAP

  2. 配置参数:

    ini
     
    LDAP服务器:ldap://your-ad-server
    绑定DN:cn=admin,dc=example,dc=com
    密码:LDAP_Password
    用户OU:ou=users,dc=example,dc=com
    用户过滤器:(objectClass=person)
  3. 启用 "同步用户" 和 "创建用户"

2. 启用 Web Terminal 审计
yaml
 
# 修改 docker-compose.yml
services:
web:
environment:
# 启用会话录像
ENABLE_LION: "true"
# 配置录像存储路径
LION_VIDEO_DIR: "/opt/lion/video"
volumes:
- ./lion:/opt/lion
3. 配置短信认证
bash
 
# 安装短信插件
sudo docker exec -it jumpserver-web pip install jumpserver-sms-aliyun # 重启服务
sudo docker-compose restart web

在控制台:系统设置 → 短信设置 → 配置阿里云短信服务

4. 对接云平台自动同步资产
bash
 
# 创建同步脚本 /opt/jumpserver/sync_assets.sh
#!/bin/bash
# AWS 示例
docker exec jumpserver-web python manage.py sync_instance_from_aws \
--access-key-id YOUR_AWS_KEY \
--secret-access-key YOUR_AWS_SECRET \
--regions us-east-1

设置定时同步:

cron
 
# 每小时同步一次
0 * * * * /opt/jumpserver/sync_assets.sh

六、高可用部署(生产环境)

yaml
 
# docker-compose-ha.yml
version: '3.6'
services:
core:
image: jumpserver/core:latest
deploy:
replicas: 3
web:
image: jumpserver/web:latest
deploy:
replicas: 2
db:
image: mariadb:10.6
environment:
MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
MYSQL_DATABASE: jumpserver
volumes:
- db-data:/var/lib/mysql
deploy:
placement:
constraints: [node.role == manager] volumes:
db-data:
driver: local

启动命令:

bash
 
sudo docker stack deploy -c docker-compose-ha.yml jumpserver

七、安全加固措施

1. 防火墙配置
bash
 
sudo ufw default deny incoming
sudo ufw allow 22/tcp # SSH
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS
sudo ufw allow 2222/tcp # Koko SSH
sudo ufw enable
2. 安全配置
bash
 
# 修改 SSH 端口(可选)
sudo nano /opt/jumpserver/docker-compose.yml
yaml
 
services:
koko:
ports:
- "22222:2222" # 改为非常用端口
3. 定期安全扫描
bash
 
# 使用 Trivy 扫描容器漏洞
sudo docker run --rm -v /var/run/docker.sock:/var/run/docker.sock aquasec/trivy:0.18.3 jumpserver/core:latest

八、注意事项

  1. 版本升级:

    bash
     
    # 1. 备份数据
    # 2. 停止服务
    sudo docker-compose down
    # 3. 更新镜像
    sudo docker-compose pull
    # 4. 启动服务
    sudo docker-compose up -d
  2. 性能监控:

    bash
     
    # 安装 cAdvisor
    sudo docker run \
    --volume=/:/rootfs:ro \
    --volume=/var/run:/var/run:ro \
    --volume=/sys:/sys:ro \
    --volume=/var/lib/docker/:/var/lib/docker:ro \
    --publish=8080:8080 \
    --detach=true \
    --name=cadvisor \
    google/cadvisor:latest

    访问 http://<服务器IP>:8080 监控容器资源

  3. 证书管理:

    • 使用 Let's Encrypt 自动续期:

      bash
       
      sudo docker run -it --rm --name certbot \
      -v "/etc/letsencrypt:/etc/letsencrypt" \
      -v "/var/lib/letsencrypt:/var/lib/letsencrypt" \
      certbot/certbot renew
  4. 常见问题排查:

    bash
     
    # 查看日志
    sudo docker-compose logs -f core
    sudo docker-compose logs -f web # 数据库连接测试
    sudo docker exec -it jumpserver-mariadb mysql -uroot -p${DB_PASSWORD} # 重置管理员密码
    sudo docker exec -it jumpserver-web python manage.py changepassword admin
  5. 合规性要求:

    • 开启所有操作的审计日志

    • 配置会话录像保留180天

    • 启用双因素认证(MFA)

    • 定期审查授权规则


通过以上步骤,您将获得一个安全、可靠的企业级堡垒机系统。建议每月执行以下维护任务:

  1. 安全补丁更新:sudo docker-compose pull

  2. 备份恢复测试

  3. 审计日志审查

  4. 漏洞扫描与修复

  5. 授权策略复核

JumpServer 官方文档:https://docs.jumpserver.org/

Docker 一键安装部署 JumpServer 堡垒机的更多相关文章

  1. 快速部署jumpserver堡垒机

    jumpserver版本:Version 1.4.1-2 (社区版) 主机IP地址:10.0.0.105 准备环境1.安装依赖yum -y install wget sqlite-devel xz g ...

  2. jumpserver堡垒机部署

    初稿(后面我有时间再整理一下,看能不能弄成自动化脚本安装): systemctl stop firewalld #关闭防火墙setenforce 0 #关闭selinuxyum install htt ...

  3. 使用Docker搭建Jumpserver堡垒机

    使用Docker搭建Jumpserver堡垒机 1.环境准备 操作系统:CentOS 7.6.1810 软件源:阿里云镜像 #内核版本(Docker 要求 CentOS 系统的内核版本高于 3.10) ...

  4. jumpserver 堡垒机环境搭建

    jumpserver 堡垒机环境搭建(图文详解) https://blog.csdn.net/my_bai/article/details/62226474   http://docs.jumpser ...

  5. 【转】jumpserver 堡垒机环境搭建(图文详解)

    jumpserver 堡垒机环境搭建(图文详解)   摘要: Jumpserver 是一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能.基于ssh协议来管理,客户端无需安装ag ...

  6. CentOS7下配置使用JumpServer 堡垒机 (图文教程)

    前面介绍了如何在<CentOS7下搭建JumpServer 堡垒机>,基于这篇文章的环境搭建过程,接着介绍安装后的的功能配置使用. 首次wbe登录,https://ip:80,默认账号密码 ...

  7. centos7部署teleport堡垒机

    Centos7.9部署Teleport堡垒机 简介 Teleport是一款简单易用的开源堡垒机系统,具有小巧.易用的特点,支持 RDP/SSH/SFTP/Telnet 协议的远程连接和审计管理.Tel ...

  8. jumpserver 堡垒机环境搭建(图文详解)

    摘要: Jumpserver 是一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能.基于ssh协议来管理,客户端无需安装agent. 特点: 完全开源,GPL授权 Python编 ...

  9. jumpserver 堡垒机环境搭建(图文具体解释)

    Jumpserver 是一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能.基于ssh协议来管理,客户端无需安装agent. 特点: 全然开源,GPL授权 Python编写.容易 ...

  10. 分布式实时日志系统(一)环境搭建之 Jstorm 集群搭建过程/Jstorm集群一键安装部署

    最近公司业务数据量越来越大,以前的基于消息队列的日志系统越来越难以满足目前的业务量,表现为消息积压,日志延迟,日志存储日期过短,所以,我们开始着手要重新设计这块,业界已经有了比较成熟的流程,即基于流式 ...

随机推荐

  1. Docker 实用镜像

    实用镜像 nginx-proxy nginx-proxy sets up a container running nginx and docker-gen. ...

  2. study Rust-5【Slice】

    另一个没有所有权的数据类型是 slice.slice 允许你引用集合中一段连续的元素序列,而不用引用整个集合. [字符串Slice熟悉掌握的很勉强,通过动手来进步加深认识] 字符串slice let ...

  3. ro在xe10.3上的安装

    在学习研究RO. RO9.2.101.1295在xe10.3上安装遇到新问题.记录处理的办法: 没有采用执行exe安装的方法.而是采用复制源代码后编译安装. 1.把生成的bpl.dcp安装到默认目录, ...

  4. 9. RabbitMQ 消息队列幂等性,优先级队列,惰性队列的详细说明

    9. RabbitMQ 消息队列幂等性,优先级队列,惰性队列的详细说明 @ 目录 9. RabbitMQ 消息队列幂等性,优先级队列,惰性队列的详细说明 1. RabbitMQ 消息队列的 " ...

  5. spring项目使用EMQX,使用@Autowired注入失败报错空指针问题记录

    目录 java客户端使用MQTT订阅消息大致流程 MQTTConnect部分代码 MQTTListener部分代码 问题分析 问题原因 解决方法 总结 参考 java客户端使用MQTT订阅消息大致流程 ...

  6. 如何使用 MySQL 的 EXPLAIN 语句进行查询分析?

    如何使用 MySQL 的 EXPLAIN 语句进行查询分析? EXPLAIN 是 MySQL 提供的分析 SQL 查询执行计划的工具,用于了解查询语句的执行过程,帮助优化查询性能. 1. EXPLAI ...

  7. HTML用JS导出Excel的五种方法,无需js-xlsx库

    原文地址:https://blog.csdn.net/aa122273328/article/details/50388673 这五种方法前四种方法只支持IE浏览器,最后一个方法支持当前主流的浏览器( ...

  8. 题解:CF280B Maximum Xor Secondary

    由于正求次大值比较困难,不如逆向思考. 由次大值来找最大值,即对于每个 iii,找到一个 jjj,满足 j<ij<ij<i 并且 ai<aja_i<a_jai​<a ...

  9. MCP协议Streamable HTTP

    一.概述 2025 年 3 月 26 日,模型上下文协议(Model Context Protocol,简称 MCP)引入了一项关键更新:用 Streamable HTTP 替代原先的 HTTP +  ...

  10. 漏洞预警 | Netis Wifi路由器信息泄露漏洞

    0x00 漏洞编号 CVE-2024-48455 0x01 危险等级 高危 0x02 漏洞概述 Netis Wi-Fi路由器以其稳定的性能.易用的管理界面以及较高的性价比受到许多用户的青睐. 0x03 ...