Как мне использовать VPN на Mac, чтобы предотвратить компрометацию до запуска VPN?

Как уже слышали большинство опытных пользователей, использование Mac в общедоступной ненадежной сети Wi-Fi может быть потенциально опасным. Такой инструмент, как Firesheep 1 , позволяет очень легко перехватывать незашифрованные сообщения.

Использование полного туннеля VPN для шифрования всех сообщений так же часто упоминается как волшебное решение для подслушивания, но, конечно, это не так просто:

  • В зависимости от протокола и конфигурации VPN-подключения соединение может быть проще разорвано. (например, TLS против UDP)
  • VPN-соединение не устанавливается мгновенно при подключении к общедоступной сети.

Я думаю, что последние два пункта имеют большое значение, потому что всякий раз, когда ваши сетевые настройки изменяются, различные приложения немедленно связываются со своими серверами — я предполагаю, configdчто это информирует их, верно?

т.е. до того, как VPN-туннель будет установлен, большинство (работающих) процессов, которым требуется Интернет , будут обмениваться данными.

Я вижу два компонента хорошего пользователя VPN:

  1. Убедиться, что вещи не отправляются в чистом виде до того, как это будет установлено.
  2. Убедившись, что вещи не будут отправлены в открытом виде позже, если VPN выйдет из строя .

Как я могу использовать VPN на Mac в общедоступной сети, чтобы ограничить незашифрованный трафик до запуска VPN?

Приятно вернуться к этому — старый вопрос, на который я ссылался, кажется, больше сосредоточен на том, как узнать, когда VPN разрывает соединение, чем на том, как настроить безопасный запуск — поэтому мы можем извлечь пользу из нескольких острых вопросов о методах повышения безопасности при использовании VPN.

Ответы (2)

Давайте отложим в сторону любое решение, в котором вы привносите в проблему второй элемент сетевого оборудования. Давайте также разрешим проблему остановки трафика после сбоя VPN на этот связанный, но другой вопрос .

Я смотрю на эту проблему как на решение, ориентированное на пользователя, а не на то, что легко решить, изменив поведение OS X.

Настройте две учетные записи на своем Mac (не обязательно иметь учетные записи администратора, но если они есть, вам не понадобится третья учетная запись для изменения настроек системы).

  1. Учетная запись оболочки, которая ничего не запускает и только устанавливает VPN-соединение.
  2. Основная учетная запись, которая будет запускать программы, которые вы хотите обеспечить, получит доступ к сети только после того, как она будет должным образом защищена с помощью VPN.

Итак, при включенном быстром переключении пользователей можно выйти из основного аккаунта. Это гарантирует, что никакие программы или процессы этого пользователя не будут продолжать работать в фоновом режиме. Большинство приложений OS X ведут себя хорошо и приостанавливают доступ к сети, когда у них нет активного окна на экране, но вам придется постоянно отслеживать и тестировать это, чтобы убедиться, что ничего не происходит — выход из системы проще поддерживать.

Теперь вы также можете заменить «учетную запись» выше на ОС и запустить систему виртуализации, такую ​​​​как Fusion (или Parallels, или любую другую), и запускать гостевую ОС только после того, как хост-ОС защитит все в VPN. В зависимости от выбранного программного обеспечения виртуальной машины вы также можете контролировать сеть и включать и отключать доступ, даже когда работает гостевая ОС (или ОС). Это в основном имитация дополнительного оборудования, которое я изначально сказал, что не буду рассматривать.

Я надеюсь, что это показывает, как вы можете быть более безопасными во время путешествий и использования сети, которой вы не доверяете, при этом сводя к минимуму риск, который это всегда будет влечь за собой. Если кто-то другой владеет сетью — он владеет DNS, может регистрировать пакеты, может пытаться проводить атаки «человек посередине» (MITM), а также глубоко проверять все ваши пакеты, чтобы попытаться определить, что течет внутри туннеля VPN.

Это вполне разумный ответ. Использование виртуальной машины во второй учетной записи пользователя легко настроить. Хотя ОС по-прежнему может разрешать незащищенный сетевой трафик, не имеет значения, находится ли он в среде с ограниченным доступом избыточной учетной записи пользователя.
Я бы хотел, чтобы была простая кнопка, но, как вы можете видеть, не так просто управлять до- или пост-трафиком на уровне ядра, поскольку OS X предназначена для использования любого пути, который вверх. ОС не предназначена для того, чтобы отключать все подряд, в отличие от сетевого оборудования.

Вот подход, полностью выходящий за рамки графического интерфейса MacOS X. Следовательно, этот подход к проблеме не будет мешать настройкам сети или 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

Убедитесь, что ваша ОС может перезагрузиться, и получить свой IP-адрес через обычный DHCP. Убедитесь, что большинство IP-протоколов заблокированы:

ping www.google.com

Конечно, если вы хотите использовать VPN поверх SSL, вам придется адаптировать этот файл конфигурации (isakmp + esp → https).