Little Snitch в качестве Kill Switch

20 June 2017

В прошлой заметке я описывал, как использовать подключение On Demand для OpenVPN на мобильном телефоне.

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

Для решения данной проблемы некоторые VPN-сервисы добавляют в свои клиенты функцию, которая называется Kill Switch. И заключается она в том, что сеть полностью блокируется до тех пор, пока не будет поднят защищенный канал. Всё хорошо, да только в официальном клиенте OpenVPN и в TunnelBlick данной функции не предусмотрено. И тут я вспомнил про Little Snitch, который давно уже приобрел, но так и не стал использовать.

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

И теперь приступаем к созданию новых профилей. Для реализации Kill Switch нам потребуется создать несколько профилей:

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

В Public ограничиваем всё, за исключением DNS и openvpn:

public

Обращаю внимание на то, что ограничиваем доступ всем процессам, как системным, так и пользовательским. И разрешаем доступ процессам только от имени системы.

Таким образом, при активации данного профиля сеть будет полностью заблокирована для всех процессов. Теперь осталось открыть доступ при использовании защищенного подключения:

vpn

В данном случае просто указываем, что доступ есть у всех процессов для всех уровней. Довольно просто. В списке всех правил это будет выглядеть так:

all

В настройках Little Snitch активируем функцию APS:

aps

При этом указываем, что по умолчанию будет использоваться профиль Public. Теперь включаем блокировку, наблюдаем, как автоматически активируется профиль Public. После чего пробуем подключиться к VPN, и после успешного подключения указываем Little Snitch использовать новую сеть OpenVPN для активации профиля VPN. Собственно все.

Теперь можно протестировать данное решение, последовательно отключаясь от VPN и подключаясь вновь, наблюдая при этом как сеть переключается от полной блокировки в рабочее состояние.