XDP-Firewall 项目使用教程
1. 项目的目录结构及介绍
XDP-Firewall 项目的目录结构如下:
XDP-Firewall/
├── LICENSE
├── Makefile
├── README.md
├── xdpfw.conf.example
├── images/
├── modules/
├── other/
└── src/
├── gitignore
├── gitmodules
└── ...
- LICENSE: 项目的许可证文件。
- Makefile: 用于编译和构建项目的 Makefile 文件。
- README.md: 项目的主文档,包含项目的基本介绍和使用说明。
- xdpfw.conf.example: 配置文件的示例。
- images/: 可能包含项目相关的图片资源。
- modules/: 可能包含项目的模块代码。
- other/: 其他辅助文件或资源。
- src/: 项目的源代码目录,包含主要的程序文件和辅助文件。
2. 项目的启动文件介绍
项目的启动文件主要是通过 Makefile 进行编译和启动。Makefile 中包含了编译和运行项目的指令。用户可以通过以下命令来编译和启动项目:
make
sudo ./xdpfw
其中,xdpfw
是编译生成的可执行文件,用于启动防火墙。
3. 项目的配置文件介绍
项目的配置文件是 xdpfw.conf.example
,这是一个示例配置文件。实际使用时,用户需要根据需求创建并修改 xdpfw.conf
文件。配置文件的主要内容如下:
no_stats bool false
# 是否启用或禁用数据包计数器。禁用数据包计数器将提高性能,但会导致对 XDP 防火墙行为的可见性降低。
stdout_update_time uint 1000
# 更新 stdout 显示数据包计数器的频率,单位为毫秒。
filters Array of Filter Object(s) NULL
# 用于 XDP 防火墙的过滤规则数组。
Filter Object:
- enabled bool false
# 规则是否启用。
- action uint 0
# 值为 0 时丢弃或阻止数据包,值为 1 时允许数据包通过。
- block_time uint 1
# 匹配源 IP 时阻止的秒数。
- src_ip string NULL
# 匹配的源 IPv4 地址。
- dst_ip string NULL
# 匹配的目标 IPv4 地址。
- src_ip6 string NULL
# 匹配的源 IPv6 地址。
- dst_ip6 string NULL
# 匹配的目标 IPv6 地址。
用户可以根据实际需求修改配置文件中的参数,以实现不同的防火墙规则和行为。