Но есть нерешенная проблема: как сделать так, чтобы интернет вообще никогда не работал, если не подключиться к VPN?
Есть идея как-то настроить доступ к DNS только через VPN, тогда без VPN резолвиться ничего не будет. Но покопавшись в интернетах ничего подходящего не увидел.
Есть ли у вас какие-то идеи на этот счет? Mac OS X Sierra.
khodpp: VPN сервер где находится?
Например, где-то в Европе.
А вы подключаетесь к Интернет через провайдера.
Т.е. у вас изначально, при подключении к сети Интернет задается маршрут по умолчанию, для отправки пакетов на адрес шлюза(сервер/маршрутизатор и тд) провайдера.
Если в консоли вы сделаете netstat -nr, то увидите маршрут
192.168.х.1 - это адрес моего домашнего роутера. Если подключаетесь без роутера - будет IP адрес шлюза провайдера.
Подключились к Интернету, сайты открываются, скайп бегайт и тд и тп.
Включаем VPN клиента. Что он делает - создает туннель в текущем соединении с Интернет, между вашим компьютером и VPN сервером.
При подключении, вы сказали вашему клиенту выполнить "route delete default" - т.е. удалить маршрут по умолчанию, который все пакеты отправляет на старый шлюз (см. выше)
А что взамен? - Взамен должен прописываться новый шлюз который указывает в туннель.
Далее, при обрыве туннеля шлюз по умолчанию должен восстанавливаться, иначе туннель не подымется потому что VPN клиент будет пытаться подключиться через свой же туннель, который оборвался или закрылся.
Резюмируя:
как сделать так, чтобы интернет вообще никогда не работал, если не подключиться к VPN?
не достижимо в принципе. Разве что вы разобьете эту бальшую хотелку на части и будете реализовывать по частям.
Можно частично сделать так:
1. Прописать в системных настройках глобальный прокси, через который будут ходить все программы и этот прокси будет сервером внутри VPN.
2. Поднять внутри VPN свои кеширующие DNS-сервера, а в системных настройках указать их адреса.
3. Жестко, чуть ли не в ручном режиме контролировать маршруты пакетов.
Но возникают некие проблемы, которые нужно будет думать как решить:
1. Невозможно со 100% уверенностью сказать, что глобальный прокси будет использоваться всем софтом в системе. А так же возникает резонный вопрос - если даже ВЕСЬ софт завернуть в прокси, то уже Tunnelblick необходимо настраивать так, чтобы он этот прокси игнорировал.
2. При подключении к разным сетям, например в гостях или в кафе, вы будете получать настройки сети от DHCP, в том числе и настройки DNS серверов. Необходимо каждый раз контролировать приоритеты этих самых серверов.
Возникает резонный вопрос - цель то какая у вас? Настроить весь трафик через VPN - это не цель, это задача, а для чего вы эту задачу перед собой поставили?