#nftables #netfilter #firewall #iptables #api-bindings #nft

nftnl

libnftnl 的安全抽象。提供对内核中 nf_tables 子系统的底层用户空间访问

9 个版本 (5 个破坏性更新)

0.6.2 2022年2月11日
0.6.1 2021年4月4日
0.6.0 2020年11月23日
0.5.0 2020年6月4日
0.1.0 2018年9月19日

#282Unix APIs

Download history 4787/week @ 2024-03-14 7060/week @ 2024-03-21 3304/week @ 2024-03-28 4396/week @ 2024-04-04 5040/week @ 2024-04-11 3491/week @ 2024-04-18 3912/week @ 2024-04-25 4097/week @ 2024-05-02 3891/week @ 2024-05-09 5636/week @ 2024-05-16 4485/week @ 2024-05-23 3622/week @ 2024-05-30 3286/week @ 2024-06-06 4205/week @ 2024-06-13 4248/week @ 2024-06-20 2273/week @ 2024-06-27

14,720 每月下载量

MIT

360KB
8K SLoC

nftnl

libnftnl 的安全抽象。提供对内核中 nf_tables 子系统的底层用户空间访问。请参见 nftnl-sys 以获取对 C 库的低级别 FFI 绑定。

可用于创建和删除 nftables(iptables 的继任者)中的表、链、集合和规则。

此库目前还有许多粗糙的地方,添加和删除 netfilter 条目并不是特别简单和优雅。这部分的理由是,库本身需要更多的工作,但也是因为 nftables 本身是如此底层和可定制,以至于创建一个过于简单/受限的包装器可能很困难,并且可能是不正确的。请参见示例以获取灵感。还可以查看原始项目如何使用它:Mullvad VPN app

了解如何使用 libnftnl 和实现此 crate 的过程,主要是通过阅读源代码程序和附加到 nft 二进制文件上的调试器。实现主要基于试错,因此当然可能存在一些地方,底层库在无效或非预期的方式中使用。尚未涵盖的部分很大,欢迎贡献力量!

选择 libnftnl 的版本

有关详细信息,请参阅相应sys crate的文档:nftnl-sys 该crate具有与sys crate相同的特性,选择版本的方式也相同。

许可证:MIT/Apache-2.0

依赖项

约2MB
约43K SLoC