Outfluencer/Minecraft-XDP-eBPF

GitHub: Outfluencer/Minecraft-XDP-eBPF

基于 eBPF/XDP 技术的 Minecraft 服务器专用 L7 DDoS 防护工具,在内核层面高效过滤恶意流量。

Stars: 155 | Forks: 20

# 基于 eBPF 的 Minecraft XDP 过滤器 – L7 DDoS 防护 本项目提供了一个利用 eBPF 的高性能基于 XDP 的防火墙,专为 Minecraft Java Edition 服务器设计。 它通过在内核层面(在网络协议栈之前)过滤恶意数据包,有效缓解 L7 DDoS 攻击。 目前,该过滤器支持 IPv4,并支持 Minecraft 版本 1.8 - 26.1。 默认过滤端口为 25565。 ## 功能特性 - **协议分析**:分析 Minecraft 握手、状态、Ping 和登录请求。 - **深度包检测**:丢弃无效数据包、错误的 VarInts 和违反协议的数据包。 - **连接节流**:集成的 SYN 速率限制(默认:每个 IP 在 3 秒内最多 10 个 SYN)。 - **零拷贝丢弃**:恶意流量在驱动层面被丢弃(XDP_DROP),以实现最大性能。 ## 安装 (Linux) ### 生成您的过滤器二进制文件 在此处生成:https://xdp.outfluencer.dev/ 然后只需运行该可执行文件。 ### 前置条件 - Rust toolchain (stable) - **系统依赖**: sudo apt update sudo apt install -y gcc-multilib wget gnupg software-properties-common git libbpf-dev 如果找不到 software-properties-common,请将其从命令中移除。 - **LLVM/Clang Toolchain**: 构建需要较新的 LLVM 版本(CI 使用 LLVM 21)。 wget https://apt.llvm.org/llvm.sh chmod +x llvm.sh sudo ./llvm.sh 21 all ### 构建与运行 1. **构建项目**: ./build.sh 编译后的二进制文件将位于 `target/release/xdp-loader`。 2. **运行防火墙**: sudo ./target/release/xdp-loader # 示例: sudo ./target/release/xdp-loader eth0 启用 Prometheus 指标导出: sudo ./target/release/xdp-loader eth0 --metrics-addr 0.0.0.0:1999 指标可通过以下地址访问:`http://host:1999/metrics` **注意:** 本项目使用持久化 XDP 加载器。使用 `XDP` 程序需要用户空间程序保持运行以管理 maps。停止加载器将卸载防火墙。 ## 配置 您可以在 `build.rs` 文件中配置端口、功能和节流行为。 **更改 `build.rs` 后,您必须重新编译项目。** ## 故障排除 ### 非 root / 权限错误 如果发生任何错误,请务必检查您是否以 root 身份运行。如果不是,请使用 `sudo` 重试。 ### Maps 问题 如果您更改了 map 配置(例如,启用 Per-CPU maps),重启时可能会遇到 map 创建错误。 清理通用 BPF 文件系统: ``` sudo rm -r /sys/fs/bpf ``` ⭐ **别忘了在 GitHub 上给项目点个 Star!**
标签:CISA项目, DDoS防护, Docker镜像, L7防御, Minecraft, Prometheus监控, Rust, SYN限速, XDP, 内核级过滤, 协议分析, 可视化界面, 子域名枚举, 客户端加密, 抗D, 权限提升, 流量清洗, 深度包检测, 游戏服务器保护, 系统安全, 网络安全, 网络安全分析, 网络流量审计, 自定义请求头, 防火墙, 隐私保护, 零拷贝