Skip to content

简介

什么是 rho-aias?

rho-aias 是一个基于 eBPFXDP(eXpress Data Path) 技术的高性能网络防火墙系统。它在网络驱动层(L3)拦截和过滤数据包,相比传统的 netfilter/iptables 方案具有显著的性能优势。

核心优势

为什么选择 XDP?

XDP(eXpress Data Path)是 Linux 内核提供的高性能数据包处理框架,在网络驱动程序收到数据包后、进入网络协议栈之前执行 eBPF 程序,可以实现:

  • 极低延迟:数据包在驱动层即被处理,避免进入内核协议栈
  • 高吞吐量:单核即可处理数百万 PPS(Packet Per Second)
  • 灵活可编程:eBPF 程序可动态加载/卸载,无需重启

性能对比

方案处理位置性能可编程性
XDP网卡驱动层⭐⭐⭐ 极高eBPF 灵活
iptablesNetfilter 钩子⭐⭐ 中等规则配置
nftablesNetfilter 钩子⭐⭐ 中等规则配置
用户态防火墙应用层⭐ 较低完全灵活

功能概览

功能模块说明
XDP 包过滤eBPF 内核程序,L3 层精确匹配和 CIDR 范围匹配
多源规则管理手动规则 + 威胁情报 + GeoIP + WAF 联动 + 异常检测 + SSH 防爆破
WAF 联动监控 Coraza WAF 日志,自动封禁恶意 IP
DDoS 检测3σ 统计基线 + 攻击类型识别 + 自动响应
SSH 防爆破监控 SSH 认证日志,滑动窗口计数 + 自动封禁(参考 fail2ban)
地域封禁MaxMind GeoIP 数据库,支持白名单/黑名单模式
阻断日志实时记录拦截事件,支持统计分析和持久化
认证授权JWT/API Key/Casbin RBAC,细粒度权限控制

技术架构

规则来源

rho-aias 支持多种规则来源,通过位掩码实现多源聚合:

来源说明位掩码
IPSum第三方威胁情报源(~23万条规则)0x01
Spamhaus DROP国际知名垃圾邮件黑名单0x02
手动规则通过 API 手动添加的 IP/CIDR 规则0x04
WAF 自动封禁监控 WAF 审计日志自动封禁 IP0x08
DDoS 防护异常流量检测自动封禁0x10
频率限制Rate Limit 日志触发封禁0x20
异常检测3σ 基线 + 攻击类型检测封禁0x40
SSH 防爆破FailGuard SSH 暴力破解防护0x80

白名单说明

IP 白名单已从位掩码机制中分离,不再占用位掩码位。白名单使用独立的 allow_ips/allow_cidrs eBPF Map 存储,具有最高优先级,直接放行。

当同一 IP 被多个来源标记时,位掩码会合并;删除时会检查是否还有其他来源,避免误删。

适用场景

  • 服务器防护:保护 Web 服务器、数据库服务器免受恶意流量攻击
  • DDoS 防御:快速识别和拦截分布式拒绝服务攻击
  • WAF 协同:与 Web 应用防火墙联动,实现网络层 + 应用层双重防护
  • 威胁情报:自动订阅和管理威胁情报源,实时更新防护规则
  • 地域封禁:按国家/地区限制访问,应对地域性攻击

系统要求

项目要求
操作系统Linux Kernel 5.8+(推荐 6.1+)
权限root 或 CAP_BPF、CAP_PERFMON、CAP_NET_ADMIN、CAP_NET_RAW
硬件支持 XDP 的网卡
Go1.25+(仅源码编译需要)

内核版本说明

  • Kernel 5.8+:基础 XDP 支持
  • Kernel 5.10+:更好的 eBPF 特性支持
  • Kernel 6.1+:推荐的稳定版本

开源协议

rho-aias 采用开源协议发布,欢迎贡献代码和反馈建议。