AevonXApp/AXCerberus
GitHub: AevonXApp/AXCerberus
基于 Go 和 Coraza 引擎的高性能反向代理 WAF,集成 12 个安全模块提供一站式 Web 应用防护。
Stars: 0 | Forks: 1
AXCerberus WAF
高性能 Go 语言 Layer 7 Web Application Firewall
独立的反向代理 WAF,集成 Coraza 引擎、DDoS 防护、蜜罐陷阱、撞库检测、数据泄露防护及 SSRF 防护。
## 概述
AXCerberus 是一款企业级 Web Application Firewall,作为反向代理运行于互联网和您的 Web 服务器之间。每个 HTTP/HTTPS 请求都会通过 AXCerberus,经过 12 个独立的安全模块检查,然后转发到上游服务器或被阻止。
```
Internet → [:80/:443] AXCerberus WAF → [:8181] Nginx/Apache/LiteSpeed → Application
```
它被设计为 [AevonX](https://aevonx.app) 服务器管理平台的插件,但可以作为独立的 Linux 二进制文件运行,无任何外部依赖(单一静态二进制文件,无 CGO)。
## 架构
```
┌─────────────────────────────────────────────────────────┐
│ HTTP Request │
└───────────────────────┬─────────────────────────────────┘
▼
┌─────────────────┐
│ IP Guard │ Allow/Blocklist, CIDR, Auto-Escalation
├─────────────────┤
│ GeoIP │ Country Blocklist/Allowlist (MaxMind)
├─────────────────┤
│ Rate Limiter │ Sliding Window, Per-IP Per-Endpoint
├─────────────────┤
│ DDoS Shield │ EWMA Baseline, Spike Detection, 3 Levels
├─────────────────┤
│ Bot Detector │ 52 UA Patterns (18 good, 34 malicious)
├─────────────────┤
│ Honeypot │ Trap Paths, Fake Pages, Auto-Block
├─────────────────┤
│ SSRF Guard │ Internal IP, Metadata, Dangerous Schemes
├─────────────────┤
│ Credential │ Login Velocity, Brute Force Detection
├─────────────────┤
│ Coraza WAF │ 4-Phase Inspection (ModSecurity Rules)
├─────────────────┤
│ DLP Scanner │ Response Body: CC, API Keys, Stack Traces
└────────┬────────┘
▼
┌─────────────────┐
│ Upstream Server │ Nginx / Apache / LiteSpeed
└─────────────────┘
```
所有模块均实现 `Middleware` 接口(`func(http.Handler) http.Handler`),并通过 `pipeline.Chain()` 组合。每个模块均可通过 `config.avx` 独立启用/禁用。
## 安全模块
### 1. Coraza WAF 引擎
兼容 ModSecurity 的规则引擎,进行 4 阶段请求/响应检查。内置 5 个规则文件,覆盖 SQL 注入、XSS、路径遍历、命令注入、Log4Shell、RFI、HTTP 走私和敏感文件访问。
### 2. IP Guard
支持 CIDR 的单 IP 并发限制。自动封锁升级:**5 分钟 → 1 小时 → 24 小时 → 永久**。基于文件的白名单/黑名单。
### 3. GeoIP 封锁
使用 MaxMind GeoLite2 数据库进行国家级别封锁。两种模式:`blocklist`(封锁列表中的国家)和 `allowlist`(仅允许列表中的国家)。
### 4. 自适应速率限制器
采用滑动窗口算法(而非固定窗口),按 IP 和端点进行追踪。可配置全局(300/分钟)、登录(10/分钟)和 API(120/分钟)端点的限制。可选的节流模式增加渐进式延迟,而非硬性阻断。
### 5. DDoS L7 防护
基于 EWMA(指数加权移动平均)的基线学习与峰值检测。三种自动缓解级别。可配置限制的单 IP 连接追踪。
### 6. Bot 检测器
User-Agent 分类,包含 52 种模式:18 种已验证 Bot(Googlebot、Bingbot 等)和 34 种恶意扫描器(sqlmap、Nikto、Nuclei 等)。评分等级:Human、Verified Bot、Likely Bot、Suspicious、Malicious。
### 7. 蜜罐陷阱
可配置的陷阱路径(`/wp-admin`、`/phpmyadmin`、`/.env`、`/.git/config` 等),返回逼真的虚假页面。任何触碰陷阱的 IP 将被自动封锁。虚假页面包括:WordPress 登录页、phpMyAdmin、`.env` 文件、`.git/config`。
### 8. 撞库检测
监控可配置的登录路径(POST 请求至 `/login`、`/signin`、`/api/auth`、`/wp-login.php`)。通过滑动窗口追踪单 IP 登录速度。超过阈值时自动封锁。
### 9. 数据泄露防护 (DLP)
扫描响应体以检测敏感数据泄露:
- **信用卡**:Visa、Mastercard、Amex,含 Luhn 校验
- **API 密钥**:AWS (`AKIA...`)、GitHub (`ghp_...`)、Stripe (`sk_live_...`)
- **堆栈跟踪**:PHP、Python、Java、Node.js、Go、.NET
- **数据库错误**:MySQL、PostgreSQL 语法错误
- **内部 IP**:响应中的 10.x、172.16-31.x、192.168.x
三种模式:`block`(返回 500)、`mask`(替换为 `[REDACTED]`)、`log`(仅记录)。
### 10. SSRF 防护
通过检测请求参数中的内部 IP、云元数据端点(`169.254.169.254`、`metadata.google.internal`)和危险 URL scheme(`file://`、`gopher://`、`dict://`)来阻止服务器端请求伪造 (SSRF)。
### 11. 告警系统
中央调度器,支持 webhook 投递。按事件类型节流(每小时最多 N 条告警)。严重级别:low、medium、high、critical。可配置最低严重级别阈值。
### 12. 统计 API
本地 REST API,监听 `127.0.0.1:9443`(通过 AevonX 应用的 SSH 隧道访问)。提供实时指标、攻击时间线、顶级攻击者、DDoS 状态、蜜罐命中情况等端点。
## 项目结构
```
AXCerberus/
├── cmd/axcerberus/
│ └── main.go Entry point, signal handling, SIGHUP reload
├── internal/
│ ├── config/config.go Config loader (config.avx JSON schema)
│ ├── logger/logger.go 4-channel slog (access, error, warning, security)
│ ├── pipeline/pipeline.go Middleware chain: Chain(m1, m2, ...) → handler
│ ├── proxy/
│ │ ├── server.go Reverse proxy with middleware composition
│ │ ├── deps.go Dependency injection struct
│ │ └── ipguard.go IP guard with escalated blocking
│ ├── waf/
│ │ ├── engine.go Coraza WAF builder + attack type mapping
│ │ └── handler.go 4-phase inspection middleware
│ ├── geoip/
│ │ ├── geoip.go MaxMind DB lookup
│ │ └── blocker.go Country blocking middleware
│ ├── ratelimit/limiter.go Sliding window rate limiter
│ ├── bot/detector.go UA-based bot classification
│ ├── honeypot/
│ │ ├── engine.go Trap path management + auto-block
│ │ └── pages.go Fake response pages
│ ├── ddos/shield.go EWMA baseline + spike detection
│ ├── credential/detector.go Login velocity tracking
│ ├── dlp/
│ │ ├── scanner.go Response body scanning middleware
│ │ └── patterns.go Regex patterns + Luhn validation
│ ├── ssrf/detector.go Internal IP + metadata detection
│ ├── alert/
│ │ ├── dispatcher.go Event routing + throttling
│ │ └── webhook.go HTTP POST JSON sender
│ ├── stats/
│ │ ├── stats.go In-memory counters (atomic)
│ │ └── api.go REST API endpoints
│ └── cli/exec.go 23 CLI actions for AevonX plugin system
├── tests/ 14 test suites
├── dist/
│ ├── setup.sh WAF-specific server setup (158 lines)
│ ├── uninstall.sh WAF-specific teardown (121 lines)
│ ├── config.avx Plugin configuration schema (17 sections)
│ ├── hooks/_manifest.json Plugin manifest with lifecycle
│ └── rules/*.conf 5 OWASP CRS rule files
├── Makefile
├── go.mod
└── go.sum
```
**源代码**:24 个 Go 文件,14 个测试文件 — **共 6,810 行代码**。
## 依赖
| 依赖 | 用途 |
|---|---|
| [coraza/v3](https://github.com/corazawaf/coraza) v3.3.3 | 兼容 ModSecurity 的 WAF 引擎 |
| [google/uuid](https://github.com/google/uuid) v1.6.0 | 唯一请求/告警 ID |
| [oschwald/maxminddb-golang](https://github.com/oschwald/maxminddb-golang) v1.13.1 | GeoLite2 MaxMind DB 读取器 |
零 CGO。单一静态二进制文件。无运行时依赖。
## 构建
```
# 先决条件:Go 1.25+
# 为 Linux x86_64 构建(大多数云服务器)
make build
# 为 Linux ARM64 构建(AWS Graviton, Oracle Ampere, Raspberry Pi)
make build-arm64
# 构建两种架构
make build-all
# 构建 + 打包 ZIP 以便部署
make zip
# 构建特定版本
make zip VERSION=1.0.0
# 运行测试
make test
```
输出位于 `build/` 目录(通过 `.gitignore` 排除在 git 之外):
```
build/
├── axcerberus-linux-amd64 11 MB static binary
├── axcerberus-linux-arm64 10 MB static binary
└── axcerberus-v1.0.0.zip 8.1 MB deployment package
```
## 部署
AXCerberus 作为 AevonX 插件部署。ZIP 包通过 AevonX 应用上传到服务器,PluginManager 自动处理整个生命周期。
### PluginManager 职责(源自 `_manifest.json` 生命周期):
- 目录创建(`/etc/aevonx/plugins/axcerberus/`、`/var/log/aevonx/plugins/axcerberus/`)
- 带架构检测的二进制安装(`uname -m`)
- Systemd 服务生成、启用及启动
- 钩子注册及升级时 `config.avx` 保留
### `setup.sh` 职责(WAF 专用):
1. 创建 `aevonx-waf` 服务用户
2. 下载 GeoLite2 国家数据库
3. 检测 Web 服务器(Nginx、Apache2、httpd、OpenLiteSpeed、LiteSpeed Enterprise)
4. 将 Web 服务器从端口 80 切换到空闲端口(8181+)
5. 更新 `config.avx` upstream 指向切换后的 Web 服务器
6. 创建 IP 白名单/黑名单文件
### `uninstall.sh` 职责(WAF 专用):
1. 从配置中读取 upstream 端口
2. 将 Web 服务器恢复至端口 80
3. 恢复原始 Nginx 配置(certbot 重定向)
### 支持的 Web 服务器
| 服务器 | 服务 | 配置格式 |
|--------|---------|---------------|
| Nginx | `nginx` | `listen 80;` 指令 |
| Apache (Debian/Ubuntu) | `apache2` | `/etc/apache2/ports.conf` |
| Apache (RHEL/CentOS) | `httpd` | `/etc/httpd/conf/httpd.conf` |
| OpenLiteSpeed | `lshttpd` | XML `
*:80` |
| LiteSpeed Enterprise | `lsws` | 配置 `address *:80` |
### 支持的 Linux 发行版
Ubuntu 18+, Debian 10+, CentOS 7+, RHEL 8+, AlmaLinux 8+, Rocky Linux 8+, Amazon Linux 2+
## 配置
所有设置通过 `config.avx`(JSON schema 格式)管理,可通过 AevonX 应用 UI 编辑或直接在服务器上修改。
**17 个配置部分:**
| 部分 | 关键设置 |
|---------|-------------|
| Network | 监听地址、upstream 服务器、TLS 证书/密钥、代理头 |
| Routing | 允许的域名(支持通配符)、路径前缀 |
| WAF Protection | 启用/禁用、规则文件 glob、异常评分阈值 |
| IP Guard | 单 IP 最大并发数、封锁时长、自动升级 |
| URL Lists | URL 白名单/黑名单 |
| GeoIP Blocking | 数据库路径、黑名单/白名单模式、国家代码 |
| Rate Limiting | 全局(300/分钟)、登录(10/分钟)、API(120/分钟)、节流模式 |
| Bot Detection | 启用/禁用基于 UA 的分类 |
| Honeypot Traps | 启用、陷阱路径、触碰自动封锁 |
| DDoS Shield | 启用、自动缓解、峰值倍数、最大连接数 |
| Credential Protection | 启用、登录路径、单 IP/用户名最大尝试次数 |
| Data Leak Prevention | 启用、模式、信用卡、API 密钥、堆栈跟踪 |
| SSRF Prevention | 启用内部 IP + 元数据 + scheme 封锁 |
| Alerts | 启用、webhook URL、每小时最大数、严重级别阈值 |
| Stats API | 启用、监听地址(localhost:9443) |
| Timeouts | 读/写超时秒数 |
| Logging | 访问、错误、警告、安全日志文件路径 |
## 测试
```
make test
```
14 个测试套件覆盖所有安全模块:
| 测试套件 | 测试内容 |
|---|---|
| `pipeline_test.go` | 中间件链组合、排序、阻断 |
| `config_test.go` | 配置加载、验证、默认值、分割辅助函数 |
| `ipguard_test.go` | 允许/封锁、CIDR、升级(5分→1时→24时→永久) |
| `ratelimit_test.go` | 滑动窗口、按端点限制、节流模式 |
| `honeypot_test.go` | 陷阱检测、自动封锁回调、虚假页面 |
| `ddos_test.go` | 基线学习、连接限制、缓解级别 |
| `credential_test.go` | 暴力破解检测、回调、多路径 |
| `dlp_test.go` | Luhn 校验、信用卡/API 密钥/堆栈跟踪检测、阻断/脱敏/日志模式 |
| `ssrf_test.go` | 内部 IP、元数据端点、危险 scheme |
| `alert_test.go` | 调度、严重级别过滤、按类型节流、环形缓冲区 |
| `bot_test.go` | Human、已验证 bot (5)、恶意扫描器 (7)、评分 |
| `stats_test.go` | 计数器、防护率、时间线、顶级攻击者 |
| `waf_test.go` | 攻击类型提取(12 类) |
| `geoip_test.go` | Nil 安全性、国家集合、大写标准化 |
## WAF 规则
内置 5 个 Coraza(兼容 ModSecurity)规则文件:
| 文件 | 覆盖范围 |
|------|----------|
| `default-rules.conf` | SQL 注入、XSS、路径遍历、LFI、RFI、命令注入、Log4Shell、HTTP 走私、扫描器检测、敏感文件访问 |
| `api-protection.conf` | API 端点滥用、JSON 注入 |
| `bot-detection.conf` | 恶意 bot User-Agent 模式 |
| `php-protection.conf` | PHP eval 注入、文件上传滥用 |
| `wordpress-protection.conf` | WordPress xmlrpc、wp-admin 暴力破解 |
规则使用 Coraza 的 `SecRule` 语法,进行 4 阶段检查:
1. **Phase 1** — 请求头(URI、方法、Host)
2. **Phase 2** — 请求体(POST 参数、JSON payload)
3. **Phase 3** — 响应头
4. **Phase 4** — 响应体(DLP 扫描)
## 统计 API 端点
本地 REST API,监听 `127.0.0.1:9443`(通过 SSH 隧道访问):
```
GET /api/v1/stats/overview Full dashboard metrics
GET /api/v1/stats/timeline Attack timeline (24h buckets)
GET /api/v1/stats/attack-types Attack type distribution
GET /api/v1/stats/top-attackers Top blocked IPs
GET /api/v1/stats/top-uris Most targeted URIs
GET /api/v1/stats/countries Requests by country
GET /api/v1/stats/domains Per-domain statistics
GET /api/v1/ddos/status DDoS shield status + mitigation level
GET /api/v1/honeypot/hits Recent honeypot interactions
GET /api/v1/credential/status Credential protection stats
GET /api/v1/blocklist Current IP blocklist
GET /api/v1/allowlist Current IP allowlist
POST /api/v1/blocklist/add Add IP to blocklist
POST /api/v1/blocklist/remove Remove IP from blocklist
POST /api/v1/allowlist/add Add IP to allowlist
POST /api/v1/allowlist/remove Remove IP from allowlist
GET /healthz Health check (200 OK)
```
## CLI 操作
二进制文件支持 23 个 CLI 执行操作,用于与 AevonX 插件系统集成:
```
axcerberus exec waf.stats.overview
axcerberus exec waf.blocklist.add '{"ip":"1.2.3.4"}'
axcerberus exec waf.service.status
```
## 许可证
版权所有 (c) 2026 AevonX。保留所有权利。
本软件为专有且机密。未经 AevonX 事先书面许可,
严禁以任何形式或出于任何目的复制、分发、修改或使用本软件
(无论是全部还是部分)。
有关许可咨询,请联系:developers@aevonx.app
标签:AppImage, CISA项目, Coraza, DDoS防护, EVTX分析, Go语言, HTTP安全, IP 地址批量处理, SSRF防护, WAF, Web应用防火墙, 中间件, 反向代理, 安全网关, 应用层防御, 撞库检测, 日志审计, 程序破解, 网络安全, 自动化扫描, 蜜罐, 证书利用, 隐私保护, 零依赖