Mac VPN On Demand: что на самом деле доказывает совпадение SSID?
Совпадение SSID — это условие правила, а не доказательство доверия. Постройте правило On Demand, выберите значение по умолчанию для неизвестных сетей и держите блокировку отдельно.
Подключать VPN везде, кроме офисного Wi-Fi, звучит как правило из двух строк, и трудная часть никогда не состояла в распознавании имени сети. Трудная часть — решить, что разрешено доказывать совпавшему имени. Любая точка доступа может транслировать знакомый SSID, а успешный ping до одного адреса доказывает лишь то, что одна проверка получила ответ. Ни одно из этих наблюдений не устанавливает, что Mac находится в аутентифицированной внутренней сети.
Имя — это не идентичность
SSID — это метка, которую передаёт радио. Это не ключ, не сертификат и не утверждение о том, кому принадлежит оборудование, и площадка мероприятия или соседний офис могут транслировать ту же строку без всякой координации. Если относиться к метке как к указанию отключить защиту, решение переходит к тому, кто настроил ближайшую точку доступа.
Тест ping проваливается по более тонкой причине: он отвечает на вопрос о доступности, а не о принадлежности. Отвечающая цель может быть доступна откуда угодно, может быть доступна только через туннель, о котором вы пытаетесь принять решение, или может быть captive-порталом, возвращающим нечто похожее на ответ. Доступность — полезный факт и плохая граница доверия.
Как On Demand оценивает набор правил
Модель On Demand от Apple связывает действие с необязательными сетевыми условиями, и правила оцениваются по порядку: первое правило, все условия которого совпадают, задаёт действие, а остальные не рассматриваются. Этот порядок и есть политика, поэтому правило, добавленное «на всякий случай», может молча переписать работавшее поведение.
Условие SSID относится к текущей основной подключённой сети, а не к каждому имени, видимому при сканировании. Это даёт три разных состояния, и сведение их к двум — обычная ошибка конфигурации:
| State | What the rule sees | What it must not be taken to mean |
|---|---|---|
| No SSID criterion applied | Nothing to compare | That the network is unknown or unsafe |
| Unknown network | Connected, name does not match | That no rule below applies |
| Recognized network | Primary network matches | That the network is trusted |
Настройте там, где живёт политика
Одобренный VPN-клиент или рабочий процесс управления — это место, к которому относится это правило, и разные поставщики открывают разные подмножества доступных элементов управления. Поэтому отсутствующий параметр в этой панели означает, что клиент его не предоставил, а не то, что платформа не может его выразить.
Автоматической активации также нужна схема аутентификации, которая может завершиться без человека, например сертификат или другой поддерживаемый метод. Сохранённый одноразовый код — не такая схема, и правило, срабатывающее, когда аутентификация не может завершиться, создаёт попытку подключения, которая тихо терпит неудачу в фоне.
Два шаблона, которые стоит записать в runbook
Первый — подражающее имя. Площадка конференции, отель или арендатор в том же здании транслируют строку, которую ваше правило считает «внутри», и защита отключается именно там, где вы меньше всего этого хотите. Имя не соврало; правило задало ему вопрос, на который оно не может ответить.
Второй — самопораждающая проверка. Скрипт пингует частный адрес, видит ответ через туннель, делает вывод, что уже находится во внутренней сети, и отключается. Затем проверка терпит неудачу, поэтому скрипт подключается снова и повторяет, и туннель колеблется, хотя каждый отдельный шаг выглядит правильным. Тест, результат которого зависит от туннеля, не может одновременно решать, должен ли туннель существовать.
Решите про значение по умолчанию и применяйте его отдельно
Случай неизвестной сети и случай кабеля требуют явных ответов вместо унаследованного значения по умолчанию. Если защищённый трафик должен оставаться заблокированным, пока система ещё классифицирует сеть или поднимает туннель, для этого нужен собственный поддерживаемый механизм принудительного контроля; триггер On Demand даёт поведение подключения, а не гарантию блокировки.
Правильно написанное правило администратора называет одобренное исключение, доказательства, которые его оправдывают, и осознанный откат при отсутствии этих доказательств. Распознавание имени Wi-Fi — законный вход для этого решения. Это не обоснование решения, и оно никогда не должно быть единственной строкой правила.