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

11

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

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

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

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

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

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

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

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

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

Ответы:

2

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

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

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

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

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

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

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

bmike
источник
1
Это довольно разумный ответ. Использование виртуальной машины во второй учетной записи пользователя легко настроить. Хотя ОС может по-прежнему разрешать незащищенный сетевой трафик, не имеет значения, находится ли он в ограниченной среде избыточной учетной записи пользователя.
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

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

ping www.google.com

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

Дан
источник