Подключение телефона к домашнему туннелю и открытие общей папки в LAN доказывает, что туннель работает. Это не доказывает, что интернет-запросы телефона выходят через дом. Разница между этими двумя результатами — политика пересылки плюс маршрут, а не ещё одна галочка на телефоне. Это и та разница, которую большинство людей считает уже настроенной.

Три решения создают путь выхода: что телефон отправляет в туннель, куда домашний шлюз это пересылает и что происходит, когда туннеля нет. У каждого есть режим отказа, который с экрана телефона выглядит как остальные.

Два прыжка, две политики

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

phone app -> encrypted tunnel -> home listener
          -> decrypted packet -> forward policy -> home uplink -> destination

На типичном домашнем роутере это живёт в разных наборах правил. Приём туннеля — политика входа на интерфейсе VPN; отправка трафика телефона в интернет — политика пересылки плюс та трансляция источника, которая нужна uplink. Роутер, который принимает туннель и ничего не пересылает, даёт телефон, показывающий подключение и не загружающий ни одной страницы.

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

Слушатель — не фильтр

Решите, где происходит принуждение, пока нужная информация ещё существует. На роутере туннельный адрес телефона виден и может быть сопоставлен напрямую. За второй трансляцией его уже нет, и правила, написанные для адреса телефона, молча не совпадают ни с чем.

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

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

Что телефон должен на самом деле отправлять

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

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

DNS заслуживает собственного решения, потому что именно эта часть чаще всего отклоняется от остального трафика. Адрес резолвера в профиле — предложение, которое клиенты обрабатывают по-разному, а приложение с собственным зашифрованным резолвером может пойти совершенно отдельным путём. Если домашняя политика зависит от того, доходят ли запросы до определённого резолвера, применяйте её там, где трафик действительно проходит, или примите, что некоторые запросы этого не сделают. Запрос, обходящий ваш резолвер, никогда не доходит до правила, написанного для него.

IPv6 относится к тому же абзацу, что и DNS, а не к приложению. Полный туннель IPv4 ничего не говорит о трафике AAAA, и телефон в мобильной сети с двойным стеком охотно использует для него родной путь. Выберите перенос или блокировку явно.

Что межсетевой экран может и чего не может видеть

Шлюз может действовать на то, что раскрывает его точка принуждения: адреса, порты, протокол, интерфейс и метаданные соединения. Пересланный запрос HTTPS не выдаёт тело страницы или пароль только потому, что проходит через домашний туннель.

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

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

Решите отключённое состояние

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

Откат удобен и по определению утекает: момент, когда туннель падает, — это момент, когда запросы уходят путём оператора. Блокировка сильнее и делает телефон зависимым от доступности дома, что является реальной ценой доступности для человека в поездке. Ни одно из поведений не является ошибкой; оба — продукты, и вы выбираете между ними, говорите вы это или нет.

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

Закончите двумя контролируемыми проверками с самого телефона: одна разрешённая операция, которая должна пройти через дом, и один отказ, который домашняя политика должна применить. Подтвердите, что шлюз записал ожидаемый поток в ожидаемом семействе адресов после повторного подключения. Телефон, показывающий «Подключено», — это начало такой проверки, никогда не её конец.

Похожие статьи