基于 Django 的企业级 Windows 主机远程管理平台
零代理架构 · WinRM 直连 · Gateway 隧道保护 · 可选部署
- 零代理架构:无需在目标主机安装客户端软件,通过 WinRM 协议直接管控
- Gateway 隧道保护:可选部署 Gateway,为零公网 IP 主机提供安全 RDP 访问
- Django Admin 优先:最大化利用 Django 内置管理功能,降低学习成本
- Material Design 3:现代化的前端用户体验,支持多主题切换
- RBAC 权限控制:细粒度的角色和权限管理,满足企业合规要求
- 安全审计:完整的操作日志和安全监控,支持行为分析
- 松耦合设计:Gateway 为可选组件,ZASCA 可独立运行
ZASCA 采用四层架构设计:
| 层级 | 组件 | 说明 |
|---|---|---|
| 管理层 | Django Admin | RBAC、审计、工单、插件、主题、主机保护配置 |
| 核心层 | ZASCA Django | WinRM 客户端、Celery 任务、GatewayClient、证书管理 |
| 网关层 | Gateway (Go) | RDP 代理 (SNI 路由)、WSS 隧道服务、控制面 (可选) |
| 边缘层 | zasca-tunnel (Go) | Windows 服务、WSS 客户端、多路复用、远程执行 |
Gateway 为可选组件:不部署 Gateway 时,ZASCA 通过 WinRM 直连管理主机,功能完全可用。部署 Gateway 后可启用主机保护模式,实现零公网 IP 的安全 RDP 访问。
| 项目 | 语言 | 说明 |
|---|---|---|
| ZASCA | Python/Django | 核心管理平台,Web 后台 + API |
| Gateway | Go | 隧道网关,RDP 代理 + WSS 服务 + 控制面 |
| Tunnel | Go | 边缘代理,Windows 服务 + WSS 客户端 |
- Python 3.13+(由
.python-version文件指定) - PostgreSQL 12+(可选,也可使用 SQLite)
- Go 1.22+(仅 Gateway/Tunnel 开发需要)
- 复制环境配置文件
cp .env.example .env- 编辑 .env 文件
nano .env- 关键配置项说明
DEBUG=True
SECRET_KEY=your-secret-key-here
# 数据库配置 (PostgreSQL)
DB_HOST=localhost
DB_PORT=5432
DB_NAME=zasca_dev
DB_USER=zasca_user
DB_PASSWORD=your_password
# Gateway (可选)
GATEWAY_ENABLED=False
GATEWAY_CONTROL_SOCKET=/run/zasca/control.sock
# 演示模式 (快速体验)
ZASCA_DEMO=1git clone https://github.com/zascateam/ZASCA.git
cd ZASCA
uv sync
uv run python manage.py migrate
uv run python manage.py createsuperuser
uv run python manage.py runserver访问 http://127.0.0.1:8000/admin/ 进入管理后台。
# 1. 构建并启动 Gateway
cd ../gateway
go build -o zasca-gateway ./cmd/gateway/
./zasca-gateway -config configs/gateway.yaml
# 2. 在 ZASCA .env 中启用
GATEWAY_ENABLED=True
# 3. 启动事件监听
uv run python manage.py gateway_listener
# 4. 为主机生成 Tunnel Token
uv run python manage.py generate_tunnel_token <host_id># 下载 zasca-tunnel.exe (从 GitHub Release)
# 或通过 CI/CD 自动打包
zasca-tunnel.exe install \
-token <TOKEN> \
-server wss://gateway.example.com:9000注意:本项目使用 UV 作为 Python 包管理器。所有 Python 命令都必须通过
uv run执行。
ZASCA/
├── apps/ # 应用模块
│ ├── accounts/ # 用户认证
│ ├── hosts/ # 主机管理 + 隧道连接
│ ├── operations/ # 运维操作 + RDP域名路由
│ ├── audit/ # 审计日志 + 隧道事件
│ ├── dashboard/ # 仪表盘
│ ├── bootstrap/ # 安全启动
│ ├── certificates/ # 证书管理
│ ├── plugins/ # 插件系统
│ └── themes/ # 主题管理
├── config/ # 项目配置
├── utils/ # 工具模块
│ ├── gateway_client.py # Gateway客户端(松耦合)
│ ├── winrm_client.py # WinRM客户端
│ └── ...
├── docs/ # 技术文档
├── frontend/ # 前端静态文件和模板
└── pyproject.toml # 项目依赖 (UV, 无Redis)
详细的项目文档请查看 docs/ 目录:
- 开发规范指南 - 强制执行的开发标准
- 项目架构与设计 - 系统架构和技术选型
- API接口文档 - RESTful API 详细说明
- Database Schema - 数据库设计和表结构
- 部署运维手册 - 生产环境部署指南
- 更新日志 - 版本发布历史
- 安全配置指南 - 安全策略和防护措施
- 基于角色的访问控制 (RBAC)
- 数据传输加密 (TLS/SSL)
- 敏感信息加密存储
- 完整的操作审计日志(含隧道/RDP事件)
- 多因素认证支持
- 防暴力破解机制
- 安全启动和会话管理
- 主机保护模式(Gateway 隧道隔离)
- Ed25519 密钥交换
我们欢迎任何形式的贡献!请先阅读我们的开发规范指南。
- Fork 项目
- 创建功能分支 (
git checkout -b feature/amazing-feature) - 提交更改 (
git commit -m 'Add some amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 开启 Pull Request
本项目采用 AGPL-3.0 许可证 - 查看 LICENSE 文件了解详情。
- 组织主页: https://github.com/zascateam
- ZASCA 仓库: https://github.com/zascateam/ZASCA
- 问题反馈: GitHub Issues
ZASCA - 让 Windows 主机管理更简单、更安全