迫蔺 发表于 2025-9-25 21:14:56

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三、初始配置与访问


[*]访问控制台:

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

[*]首次登录强制修改密码:
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
[*]基本配置:

[*]系统设置 → 基本设置 → 配置系统名称和域名
[*]系统设置 → 邮件设置 → 测试邮件发送
[*]系统设置 → 安全设置 → 配置密码策略和MFA

四、数据备份与恢复

1. 自动备份脚本

bash # 关键配置项示例
## 设置强密码!!!
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.com2. 设置定时任务

bash # 启动 JumpServer
sudo docker-compose up -d

# 查看启动状态
sudo docker-compose pscron       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/tcp3. 灾难恢复流程

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

1. 集成 LDAP/AD 认证


[*]登录 JumpServer → 系统设置 → 认证设置 → LDAP
[*]配置参数:
ini #!/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. 启用 Web Terminal 审计

yaml sudo crontab -e3. 配置短信认证

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

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设置定时同步:
cron LDAP服务器:ldap://your-ad-server
绑定DN:cn=admin,dc=example,dc=com
密码:LDAP_Password
用户OU:ou=users,dc=example,dc=com
用户过滤器:(objectClass=person)六、高可用部署(生产环境)

yaml # 修改 docker-compose.yml
services:
web:
    environment:
      # 启用会话录像
      ENABLE_LION: "true"
      # 配置录像存储路径
      LION_VIDEO_DIR: "/opt/lion/video"
    volumes:
      - ./lion:/opt/lion启动命令:
bash # 安装短信插件
sudo docker exec -it jumpserver-web pip install jumpserver-sms-aliyun

# 重启服务
sudo docker-compose restart web七、安全加固措施

1. 防火墙配置

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-12. 安全配置

bash # 每小时同步一次
0 * * * * /opt/jumpserver/sync_assets.shyaml # 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:

volumes:
db-data:
    driver: local3. 定期安全扫描

bash sudo docker stack deploy -c docker-compose-ha.yml jumpserver八、注意事项


[*]版本升级:
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
[*]性能监控:
bash # 修改 SSH 端口(可选)
sudo nano /opt/jumpserver/docker-compose.yml访问 http://:8080 监控容器资源
[*]证书管理:

[*]使用 Let's Encrypt 自动续期:
bash services:
koko:
    ports:
      - "22222:2222"# 改为非常用端口

[*]常见问题排查:
bash # 使用 Trivy 扫描容器漏洞
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/

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: Docker 一键安装部署 JumpServer 堡垒机