ebpfsentinel/ebpfsentinel
GitHub: ebpfsentinel/ebpfsentinel
基于 eBPF 和 Rust 构建的高性能一体化网络安全代理,在 Linux 内核中实现防火墙、入侵检测、DDoS 缓解和威胁情报等企业级安全功能。
Stars: 1 | Forks: 0
# eBPFsentinel
由 eBPF 驱动的高性能网络安全代理。以线速监控、过滤和保护网络流量,几乎零开销。完全使用 Rust 编写。
## 功能简介
eBPFsentinel 将有状态防火墙、入侵检测、速率限制和威胁情报整合到一个代理中,通过 eBPF 直接在 Linux 内核中运行 —— 无需内核模块,无需将数据包复制到用户空间。
### 网络安全
- **有状态防火墙** —— 具有连接跟踪、CIDR 匹配、IP 集别名、GeoIP 国家阻断 (LPM Trie)、安全区域、VLAN 过滤、基于时间表的规则以及 IPv4/IPv6 双栈支持的 L3/L4 数据包过滤
- **NAT** —— 支持 SNAT、DNAT、伪装、端口转发、1:1 NAT 及完整的数据包重写 (IPv4/IPv6)
- **速率限制** —— 基于 IP 的防护,提供 5 种算法 (令牌桶、固定窗口、滑动窗口、漏桶、SYN cookie),并通过内核侧 LPM Trie 查询实现按国家分级
- **DDoS 缓解** —— 检测并缓解 SYN 洪水、UDP 放大、ICMP/RST/FIN/ACK 洪水及流量型攻击,支持按国家设定检测阈值,并通过 LPM 映射自动阻断国家 CIDR
- **L7 防火墙** —— 针对 HTTP、TLS/SNI、gRPC、SMTP、FTP 和 SMB 的应用层过滤,支持基于 GeoIP 的源/目的国家匹配
- **数据包清洗** —— 内核侧流量标准化 (TTL、MSS 钳位、DF 清除、IP ID 随机化)
- **多 WAN 路由** —— 基于策略的网关选择,支持 ICMP/TCP 健康检查、故障转移和地理网关偏好 (preferred_for_countries)
- **L4 负载均衡器** —— TCP/UDP/TLS 透传负载均衡,支持轮询、加权、IP 哈希和最少连接算法
### 威胁检测与防御
- **IDS/IPS** —— 入侵检测与防御,支持模式匹配、按国家采样、按国家设定检测阈值,并通过 LPM 映射针对高风险国家自动阻断 /24 子网
- **威胁情报** —— OSINT 源集成,支持 IOC 关联、自动阻断以及对高风险源国家的置信度加成
- **GeoIP 阻断** —— 基于 MaxMind 数据库的国家流量阻断,具备 O(log n) 内核侧 LPM Trie 查询、自动周期性刷新,并通过协同 LPM 映射实现跨域执行 (DDoS 自动阻断、IPS /24 注入、速率限制国家分级)
- **DLP** —— 数据防泄漏,扫描 SSL/TLS 流量以检测敏感数据模式 (PCI、PII、凭证)
- **DNS 情报** —— 被动 DNS 捕获、域名黑名单、行为信誉评分(含高风险国家因子),以及基于 DNS 的告警富化
### 运维操作
- **REST API** —— 支持 OpenAPI 3.0 和 Swagger UI
- **gRPC 流** —— 用于实时告警订阅
- **Prometheus 指标** —— 包含按域计数器、直方图、内核侧 eBPF 计数器和系统级跟踪
- **告警管道** —— 路由至电子邮件、Webhook 和日志接收器
- **审计追踪** —— 规则变更历史记录
- **热重载** —— 无需重启即可更新配置 (文件监视器、SIGHUP 或 API)
- **CLI** —— 包含 11 个涵盖所有端点的域子命令
- **JWT/OIDC/API 密钥认证** —— 支持基于角色的访问控制
- **TLS 1.3** —— 用于 REST 和 gRPC
## 快速开始
**系统要求:** Linux 内核 5.17+ (带 BTF),Rust stable + nightly
```
# 构建
cargo build --release
cargo xtask ebpf-build
# 运行
sudo ./target/release/ebpfsentinel-agent --config config/ebpfsentinel.yaml
```
或者使用 Docker:
```
docker run --privileged --network host \
-v ./config:/etc/ebpfsentinel \
ebpfsentinel-agent:latest
```
最小化配置 —— 仅需指定接口:
```
agent:
interfaces: [eth0]
```
详细的设置说明请参阅 [入门指南](https://github.com/ebpfsentinel/ebpfsentinel-docs/blob/main/getting-started/quickstart.md)。
## 文档
完整文档可在 [ebpfsentinel/ebpfsentinel-docs](https://github.com/ebpfsentinel/ebpfsentinel-docs) 获取:
| 版块 | 描述 |
| ------- | ----------- |
| [入门指南](https://github.com/ebpfsentinel/ebpfsentinel-docs/blob/main/getting-started/quickstart.md) | 安装、先决条件、首次运行 |
| [功能特性](https://github.com/ebpfsentinel/ebpfsentinel-docs/blob/main/features/overview.md) | 详细功能指南 (防火墙、IDS、DLP 等) |
| [配置说明](https://github.com/ebpfsentinel/ebpfsentinel-docs/blob/main/configuration/overview.md) | 所有部分的 YAML 参考 |
| [架构设计](https://github.com/ebpfsentinel/ebpfsentinel-docs/blob/main/architecture/overview.md) | 六边形/DDD 设计、eBPF 管道、数据流 |
| [内核参考](https://github.com/ebpfsentinel/ebpfsentinel-docs/blob/main/kernel/overview.md) | eBPF 程序、映射、辅助函数、管道 |
| [REST API](https://github.com/ebpfsentinel/ebpfsentinel-docs/blob/main/api-reference/rest-api.md) | 所有端点及请求/响应格式 |
| [gRPC API](https://github.com/ebpfsentinel/ebpfsentinel-docs/blob/main/api-reference/grpc-api.md) | 告警流服务 |
| [CLI 参考](https://github.com/ebpfsentinel/ebpfsentinel-docs/blob/main/cli-reference/index.md) | 所有命令和选项 |
| [Prometheus 指标](https://github.com/ebpfsentinel/ebpfsentinel-docs/blob/main/api-reference/prometheus-metrics.md) | 指标名称和标签 |
| [部署指南](https://github.com/ebpfsentinel/ebpfsentinel-docs/blob/main/operations/deployment/docker.md) | Docker、Kubernetes、二进制 |
| [安全说明](https://github.com/ebpfsentinel/ebpfsentinel-docs/blob/main/architecture/security-model.md) | TLS、认证、加固 |
| [开发指南](https://github.com/ebpfsentinel/ebpfsentinel-docs/blob/main/development/building.md) | 构建、测试、贡献 |
| [使用示例](https://github.com/ebpfsentinel/ebpfsentinel-docs/blob/main/examples/index.md) | 真实部署场景 |
各功能的配置示例位于 [`config/examples/`](config/examples/)。
## 兼容性
- **操作系统:** 仅限 Linux (内核 5.17+ 带 BTF)
- **发行版:** Debian 12+、Ubuntu 22.04+、RHEL 9+、Fedora 37+、Alpine 3.18+、Arch、NixOS、Talos
- **架构:** x86_64 (主要)、aarch64 (交叉测试)
- **运行时:** Docker、Podman、Kubernetes (DaemonSet)、Nomad
完整对照表请见 [兼容性](https://github.com/ebpfsentinel/ebpfsentinel-docs/blob/main/operations/compatibility.md)。
## 开源版 vs 企业版
开源代理包含所有安全域、API、CLI、认证和可观测性功能。我们也提供企业版本,详情请见 [企业版功能](https://github.com/ebpfsentinel/ebpfsentinel-docs/blob/main/features/enterprise/overview.md)。
## 许可证
GNU Affero General Public License v3.0 —— 详见 [LICENSE](LICENSE)。
标签:AGPLv3 许可证, DDoS 防护, Docker镜像, eBPFsentinel, GeoIP 封禁, IP 地址批量处理, L7 防火墙, Linux 安全, NAT 网关, Python3.6, Python工具, Rust, SYN Flood 防护, Trie 路由, WAF, 入侵防御, 内核态安全, 包过滤, 可视化界面, 威胁情报, 子域名突变, 安全代理, 安全合规, 安全渗透, 开发者工具, 抗 D, 插件系统, 无代理安全, 流量监控, 流量过滤, 网络代理, 网络基础设施, 网络安全, 网络流量审计, 网络遥测, 自定义请求头, 请求响应过滤, 请求拦截, 负载均衡, 边界安全, 通知系统, 配置错误, 防火墙, 隐私保护, 零拷贝, 高性能网络