Виняток VPN для домашньої мережі на Android: інструкція для однієї служби
Виключіть лише схвалену домашню службу, а не всі приватні маршрути. Запишіть політику, використайте VPN з можливістю обходу, потім перевірте відмову в гостьовій мережі.
Ви хочете, щоб одна домашня служба була доступна, поки VPN діє для всього іншого. Спокусливе налаштування — виняток локальних маршрутів, що охоплює всі приватні адреси, і це неправильний контроль: у наступній мережі готелю чи кафе він може перетворити будь-яку відповідь на шлях обходу. Ця інструкція обмежує виняток однією службою та доводить його в переходах, які його ламають.
Визначте виняток як службу, а не підмережу
Запишіть застосунок, ім'я та адресу призначення, протокол і порт, мережу, де він дозволений, і перевірку особи, яку виконує сама служба. Для NAS з автентифікацією саме сертифікат або обліковий запис доводить, що ви потрапили на потрібну машину. Адреса в 192.168.0.0/16 нічого не доводить, бо кожен домашній маршрутизатор видає ті самі префікси.
Також визначте, що означає близько. Служба в маршрутизованому VLAN не перебуває в підмережі, до якої телефон підключений напряму, а гостьовий Wi-Fi може мати той самий приватний префікс, що й домашній, будучи цілком іншою машиною. Виняток має називати службу й середовище, а не лише діапазон адрес.
Переконайтеся, що контроль платформи відповідає вимозі
Конструктор профілю Android IKEv2 надає setLocalRoutesExcluded(true), і його документація вимагає VPN з можливістю обходу: виняток має сенс лише тоді, коли клієнт може дозволити трафіку обійти тунель. Та сама документація попереджає, що базова мережа може надавати маршрути, які впливають на виняток, і саме тому налаштування йде за мережею, до якої ви приєднуєтеся, а не за мережею, якій довіряєте.
Це також не обіцянка, що кожна конфігурація блокування чи керована конфігурація дозволить користувачеві ввімкнути той самий виняток. Виняток маршруту, прапорець можливості обходу й політика блокування пристрою — окремі контролі, і керований пристрій може заборонити третій, дозволяючи перші два. Перевірте встановлений профіль і політику керування, перш ніж проєктувати навколо прапорця.
Інструкція: створіть і застосуйте виняток
Крок 1: створіть профіль підтримуваним шляхом для розгортання, або через керовану конфігурацію, або через конструктор клієнта. Крок 2: позначте VPN як такий, що допускає обхід, бо без цього виняток локальних маршрутів не діє. Крок 3: увімкніть виняток локальних маршрутів. Крок 4: залиште власну автентифікацію служби та перевірку сертифікатів увімкненими; виняток стосується маршрутизації, а не довіри. Крок 5: збережіть і перепідключіться, щоб профіль застосувався.
Відкат — це той самий шлях у зворотному напрямку: очистіть виняток, потім очистіть можливість обходу, потім перепідключіться. Не лагодьте маршрут чи гачок брандмауера безпосередньо на пристрої. Мережевий демон володіє цими правилами, і ручне правило може пропустити інше сімейство адрес, перепідключення або перехід мережі. Якщо встановлена конфігурація не може виразити політику, тримайте суворіше блокування, доки власник не схвалить інший дизайн.
Перевірте чотири випадки, що мають значення
Використовуйте нешкідливі запити й запишіть очікуваний результат перед запуском кожного випадку. Наведена нижче матриця — це приймальний тест, а не пропозиція: якщо будь-який випадок, що має бути відхилений, вдається, виняток ширший за політику.
| Case | Network | Destination | Expected |
|---|---|---|---|
| 1. Approved service | Home Wi-Fi | The NAS | Reachable and authenticated |
| 2. Other local device | Home Wi-Fi | A printer | Denied by VPN policy |
| 3. Same private prefix | Hotel or cafe Wi-Fi | 192.168.1.10 | Denied |
| 4. Transition | VPN drop, Wi-Fi to cellular | The NAS | No silent direct path |
Випадок 3 ловить широкий обхід приватної підмережі, а випадок 4 — клієнт, що застосував виняток лише під час підключення. Запустіть випадок 4 з відключеним VPN і з телефоном, переміщеним на стільникову мережу, потім перепідключіться й переконайтеся, що виняток повернувся без перезавантаження. Довідка API локальних маршрутів зазначає вимогу можливості обходу, що робить крок 2 обов'язковим.
Запишіть виняток і перегляньте його
Постійний запис має називати службу, середовище, що обґрунтувало виняток, власника й дату. Локальний описує відношення маршрутизації, а не рівень довіри, і наступна мережа, до якої приєднається телефон, не є мережею, де виняток було схвалено.
Перегляньте запис після оновлення ОС, оновлення клієнта або переїзду. Повторюйте випадок 3 щоразу, коли виняток поновлюється, бо профіль, що колись обмежував обхід однією службою, можна розширити однією зміною типового значення.