PF header net/pfvar.h OSX 缺失

PF header net/pfvar.h on OSX missing

PF(数据包过滤器)是一个kernel-level防火墙,包含在BSD-like内核中(Darwin内核基本上是BSD),BSD手册页提供关于这些 headers 的详细 [​​=14=],让我们以编程方式控制 PF。 PF 包含在 OSX 内核中,即使它在默认情况下被禁用。

我知道可以通过某种方式控制 OSX 中的 PF,因为存在像 Murus 这样的应用程序,为此 low-level "king of firewalls" 提供 user-friendly GUI,这个 API 是 不是 不是手动 /etc/pf.conf 解析,正如我首先怀疑的那样。

有什么方法可以添加这些 headers 并从我的 OSX 应用程序控制 PF?

MacOS 塞拉利昂 10.12.6

Xcode 9.2 (9C40b)

更新我发现了一些 information,但 out-of-date

您正在寻找的 <net/pfvar.h> 在下面的 link 中(适用于 MacOS Mojave 和 Catalina)- 旧版本也可用。

https://opensource.apple.com/source/xnu/xnu-4903.221.2/bsd/net/pfvar.h.auto.html


这里是 MacOS Sierra 的<net/pfvar.h>

https://opensource.apple.com/source/xnu/xnu-3789.70.16/bsd/net/pfvar.h.auto.html


如果您需要完整的工作应用程序示例,我将 pfctl 从 BSD 移植到 MacOS,并使用所有 MacOS 内核头文件和系统库对其进行编译。我可以在 GitHub 上为您上传完整的工作源代码树。目前我在 Catalina 上使用它,我可以控制 PF 子系统上的任何东西。然后您可以从中学习并在您的应用程序中使用例程。代码、功能、参数简单易懂,轻松满足您的需求。