我如何手动(通过脚本和/或configuration文本文件)在Mac OS X中微调防火墙?

我想微调我的Mac OS X中的防火墙规则,没有我的意思是GUI。

我来自Linux世界,我习惯于手动微调我的防火墙,完全控制每个规则,在每个IP或每个MAC基础上添加过滤规则,等等…

是否有可能(当然,我希望)以及如何在Mac OS X中满足这种需求?

我想find类似于Linux中非常强大和可靠的“Shorewall”脚本的东西

在此先感谢大家会给我一个小费。

Mac OS X v10.5实际上有两个防火墙,ipfw(一个你可能习惯的包过滤防火墙)和AppFirewall(aka,它过滤试图监听传入stream量的程序)。 AppFirewall是v10.5中的新增function,也是唯一一个GUI所处理的(除了在高级模式下运行的OS X服务器(具有用于ipfw的GUI)之外)。 AppFirewall不是非常可configuration的,它基本上有程序列表,以及它们是否被允许监听连接。 如果你想看看它的configuration,使用

defaults read /Library/Preferences/com.apple.alf 

编辑可以用sudo defaults write或其他任何你喜欢的plist编辑器(或文本编辑器,只要该文件是以text / xml格式;如果不是,使用`plutil -convert xml1'来转换它)来完成。

但是,这听起来像你真正想要的是一个包过滤防火墙。 没问题,两者都可以并行运行(呃,实际上是系列 – 通过两个防火墙之后才进入stream量)。 所以你可以继续configurationipfw,不pipe你想要什么(使用WaterRoof ,或者build立你自己的脚本来configuration它,并使用launchd来启动它,或者其他),而不用担心干扰常规的防火墙。

顺便说一句,我想到,我所说的关于不接触ipfw的GUI有一个例外:如果打开Internet共享(在“系统预置”的“共享”窗格中),它会激活ipfw以通过地址转换器转向数据包。 如果你想使用这个function,我不知道如何使它和一个手动ipfwconfiguration共存和平; 它的设置完全不可configuration。

我build议查看这个相关的问题讨论ipfw ,即使你说你不想要一个GUI工具,也许值得把WaterRoof作为一个免费的configuration工具来研究它。

也许看看这个例子ipfw规则集开始与微调ipfw:

http://codesnippets.joyent.com/posts/show/1267