3

Я хочу полностью отключить интернет-соединение при обрыве VPN-соединения. Я подключаюсь к своему VPN (privatevpn.com) через Visidity.

Я перепробовал все в книге. Я пытался использовать сценарии отключения в Visidity, но они никогда не запускаются или не запускаются непоследовательно и оставляют уязвимым мое соединение. Я также пробовал трюки с маршрутизацией в Visidity, но он тоже не работает.

На моих машинах с Ubuntu у меня есть решение, которое отлично работает, я использую правила ufw для управления брандмауэром. Чтобы подключиться к VPN, мне нужно отключить UFW, а затем, после подключения VPN, я включаю UFW, и он защищает соединение от утечки.

На Mac есть нечто, называемое pf. Я мог бы настроить pf для работы так же, как работают мои правила ufw, но я не понимаю, как его настроить.

Вот мои правила UFW, которые я также хотел бы запустить на Mac, может, кто-нибудь может помочь мне настроить pf на использование тех же правил?

Статус: активен. Ведение журнала: включено (низкое). По умолчанию: отказать (входящий, отказать (исходящий), отключено (направлено). Новые профили: пропустить.

К действиям из любого места, разрешенным в 193.180.119.0/24 из любого места, разрешенным к 193.180.119.0/24

2 ответа2

3

Лучшее, что я нашел, - это использовать PF, доступный на Mac OS X, после подключения к вашему провайдеру VPN просто нужно изменить IP.

Создайте файл ~/killswitch/pf.conf содержащий это

# Options
set block-policy drop
set ruleset-optimization basic
set skip on lo0

# Interfaces
wifi = "en1"
vpn = "utun1"

# Block everything
block out all
block in all

# Outbound: Allow only VPN 
pass out on $wifi proto {tcp, udp} from any to 81.171.71.XX

# Allow traffic for VPN
pass out on $vpn all

Дважды проверьте ваши интерфейсы, в моем случае en1 - это WiFi, а uten1 - VPN-туннель.

Изменить 81.171.71.XX на IP вы получаете при подключении.

включить пф

$ sudo pfctl -e 

Загрузите правила:

$ sudo pfctl -Fa -f /path/to/pf.conf 

Отключить pf:

$ sudo pfctl -d

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

Обновить

Вы можете попробовать убить, он может сделать все это для вас автоматически.

0

Может ли этот скрипт добиться цели?

#!/bin/bash

while true 
do
  result=$(scutil --nc list | grep Connected)
  if [ -z "$result" ]; then
     killall Transmission
     exit
  fi 
done

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .