Yur*_*sov 5 macos bsd firewall darwin
PF(数据包过滤器)是内核级别的防火墙,包含在类似BSD的内核中(Darwin内核基本上是BSD),并且BSD手册页提供了有关这些标头的详细文档,从而可以通过编程方式控制PF。PF包含在OSX内核中,即使默认情况下它是禁用的。
我知道这是可以控制PF在OSX好歹,因为像应用Murus存在,这种低级别提供用户友好的GUI“防火墙之王”,而这个API是不是没有手动/etc/pf.conf解析,我首先怀疑。
有什么方法可以从OSX应用程序添加这些标头并控制PF?
MacOS Sierra 10.12.6
Xcode 9.2(9C40b)
更新我发现的一些信息,虽然有些过时
您要查找的内容<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 子系统上的任何内容。然后您可以从中学习并使用应用程序上的例程。代码、函数和参数简单易懂,可以轻松满足您的需求。