#table #openbsd #pf #filter #packet #addresses #high-level

pftables-rs

用于管理 OpenBSD pf(数据包过滤器)表的小型库

2 个版本

0.1.1 2021 年 3 月 6 日
0.1.0 2021 年 3 月 5 日

#5 in #pf

BSD-2-Clause 许可协议

19KB
429

pftable-rs

用于管理 OpenBSD 上 pf 表的小型 Rust 库。

注意:我没有对其进行测试,但它可能也适用于其他 BSD 和 macOS。

这主要是我的一次学习练习。我想从 rocket.rs 应用程序中管理我的 pf 表,而不仅仅是代理到 pfctl。相反,这个库直接与 /dev/pf 通信,这是控制 pf 的内核设备(有关更多信息,请参阅 man 4 pf)。

我目前不打算支持规则或锚点的操作。我手动编写了所有代码,创建所有内核期望的结构的工作包装器非常耗时。

目前,此库支持以下操作

  • 在表中添加地址
  • 从表中删除地址
  • 获取表中的地址
  • 清除表中的地址
  • 设置表中的地址

请参阅 examples/my_table 以了解一些示例高级用法。src/lib.rs 包含一个用于与表交互的高级接口 PfTable。如果你想要做的比提供的更多,PfTable 的源代码可能是有用的参考。src/bridge/mod.rs 包含了大部分的 ffi 代码。

无运行时依赖