在Mac启动之前,我应该如何在Mac上使用VPN来防止破坏?


11

正如大多数有经验的用户会听到的那样,在不受信任的公共Wi-Fi上使用Mac可能有潜在危害。像Firesheep 1这样的工具使拦截未加密的通信变得非常容易。

人们经常提到,使用完整的隧道VPN加密所有通信是一种神奇的窃听解决方案,但是,这并不容易:

  • 根据VPN连接的协议和配置,连接可能更容易断开。(例如TLS和UDP)
  • 当您连接到公共网络时,VPN连接不会立即建立

我认为,最后两个点事很多,因为只要你的网络设置,改变各种应用程序立即跟他们的服务器-我认为这configd是通知他们,对不对?

即,在建立VPN隧道之前,大多数需要Internet的(运行中)进程将进行通信。

我认为成为良好的VPN用户有两个要素:

  1. 在建立之前,请确保不会以明文形式发送任何内容。
  2. 如果VPN发生故障,请确保以后不会明文发送信息

在VPN启动之前,如何在Mac上的公共网络中使用VPN限制未加密的流量?


重温这一点很高兴-我链接到的较旧的问题似乎更侧重于如何知道VPN何时断开连接,而不是如何进行安全启动设置-因此,我们可以从一些针对性的问题中受益,这些问题在提高安全性的同时使用了安全性。 VPN。
bmike

Answers:


2

让我们搁置任何解决方案,在该解决方案中您要使用第二个网络解决方案。让我们也让VPN无法解决与此相关但又不同的问题之后的流量停止问题

我将这个问题视为以用户为中心的解决方案,而不是通过修改OS X行为轻松完成的事情。

在Mac上设置两个帐户(两个都不是管理员帐户,但如果是,则不需要第三个帐户即可更改系统设置)。

  1. 存在的Shell帐户无法执行任何操作,只能建立VPN连接。
  2. 一个主帐户,它将运行您希望确保只有通过VPN正确保护网络后才能访问网络的程序。

因此,启用快速用户切换后,您可以注销主帐户。这样可以确保该用户的任何程序或进程都不会在后台继续运行。大多数OS X应用程序运行良好,当屏幕上没有活动的窗口时,它们会暂停网络访问,但是您必须永远进行监视和测试,以确保没有任何事情发生-注销更易于维护。

现在,您还可以用操作系统替换上面的“帐户”,并运行诸如Fusion(或Parallels或任何其他)之类的虚拟化系统,并仅在主机操作系统已保护VPN上的所有内容后才启动来宾操作系统。根据您选择的VM软件,您可能还可以控制网络,并且即使来宾OS在运行,也可以打开和关闭访问权限。这基本上是在模拟我最初所说的我不会考虑的额外硬件。

我希望这显示了一种方式,您可以在旅行和使用不信任的网络时更加安全,同时最大程度地避免由此带来的风险。如果其他人拥有网络-他们拥有DNS,可以记录数据包,可以尝试中间人(MITM)攻击以及对所有数据包进行深入检查,从而确定VPN隧道内部正在流动的内容。


1
这是一个相当合理的答案。在第二个用户帐户中使用VM易于设置。尽管操作系统可能仍允许不安全的网络流量,但是它是否处于冗余用户帐户的受限环境中并不重要。
gentmatt

我希望有一个简单的按钮,但是正如您所见-在OS X上设计使用任何向上的路径来控制内核层的前或后流量并非易事。操作系统并非旨在关闭所有设备,但网络设备却可以。
bmike

3

这是完全不在MacOS X GUI之外的方法。因此,这种解决问题的方法不会干扰任何网络或VPN设置。

假设我要使用IPSEC VPN(基于使用500 / udp == isakmp和50 / ip == esp)。

创建一个ipfw配置文件,仅允许所需的协议来构建VPN:

/usr/bin/sudo cat <<____eof >/etc/ipfw.vpn.rules
# VPN trafic contention
#
# DHCP
add 00100 permit udp from any to any src-port bootpc dst-port bootps
# DNS
add 01000 permit udp from me to any dst-port domain
add 01010 permit udp from any to me dst-port domain
# isakmp
add 01050 permit udp from me to any dst-port isakmp
add 01060 permit udp from any to me dst-port isakmp
# esp
add 01100 permit esp from me to any
add 01110 permit esp from any to me
# all other ip go to the central black hole
add 20000 deny ip from any to any
____eof

检查其语法是否正常:

/usr/bin/sudo /sbin/ipfw -n /etc/ipfw.vpn.rules

将其安装在内核中:

/usr/bin/sudo /sbin/ipfw /etc/ipfw.vpn.rules

检查您的操作系统是否可以重新启动,并通过通常的DHCP获得其IP地址。检查大多数IP协议是否被阻止:

ping www.google.com

当然,如果要在SSL之上使用VPN,则必须修改此配置文件(isakmp + esp→https)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.