![防火墙和阻止[更多]流量](https://linux22.com/image/1383174/%E9%98%B2%E7%81%AB%E5%A2%99%E5%92%8C%E9%98%BB%E6%AD%A2%5B%E6%9B%B4%E5%A4%9A%5D%E6%B5%81%E9%87%8F.png)
我有一台开启了防火墙的 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
这样,除出站流量之外的所有流量都会被禁止。为出站流量创建状态条目,这样就可以允许沿该连接的返回流量进入,因为它可以完全跳过规则集。