RTBGG/Aegis

GitHub: RTBGG/Aegis

Aegis 是一个自托管的 Cloudflare 式边缘平台,将 DNS、反向代理、WAF、限流和机器人防护整合为一套可多租户管理的基础设施。

Stars: 0 | Forks: 0

# Aegis **Aegis** 允许你将域名的 nameserver 指向你自己的基础设施,并通过拨动每条记录的“代理”开关,将流量路由至边缘节点。该边缘节点可提供自动 SSL/TLS、HTTP→HTTPS、Web Application Firewall(通过 Coraza 实现的 OWASP Core Rule Set)、可自定义的 rate-limiting、JA4(H) 指纹识别、proof-of-work 机器人挑战、caching 以及带有健康检查的源站 load-balancing。Go 控制平面(以 PostgreSQL 作为唯一事实来源)驱动 PowerDNS 进行权威 DNS 解析,并通过轻量级 node-agent 将配置渲染至 Caddy 数据平面。支持在 Debian 13 上通过 Docker Compose 进行一体化部署。 **主题:** `waf` · `reverse-proxy` · `dns` · `cloudflare-alternative` · `coraza` · `owasp-crs` · `caddy` · `powerdns` · `ddos-protection` · `bot-detection` · `self-hosted` · `golang` · `nextjs` ## 架构(3 个平面) | 平面 | 组件 | |-------|-----------| | **控制平面** | Go API (`control-plane/`) + Next.js dashboard (`dashboard/`),PostgreSQL(事实来源),Redis | | **DNS 平面** | PowerDNS Authoritative(通过其 HTTP API 驱动) | | **数据平面(边缘)** | Caddy + Coraza/CRS + Souin cache + rate-limit + threat-feed IP blocklist + 自定义 `ja4`/`botscore`/`challenge` 模块 (`edge/`),外加一个 `node-agent` (`node-agent/`) | 控制平面是事实来源。它为每个边缘节点渲染一个 **Caddyfile bundle**;`node-agent` 拉取该配置(通过 HTTP 进行 long-poll,通过 Redis 进行 push-trigger),将其写入,并通过 Caddy 的 admin API 运行 `caddy reload`。 ``` visitor ──DNS──> PowerDNS (returns edge IP for proxied records) visitor ──TLS──> Caddy edge: nftables(L3/4) → ja4 → rate_limit → botscore → challenge → coraza(CRS) → cache → reverse_proxy → origin ``` ## 快速开始(一体化,Debian 13 或任何 Docker 主机) ``` cp .env.example .env # then edit the secrets make up # docker compose up -d --build make ps # wait for healthy ``` 在 `CONTROL_PLANE_URL` 打开 dashboard(默认为 `https://cp.localtest.me`,解析至 127.0.0.1)。使用 `.env` 中的 `BOOTSTRAP_ADMIN_*` 登录。 在全新的 Debian 13 主机上,`deploy/debian13/install-control-plane.sh` 会安装 Docker + compose 并启动整个技术栈。详情请参阅 `docs/runbook-debian13.md`。 ## 本地编译检查(无 Docker) 工具链可以位于用户空间中: ``` export PATH="$HOME/.local/go/bin:$HOME/.local/node/bin:$HOME/go/bin:$PATH" make build # compiles control-plane, node-agent, edge modules, dashboard make test ``` ## 布局 ``` control-plane/ Go API: auth, domains, dns, security, config, admin, store node-agent/ Go agent: config sync + apply to Caddy + telemetry edge/ Custom Caddy modules: ja4 (JA4H), botscore, challenge (PoW) dashboard/ Next.js + TS + Tailwind dashboard & admin deploy/ Caddy xcaddy build, docker-compose, Debian 13 scripts, nftables docs/ architecture, threat model, runbook ``` ## 安全提示 Aegis 是**防御性**基础设施(为你运营或托管的站点提供 WAF、rate-limiting、机器人/DDoS 防护)。边缘节点注册机制会执行有意的远程配置,并自带单次使用签名 token、TLS-pinned bootstrap 以及注册后的 mTLS。请参阅 `docs/threat-model.md`。
标签:Caddy, EVTX分析, Golang, WAF, 反向代理, 安全编程, 搜索引擎查询, 日志审计, 流量防护, 测试用例, 版权保护, 自托管, 边缘计算