Docker 一键安装部署 JumpServer 堡垒机

[复制链接]
发表于 2025-7-6 19:27:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
一、环境准备

bash 
  1. # 更新系统
  2. sudo apt update && sudo apt upgrade -y
  3. # 安装 Docker
  4. sudo apt install -y docker.io docker-compose
  5. sudo systemctl enable --now docker
  6. # 配置 Docker 加速器(国内环境)
  7. sudo mkdir -p /etc/docker
  8. sudo tee /etc/docker/daemon.json <<EOF
  9. {
  10.   "registry-mirrors": [
  11.     "https://docker.mirrors.ustc.edu.cn",
  12.     "https://hub-mirror.c.163.com"
  13.   ]
  14. }
  15. EOF
  16. sudo systemctl restart docker
  17. # 创建部署目录
  18. sudo mkdir -p /opt/jumpserver && cd /opt/jumpserver
复制代码
三、初始设置与访问


  • 访问控制台:

    • 浏览器访问:https:// 或 https://jumpserver.yourdomain.com
    • 使用默认管理员账号:admin / admin

  • 首次登录强制修改密码:
    bash 
    1. # 下载官方 Docker-Compose 文件
    2. sudo curl -sSL https://github.com/jumpserver/jumpserver/releases/latest/download/docker-compose.yml -o docker-compose.yml
    3. # 下载环境配置文件模板
    4. sudo curl -sSL https://github.com/jumpserver/installer/releases/latest/download/config-example.txt -o config-example.txt
    5. # 生成配置文件(根据提示修改)
    6. sudo cp config-example.txt .env
    7. sudo nano .env
    复制代码
  • 基本设置:

    • 体系设置 → 基本设置 → 设置体系名称和域名
    • 体系设置 → 邮件设置 → 测试邮件发送
    • 体系设置 → 安全设置 → 设置密码策略和MFA

四、数据备份与恢复

1. 主动备份脚本

bash 
  1. # 关键配置项示例
  2. ## 设置强密码!!!
  3. SECRET_KEY=your_strong_secret_key_32_chars
  4. BOOTSTRAP_TOKEN=your_bootstrap_token_16_chars
  5. ## 数据库配置
  6. DB_PASSWORD=StrongDBPass123!
  7. ## 邮件配置(必填)
  8. EMAIL_HOST=smtp.example.com
  9. EMAIL_PORT=587
  10. EMAIL_HOST_USER=admin@example.com
  11. EMAIL_HOST_PASSWORD=EmailPass123!
  12. EMAIL_FROM=admin@example.com
  13. ## 域名配置
  14. DOMAINS=jumpserver.yourdomain.com
复制代码
2. 设置定时任务

bash 
  1. # 启动 JumpServer
  2. sudo docker-compose up -d
  3. # 查看启动状态
  4. sudo docker-compose ps
复制代码
cron 
  1.       Name                     Command               State           Ports
  2. --------------------------------------------------------------------------------
  3. jumpserver-core       /opt/startup.sh               Up      0.0.0.0:80->8080/tcp
  4. jumpserver-koko       /opt/entrypoint.sh            Up      5000/tcp, 0.0.0.0:2222->2222/tcp
  5. jumpserver-mariadb    docker-entrypoint.sh mysqld   Up      3306/tcp
  6. jumpserver-redis      docker-entrypoint.sh redis ... Up      6379/tcp
  7. jumpserver-web        /init                         Up      0.0.0.0:443->8443/tcp
复制代码
3. 灾难恢复流程

bash 
  1. # 如果忘记修改密码,可通过命令行重置
  2. sudo docker exec -it jumpserver-web python /opt/jumpserver/apps/manage.py changepassword admin
复制代码
五、扩展功能设置

1. 集成 LDAP/AD 认证


  • 登录 JumpServer → 体系设置 → 认证设置 → LDAP
  • 设置参数:
    ini 
    1. #!/bin/bash
    2. # /opt/jumpserver/backup.sh
    3. BACKUP_DIR="/backup/jumpserver/$(date +%Y%m%d)"
    4. mkdir -p $BACKUP_DIR
    5. # 备份数据库
    6. sudo docker exec jumpserver-mariadb mysqldump -uroot -p"${DB_PASSWORD}" jumpserver > $BACKUP_DIR/jumpserver.sql
    7. # 备份配置文件
    8. sudo cp /opt/jumpserver/{.env,docker-compose.yml} $BACKUP_DIR/
    9. # 备份持久化数据
    10. sudo tar -czf $BACKUP_DIR/volumes.tar.gz \
    11.   /opt/jumpserver/core/data \
    12.   /opt/jumpserver/koko/data \
    13.   /opt/jumpserver/web/data
    14. # 加密压缩
    15. gpg --batch --passphrase "YourBackupPass" --symmetric $BACKUP_DIR/*
    16. # 保留30天备份
    17. find /backup/jumpserver -type d -mtime +30 -exec rm -rf {} \;
    复制代码
  • 启用 "同步用户" 和 "创建用户"
2. 启用 Web Terminal 审计

yaml 
  1. sudo crontab -e
复制代码
3. 设置短信认证

bash 
  1. # 每天凌晨2点备份
  2. 0 2 * * * /bin/bash /opt/jumpserver/backup.sh
复制代码
在控制台:体系设置 → 短信设置 → 设置阿里云短信服务
4. 对接云平台主动同步资产

bash 
  1. # 1. 恢复数据库
  2. gunzip -c jumpserver.sql.gz | sudo docker exec -i jumpserver-mariadb mysql -uroot -p"${DB_PASSWORD}" jumpserver
  3. # 2. 恢复配置文件
  4. sudo cp /backup/jumpserver/20230101/{.env,docker-compose.yml} /opt/jumpserver/
  5. # 3. 恢复持久化数据
  6. sudo tar -xzf volumes.tar.gz -C /
  7. # 4. 重启服务
  8. sudo docker-compose down && sudo docker-compose up -d
复制代码
设置定时同步:
cron 
  1. LDAP服务器:ldap://your-ad-server
  2. 绑定DN:cn=admin,dc=example,dc=com
  3. 密码:LDAP_Password
  4. 用户OU:ou=users,dc=example,dc=com
  5. 用户过滤器:(objectClass=person)
复制代码
六、高可用部署(生产环境)

yaml 
  1. # 修改 docker-compose.yml
  2. services:
  3.   web:
  4.     environment:
  5.       # 启用会话录像
  6.       ENABLE_LION: "true"
  7.       # 配置录像存储路径
  8.       LION_VIDEO_DIR: "/opt/lion/video"
  9.     volumes:
  10.       - ./lion:/opt/lion
复制代码
启动命令:
bash 
  1. # 安装短信插件
  2. sudo docker exec -it jumpserver-web pip install jumpserver-sms-aliyun
  3. # 重启服务
  4. sudo docker-compose restart web
复制代码
七、安全加固措施

1. 防火墙设置

bash 
  1. # 创建同步脚本 /opt/jumpserver/sync_assets.sh
  2. #!/bin/bash
  3. # AWS 示例
  4. docker exec jumpserver-web python manage.py sync_instance_from_aws \
  5.   --access-key-id YOUR_AWS_KEY \
  6.   --secret-access-key YOUR_AWS_SECRET \
  7.   --regions us-east-1
复制代码
2. 安全设置

bash 
  1. # 每小时同步一次
  2. 0 * * * * /opt/jumpserver/sync_assets.sh
复制代码
yaml 
  1. # docker-compose-ha.yml
  2. version: '3.6'
  3. services:
  4.   core:
  5.     image: jumpserver/core:latest
  6.     deploy:
  7.       replicas: 3
  8.   web:
  9.     image: jumpserver/web:latest
  10.     deploy:
  11.       replicas: 2
  12.   db:
  13.     image: mariadb:10.6
  14.     environment:
  15.       MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
  16.       MYSQL_DATABASE: jumpserver
  17.     volumes:
  18.       - db-data:/var/lib/mysql
  19.     deploy:
  20.       placement:
  21.         constraints: [node.role == manager]
  22. volumes:
  23.   db-data:
  24.     driver: local
复制代码
3. 定期安全扫描

bash 
  1. sudo docker stack deploy -c docker-compose-ha.yml jumpserver
复制代码
八、注意事项


  • 版本升级:
    bash 
    1. sudo ufw default deny incoming
    2. sudo ufw allow 22/tcp      # SSH
    3. sudo ufw allow 80/tcp      # HTTP
    4. sudo ufw allow 443/tcp     # HTTPS
    5. sudo ufw allow 2222/tcp    # Koko SSH
    6. sudo ufw enable
    复制代码
  • 性能监控监控
    bash 
    1. # 修改 SSH 端口(可选)
    2. sudo nano /opt/jumpserver/docker-compose.yml
    复制代码
    访问 http://:8080 监控监控容器资源
  • 证书管理:

    • 使用 Let's Encrypt 主动续期:
      bash 
      1. services:
      2.   koko:
      3.     ports:
      4.       - "22222:2222"  # 改为非常用端口
      复制代码

  • 常见问题排查:
    bash 
    1. # 使用 Trivy 扫描容器漏洞
    2. sudo docker run --rm -v /var/run/docker.sock:/var/run/docker.sock aquasec/trivy:0.18.3 jumpserver/core:latest
    复制代码
  • 合规性要求:

    • 开启全部操作的审计日志日志
    • 设置会话录像保留180天
    • 启用双因素认证(MFA)
    • 定期审查授权规则

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

  • 安全补丁更新:sudo docker-compose pull
  • 备份恢复测试
  • 审计日志日志审查
  • 漏洞扫描与修复
  • 授权策略复核
JumpServer 官方文档https://docs.jumpserver.org/

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告
回复

使用道具 举报

×
登录参与点评抽奖,加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表