我做了一些实验,以确定macOS Big Sur是否能够像现在所说的那样绕过VPN。答案是:不是。数据包按照路由表的说明执行操作。
简介:过去有很多帖子声称,新的macOS Big Sur可以绕过Apple自己产品的VPN。最著名的是您的计算机不是您的计算机,而macOS Big Sur上的Apple应用程序绕过防火墙和VPN连接。可以被恶意软件使用。
好吧,我什至无法理解这在理论上是如何工作的,传播FUD的人都没有解释任何事情,所以我创建了一个测试设置。带有Big Sur的My MacbookPro 2016年末通过以太网通过以太网连接到另一台运行Debian Buster的具有两个NIC的PC。两个NIC桥接在一起,第二个NIC以这样的方式连接到我的LAN:MB可以访问Internet(通过IPv4和IPv6),而不会丢失任何数据包。 Wifi和Bluetooth均已关闭。
我在网桥上运行tcpdump并捕获了MB吐出的每个以太网帧。另外,我在MB上运行Wireshark,以检查内核是否可能从Wireshark隐藏某些以太网帧。这样的框架在桥上仍然可见。
在我的MB上,我创建了一个VPN隧道,该隧道连接到LAN上的另一台计算机,并测试了三种主要的VPN实施:IPSec(Cisco Anyconnect),OpenVPN和Wireguard。首先将所有VPN设置为通过VPN路由所有流量,然后将其作为拆分隧道,然后将Apple的IP路由通过该隧道。
此外,我分别捕获了网桥上任何不使用VPN隧道的单个以太网帧。
我进行了48小时的实验,使用了Apple自己的应用程序,从App Store安装了一些应用程序,否则只能在我的MB上运行。
结果:唯一未通过VPN路由的流量是:DHCP,ARP和IPv6邻居/路由器广告/请求。而已。没有单个数据包不遵循MB路由表中的规则,因此不使用VPN隧道。
请注意,通过使用DHCP提供的数据,MB可以轻松访问公共互联网!在MB的路由表中,连接到VPN时不替换默认网关。取而代之的是,将新条目推到其上方的行中,并以此方式获得优先权。因此,MB拥有完全绕过VPN所需的所有信息,但仍然没有数据包能够做到。
此外,网桥上没有捕获到单个以太网帧,Wireguard也未捕获到该以太网帧,因此内核也不会绕过Wireguard。
今天发布的macOS版本11.0(也称为Big Sur)具有防止Little Snitch以相同方式工作的新API。新的API不允许Little Snitch检查或阻止任何操作系统级别的进程。此外,macOS 11中的新规则甚至阻碍了VPN,因此Apple应用程序将绕过它们。
他为自己的主张提供了“出处”,但通过该链接,我们从一位叫Sami的作家那里获得了有关Little Snitch的描述,然后:
如果未打补丁,Apple似乎是有意采取行动,不允许自己的应用程序绕过VPN和防火墙连接。
我不明白如何从该引言中推断出“ Apple的应用程序将绕过VPN”。
实际发生的事情是,Apple为希望嗅探网络流量的用户空间应用程序更改了一些API,确切地说是:NEFilterDataProvider。苹果自己的服务列在排除列表中,以防止第三方应用对其进行修改。
我并不是说这是一个好举动,但这并不意味着它完全绕过了VPN。数据包仍然会执行路由表中写入的内容,并且如果路由表显示“将其放入tun设备中”,则数据包将被放入tun设备中。我要求每个声称以其他方式提供可重现的方案的人(例如上述我的装置)都会显示泄漏。否则,这只是FUD。
也许声称Big Sur绕过VPN的人应该正确地指定它们不是VPN,而是那些为另一个应用程序模拟某些类似VPN行为的应用程序,即依赖NEFilterDataProvider而不是适当的隧道接口的应用程序。