我有一台开启了防火墙的 MacBook Pro。我尝试运行 Wireshark 跟踪,但透过 Apple 防火墙传来的噪音非常令人分心。根据下图,大部分噪音应该被屏蔽了。
实际上,我发现有大量 Bonjour/mDNS/uPNP 流量通过。我也想将其关闭。
Apple 的文档实际上并没有列出任何可用于控制防火墙的有用信息。例如,没有firewall(8)
并且ipfirewall(4)
有一个编程接口:
$ man -k firewall
ip6fw(8) - controlling utility for IPv6 firewall (DEPRECATED)
ipfirewall(4) - IP packet filter and traffic accounting
ipfw(8) - IP firewall and traffic shaper control program (DEPRECATED)
如何阻止所有未启动的入站流量,包括 Bonjour 之类的混杂协议?(我可能也需要阻止出站流量,但一旦我学会了如何使用防火墙,我可能就能弄清楚了)。
答案1
从 10.7 开始,Apple 已经切换到 OpenBSD 项目的数据包过滤器 (PF)。
使用 PF 进行数据包过滤OpenBSD 项目记录。
PF 的能力保持状态旨在精确地执行您想要的操作:允许主机发起的流量通过,同时阻止其余流量。“通过将有关每个连接的信息存储在状态表中,PF 能够快速确定通过防火墙的数据包是否属于已建立的连接。如果是,则无需经过规则集评估即可通过防火墙。”
因此,你可以从以下规则集开始:
block all
pass out from any to any
这样,除出站流量之外的所有流量都会被禁止。为出站流量创建状态条目,这样就可以允许沿该连接的返回流量进入,因为它可以完全跳过规则集。