Два термина на Apple се използват така, сякаш назовават едно и също нещо, и това объркване изпраща хората в грешен панел с настройки. Network Extension описва възможност: поддържан начин за реализиране на VPN тунели, проксита и филтри. System Extensions описва механизъм за доставяне и одобрение на разширения в потребителското пространство. Съвременният Mac VPN клиент обикновено се нуждае от двете, затова нито един от етикетите сам не обяснява симптом. Разделянето на двете отговаря кой компонент да проверите и каква стъпка на одобрение да очаквате.

Два въпроса, а не един етикет

Питайте какво прави компонентът, преди да питате как е инсталиран. Възможността определя кой клас доставчик съществува и следователно кой код обработва вашите пакети. Механизмът за доставяне определя как пристига двоичният файл, как се одобрява и къде се записва състоянието му. Даден продукт може да реализира пакетен тунел, без да доставя системно разширение на по-стари версии, и може да достави системно разширение, което реализира нещо различно от тунел.

Разширенията на ядрото са третият термин, който хората смесват. Те бяха по-старият начин за изпълнение на привилегирован мрежов код, изискваха различни одобрения и Apple от години насочва разработчиците далеч от тях. Прилагането на рецепта за одобрение на разширение на ядрото към съвременен клиент губи време в диалог, който никога няма да се появи.

Прочетете бележките за внедряване на доставчика за версията на macOS, която използвате вместо публикация във форум от по-ранна версия. Архитектурата се промени повече от веднъж и инструкциите остаряват бързо. Бележка, която споменава одобрение на разширение на ядрото, описва друга епоха на продукта.

Какво предоставя Network Extension

Рамката предоставя типове доставчици за обичайните мрежови задачи: пакетен тунел за VPN трафик, прокси за приложения за потоци по приложение, филтър за съдържание за инспекция на трафика и управление на DNS прокси за поведението на резолвера. Типът доставчик определя какво може да прави разширението и клиент, който доставя два доставчика, може да изпълнява две различни задачи.

Това е важно при диагностика, защото един и същ симптом на свързаност може да идва от тунел, филтър или DNS прокси. Блокирането на уебсайт е решение на филтъра, невъзможността да се достигне частна подмрежа обикновено е решение на тунела, а разрешаването на грешен адрес обикновено е решение на резолвера. Назоваването на типа доставчик стеснява търсенето, преди да е прочетен какъвто и да е журнал.

Нищо в рамката не предполага определена позиция за поверителност. Разширението в потребителското пространство все още има разрешения, конфигурация и оператор зад себе си, затова третирайте архитектурата като детайл по реализацията, а не като сигнал за доверие. Питайте кой управлява крайната точка и какво е конфигурирана да събира.

Какво променя System Extensions

Механизмът премества привилегирования код от ядрото в потребителското пространство и променя начина, по който операционната система иска съгласие. Активирането е отделна стъпка от инсталирането и потребителят или MDM профил трябва да го разреши. Клиент, който се инсталира, но никога не се активира изглежда наличен в папката Applications и не прави нищо за свързаността.

Състоянието се записва от системата, а не от приложението, което е полезно, защото може да се заяви. Командата по-долу изброява разширенията, които системата познава, и състоянието им на активиране.

systemextensionsctl list
scutil --nc list

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

Кое да проверите при даден симптом

Съпоставете симптома със слоя, преди да отворите панел с настройки. Липсващата конфигурация е въпрос на профил, инсталиран, но неактивен компонент е въпрос на доставяне, а активен компонент, който не пропуска трафик, е въпрос на възможност.

SymptomFirst place to look
No VPN entry at allConfiguration profile or scutil list
Client installed, nothing happensExtension activation state
Tunnel up, private host unreachableTunnel provider routes and policy
One app blocked, others fineFilter or app proxy provider

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

log show --last 10m --predicate 'process == "nesessionmanager"'

Не заключавайте, че разширението е активно, защото има икона в лентата с менюта. Иконите преживяват неуспешни активирания и остарялата икона е една от най-честите причини обаждането до поддръжката да започне на грешното място. Четете вместо това състоянието на активиране, защото точно него записва системата.

Одобрение, MDM и митът за разширението на ядрото

На управлявани Mac стъпката на одобрение принадлежи на MDM профила и потребител, който натисне Allow в System Settings, може все още да бъде блокиран от политика, която не е актуализирана. Питайте екипа за настолни компютри кой механизъм одобрява разширението за тази партида, преди да помолите потребителя да натисне нещо.

За неуправляван Mac подканата за одобрение се появява веднъж и отхвърлянето може да е постоянно, докато разширението не се преинсталира. Това поведение обяснява машината, на която клиентът е работил преди актуализация на ОС и сега съобщава за връзка, която никога не се установява.

Запишете типа доставчик, състоянието на активиране и механизма за одобрение за клиента, който внедрявате. Тези три факта отговарят на повечето бъдещи въпроси за Mac VPN, без да отварят отново спора възможност срещу доставяне.

Подобни статии