VPN на iPhone за доменами: вирішіть, де відбувається відмова
NeverConnect не дає VPN запуститися; він не блокує вебсайт. Вирішіть, чи відмова належить до межі сервісу, чи до керованої політики.
Дві вимоги записують як одне речення, а потім реалізують у цілком різних місцях. «Цей сайт має бути доступним лише через VPN» — це твердження про допуск, і його природне місце — мережа перед сервісом. «Цей iPhone ніколи не повинен напряму звертатися до того домену» — це твердження про пристрій, і висловити його може лише керована клієнтська політика. Вирішіть, яке з них у вас насправді, перш ніж відкрити редактор профілів.
Дві вимоги, які звучать однаково
Візьміть ілюстративний хост records.corp.example. У випадку допуску ви публікуєте його лише на адреси за VPN, тому пряма спроба з телефона в стільниковій мережі зазнає невдачі на рівні мережі, а той самий запит через тунель проходить успішно і все ще вимагає справжнього входу в акаунт. У випадку пристрою телефон може виходити в публічний інтернет, тому хост розв'язується й відповідає всім, і єдине місце, де можна зупинити спробу, — сам пристрій. Сервіс не може застосувати правило до запиту, який ніколи до нього не доходить.
Неправильне прочитання вимоги проявляється як конкретне розгортання. Запис залишається публічним, оператор вважає VPN обов'язковим, а аудит стільникової спроби показує, що запит так і не увійшов у тунель. У журналах ніщо не виглядає зламаним, бо нічого не було заблоковано.
Читайте дії оцінювання буквально
Механізм роботи на запит має два окремі рівні дій, і їх змішування породжує більшість плутанини тут. Дія зовнішнього правила вирішує, що відбувається з тунелем, коли правило збігається, а дія оцінювання з'єднання вирішує, що відбувається збігом імені хоста всередині правила оцінювання. Довідка Never Connect від Apple описує лише другий рівень.
| Layer | Action | What it controls |
|---|---|---|
| Outer rule | connect | Bring the tunnel up when the rule matches |
| Outer rule | disconnect | Tear the tunnel down when the rule matches |
| Outer rule | evaluateConnection | Run a hostname evaluation instead of acting directly |
| Outer rule | ignore | Leave the current tunnel state alone |
| Connection evaluation | connectIfNeeded | Start the tunnel when the hostname cannot be resolved |
| Connection evaluation | neverConnect | Do not start the tunnel for that match |
neverConnect — це значення, яке найчастіше читають неправильно, бо назва натякає на блокування. Воно керує запуском тунелю для збіжного імені хоста, а не дозволом телефона досягти імені, тому запис Never Connect не є блокуванням домену. Назвати його так у проєктному документі — це спосіб затвердити розгортання з межею примусу, якої воно не має.
Якщо сервіс ваш, застосовуйте на межі
Обмеження допуску означає публікувати ім'я лише там, куди шлях через VPN може дістатися, а потім перевірити, що запланований шлях працює, а інший шлях — ні. Охопіть кожен опублікований запис, обидві родини адрес, якщо ви їх публікуєте, і будь-яке проміжне або альтернативне ім'я, яке використовує застосунок. Старий CNAME, що досі вказує на публічний балансувальник навантаження, зберігає прямий шлях живим, хоч би яким охайним був основний запис.
Це захищає сервіс, а не пристрій. Це не заважає телефону надіслати DNS-запит і не заважає застосунку спробувати. Якщо такі спроби прийнятні, примус на межі — дешевший і довговічніший вибір, бо діє для кожного клієнта, а не лише для тих, кого ви налаштували. Він також переживає телефон, який ніколи не був зареєстрований.
Якщо телефон не повинен навіть намагатися, потрібна керована політика
Щоб зупинити спробу, потрібна підтримувана політика примусу, яка охоплює застосунок або призначення до підключення, під час збою тунелю й після зміни мережі. Попросіть постачальника VPN або керування пристроями назвати цю політику, сказати, чи вимагає вона організаційного керування, і описати, на що ще вона впливає. Тунель на застосунок плюс правило на запит — не те саме, і ярлик з головного екрана на підключення теж.
Перевірте випадок збою, вимкнувши тунель і спостерігаючи, чи виходить запит. Якщо виходить, межа, яку ви задокументували, — не та межа, яку ви розгорнули.
Вирішуйте за допомогою трьох питань
По-перше, ви контролюєте сервіс чи лише телефон? По-друге, чи може пристрій законно використовувати публічний інтернет для всього іншого? По-третє, чи керується телефон, і ким? Володіння сервісом плюс керований парк означає, що доступний будь-який рівень, тоді як володіння лише телефоном робить клієнтську політику єдиним варіантом, і вона має підтримуватися.
Дайте відповідь на ці три, перш ніж торкатися профілю. Тоді конфігурація перестає бути здогадкою про те, що означає прапорець із назвою Never.