我想在我的 Mac OS X 中微调防火墙规则,但不需要 GUI。
我来自 Linux 世界,我习惯于手动微调我的防火墙,完全控制每条规则,根据每个 IP 或每个 MAC 添加过滤规则等等......
这是否可能(当然,我希望如此)以及如何在 Mac OS X 中满足这一需求?
我想找到类似于我在 Linux 中使用的非常强大且可靠的“Shorewall”脚本
提前感谢大家给我小费。
答案1
Mac OS X v10.5 实际上有两个防火墙,ipfw(您可能习惯的数据包过滤防火墙)和 AppFirewall(又名 alf,用于过滤试图监听传入流量的程序)。AppFirewall 是 v10.5 中的新防火墙,也是 GUI 处理的唯一防火墙(在高级模式下运行的 OS X Server 除外 - 它有一个用于 ipfw 的 GUI)。AppFirewall 的配置性不是很好,它基本上有程序列表以及是否允许它们监听连接。如果您想查看其配置,请使用
defaults read /Library/Preferences/com.apple.alf
您可以使用或任何其他您喜欢的 plist 编辑器进行编辑sudo defaults write
(或者使用文本编辑器,只要文件是 text/xml 格式;如果不是,请使用“plutil -convert xml1”进行转换)。
但是,听起来你真正想要的是一个数据包过滤防火墙。没问题,两者可以并行运行(好吧,实际上是串联运行——流量只有通过两个防火墙后才能进入)。因此,你可以继续按照自己的意愿配置 ipfw(使用水屋面,或者构建自己的脚本来配置它并使用 launchd 来启动它,或者其他什么),而不必担心干扰常规防火墙。
顺便说一句,我发现我所说的 GUI 不影响 ipfw 有一个例外:如果您打开 Internet 共享(在“系统偏好设置”中的“共享”窗格中),它会激活 ipfw 以通过地址转换器转移数据包。如果您想使用此功能,我不确定如何让它和手动 ipfw 配置和平共处;它的设置根本无法配置。
答案2
答案3
也许可以看一下这个示例 ipfw 规则集来开始微调 ipfw: