[](https://github.com/anipaleja/nginx-defender/actions)
[](https://github.com/anipaleja/nginx-defender/pkgs/container/nginx-defender)
[](https://goreportcard.com/report/github.com/anipaleja/nginx-defender)
[](LICENSE)
[](https://golang.org/)
[](https://github.com/anipaleja/nginx-defender)


**具备高级威胁情报的企业级 Web 应用防火墙**
## 目录
点击展开
- [概述](#overview)
- [架构](#architecture)
- [核心特性](#core-features)
- [威胁检测引擎](#threat-detection-engine)
- [防火墙管理](#firewall-management)
- [监控与分析](#monitoring--analytics)
- [通知系统](#notification-system)
- [技术规格](#technical-specifications)
- [安装](#installation)
- [二进制文件安装](#binary-installation)
- [Docker 部署](#docker-deployment)
- [Kubernetes 部署](#kubernetes-deployment)
- [配置](#configuration)
- [API 参考](#api-reference)
- [性能基准测试](#performance-benchmarks)
- [安全注意事项](#security-considerations)
- [开发](#development)
- [许可证](#license)
## 概述
**nginx-defender** 是一个高性能、企业级的 Web 应用防火墙 (WAF) 和威胁检测系统,专为现代 Web 基础设施而设计。它使用 Go 语言构建,专为可扩展性而设计,提供实时威胁缓解、基于机器学习的异常检测以及全面的安全分析。
### 核心差异化优势
```
graph TD
A[Incoming Traffic] --> B[Log Parser]
B --> C[Threat Detection Engine]
C --> D[ML Anomaly Detection]
C --> E[Pattern Matching]
C --> F[Rate Limiting]
D --> G[Firewall Manager]
E --> G
F --> G
G --> H[iptables/nftables/pf]
G --> I[Notification System]
I --> J[Dashboard/API]
```
| 特性 | nginx-defender | 商业 WAF | 开源 WAF |
|---------|----------------|-----------------|------------------|
| **实时 ML 检测** | 原生 | 有限 | 无 |
| **多后端防火墙** | 5+ 后端 | 专有 | 有限 |
| **高级分析** | 内置 | 昂贵的附加组件 | 基础 |
| **地理情报** | 集成 | 需授权 | 手动 |
| **集群支持** | 原生 | 仅限企业版 | 无 |
| **容器就绪** | OCI 兼容 | 旧版 | 依赖繁重配置 |
## 架构
### 系统架构
高层架构图
```
┌────────────────────────────────────────────────────────────────┐
│ nginx-defender │
├────────────────────────────────────────────────────────────────┤
│ ┌───────────────┐ ┌──────────────┐ ┌─────────────────────┐ │
│ │ Log Monitor │ │ Threat Intel │ │ Web Dashboard │ │
│ │ (Async) │ │ (Real-time) │ │ (WebSocket) │ │
│ └───────┬───────┘ └──────┬───────┘ └─────────┬───────────┘ │
│ │ │ │ │
│ ┌───────▼─────────────────▼────────────────────▼───────────┐ │
│ │ Threat Detection Engine │ │
│ │ ┌─────────────┐ ┌──────────────┐ ┌─────────────────┐ │ │
│ │ │ Pattern │ │ ML Anomaly │ │ Rate Limiting │ │ │
│ │ │ Matcher │ │ Detection │ │ Engine │ │ │
│ │ └─────────────┘ └──────────────┘ └─────────────────┘ │ │
│ └─────────────────────────┬────────────────────────────────┘ │
│ │ │
│ ┌─────────────────────────▼────────────────────────────────┐ │
│ │ Firewall Manager │ │
│ │ ┌─────────────┐ ┌──────────────┐ ┌─────────────────┐ │ │
│ │ │ iptables │ │ nftables │ │ pf │ │ │
│ │ │ Backend │ │ Backend │ │ Backend │ │ │
│ │ └─────────────┘ └──────────────┘ └─────────────────┘ │ │
│ └─────────────────────────┬────────────────────────────────┘ │
│ │ │
│ ┌─────────────────────────▼────────────────────────────────┐ │
│ │ Multi-Channel Notification System │ │
│ │ Telegram │ Slack │ Email │ Webhook │ Discord │ │
│ └──────────────────────────────────────────────────────────┘ │
└────────────────────────────────────────────────────────────────┘
```
### 组件概览
| 组件 | 职责 | 技术 | 可扩展性 |
|-----------|---------------|------------|-------------|
| **日志监控器** | 实时日志解析与流处理 | Go channels, fsnotify | 水平扩展 |
| **检测引擎** | 威胁分析与分类 | 正则表达式, ML 算法 | 垂直扩展 |
| **防火墙管理器** | 规则应用与管理 | System calls, netlink | 水平扩展 |
| **通知系统** | 警报分发与升级 | HTTP clients, WebSockets | 水平扩展 |
| **Web 仪表盘** | 管理界面与分析 | HTTP server, 静态资源 | 水平扩展 |
| **指标收集器** | 性能与安全指标 | Prometheus client | 水平扩展 |
## 核心特性
### 威胁检测引擎
高级模式识别系统
#### 机器学习集成
- **行为分析**:使用滑动窗口进行统计异常检测
- **攻击向量化**:从 HTTP 请求中提取特征
- **模型训练**:从威胁模式中持续学习
- **误报率降低**:自适应阈值调整
#### 模式匹配引擎
```
# 示例威胁模式
patterns:
sql_injection:
regex: "(?i)(union|select|insert|update|delete|drop|exec|script)"
severity: 9
categories: ["injection", "database"]
xss_detection:
regex: "(?i)(