Docker 一键安装部署 JumpServer 堡垒机

一、环境准备

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/

相关推荐
A小辣椒4 小时前
TShark:基础知识
linux
AlfredZhao6 小时前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao20 小时前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334661 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪1 天前
linux 拷贝文件或目录到指定的位置
linux
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush42 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5202 天前
Linux 11 动态监控指令top
linux
不会C语言的男孩2 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
古城小栈2 天前
Unix 与 Linux 异同小叙
linux·服务器·unix