動態

詳情 返回 返回

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/

user avatar developer-tianyiyun 頭像 Serverless 頭像
點贊 2 用戶, 點贊了這篇動態!
點贊

Add a new 評論

Some HTML is okay.