OSX上的PF头net / pfvar.h丢失

时间:2019-06-17 06:14:29

标签: macos firewall bsd darwin

PF (分组过滤器)是内核级别的防火墙,包含在类似BSD的内核中(达尔文内核基本上是BSD),并且BSD手册页提供了有关这些标头的详细documentation ,以编程方式控制PF。 PF包含在OSX内核中,即使默认情况下已将其禁用。

我知道以某种方式可以在OSX中控制PF,因为存在诸如Murus之类的应用程序,为这种底层的“防火墙之王”提供了用户友好的GUI,而该API不是 不是我首先怀疑的手动/etc/pf.conf解析。

是否可以通过OSX应用程序添加这些标头并控制PF?

MacOS Sierra 10.12.6

Xcode 9.2(9C40b)

1 个答案:

答案 0 :(得分:0)

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

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


这里是<net/pfvar.h>,用于MacOS Sierra:

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


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