Skip to content

zascateam/ZASCA

Repository files navigation

ZASCA Logo

ZASCA - Zero Agent Security Control Architecture

基于 Django 的企业级 Windows 主机远程管理平台
零代理架构 · WinRM 直连 · Gateway 隧道保护 · 可选部署

Python 3.13+ Django 5.x Go 1.22+ License: AGPL-3.0


核心特性

核心特性

  • 零代理架构:无需在目标主机安装客户端软件,通过 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 开发需要)

环境配置

  1. 复制环境配置文件
cp .env.example .env
  1. 编辑 .env 文件
nano .env
  1. 关键配置项说明
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=1

开发环境搭建

git 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/ 进入管理后台。

启用 Gateway(可选)

# 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>

部署 Tunnel 到 Windows 主机

# 下载 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/ 目录:

安全特性

  • 基于角色的访问控制 (RBAC)
  • 数据传输加密 (TLS/SSL)
  • 敏感信息加密存储
  • 完整的操作审计日志(含隧道/RDP事件)
  • 多因素认证支持
  • 防暴力破解机制
  • 安全启动和会话管理
  • 主机保护模式(Gateway 隧道隔离)
  • Ed25519 密钥交换

贡献指南

我们欢迎任何形式的贡献!请先阅读我们的开发规范指南

开发流程

  1. Fork 项目
  2. 创建功能分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m 'Add some amazing feature')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 开启 Pull Request

许可证

本项目采用 AGPL-3.0 许可证 - 查看 LICENSE 文件了解详情。

联系我们


ZASCA - 让 Windows 主机管理更简单、更安全

About

A Zero Agent Share Computer Multi-machine management Tools/一个不需要在共享计算机上额外安装软件的多机管理工具

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors