VPN-кліент для Mac: Network Extension і System Extension
Network Extension — гэта магчымасць, а System Extensions — механізм дастаўкі: падзяляйце іх, каб выбраць крок зацвярджэння ў macOS і часопіс для чытання.
Два тэрміны Apple ужываюць так, нібы яны называюць адно і тое ж, і гэтая блытаніна вядзе людзей не ў тую панэль налад. Network Extension апісвае магчымасць: падтрыманы спосаб рэалізацыі VPN-тунэляў, праксі і фільтраў. System Extensions апісвае механізм дастаўкі і зацвярджэння для пашырэнняў у прасторы карыстальніка. Сучаснаму VPN-кліенту для Mac звычайна патрэбны абодва, таму ніводная этыкетка сама па сабе не тлумачыць сімптом. Раздзяленне двух адказвае, які кампанент правяраць і якога кроку зацвярджэння чакаць.
Два пытанні, а не адна этыкетка
Спытайце, што робіць кампанент, перш чым пытацца, як ён усталяваны. Магчымасць вызначае, які клас правайдэра існуе і, адпаведна, які код апрацоўвае вашыя пакеты. Механізм дастаўкі вызначае, як прыходзіць бінарнік, як ён зацвярджаецца і дзе запісваецца яго стан. Прадукт можа рэалізаваць тунэль пакетаў без пастаўкі сістэмнага пашырэння на старэйшых выпусках і можа паставіць сістэмнае пашырэнне, якое рэалізуе нешта іншае, чым тунэль.
Пашырэнні ядра — гэта трэці тэрмін, які людзі блытаюць. Яны былі старэйшым спосабам запуску прывілеяванага сеткавага кода, патрабавалі іншых зацвярджэнняў, і Apple ужо гады адштурхвае ад іх распрацоўшчыкаў. Прымяненне рэцэпту зацвярджэння пашырэння ядра да сучаснага кліента марнуе час на дыялог, які ніколі не з'явіцца.
Чытайце нататкі па разгортванні ад пастаўшчыка для версіі macOS, якую вы выкарыстоўваеце замест допісу на форуме з папярэдняга выпуску. Архітэктура змянялася не адзін раз, і інструкцыі хутка старэюць. Нататка, якая згадвае зацвярджэнне пашырэння ядра, апісвае іншую эпоху прадукту.
Што дае Network Extension
Фрэймворк прапануе тыпы правайдэраў для звычайных сеткавых задач: тунэль пакетаў для трафіку VPN, праксі праграм для патокаў асобных праграм, фільтр змесціва для інспекцыі трафіку і кіраванне DNS-праксі для паводзін рэзалвера. Тып правайдэра вызначае, што пашырэнне можа рабіць, і кліент, які пастаўляе два правайдэры, можа выконваць дзве розныя задачы.
Гэта важна падчас дыягностыкі, бо адзін і той жа сімптом злучэння можа ісці ад тунэля, фільтра або DNS-праксі. Блакаванне вэб-сайта — гэта рашэнне фільтра, няздольнасць дасягнуць прыватнай падсеткі звычайна рашэнне тунэля, а развязанне няправільнага адраса звычайна рашэнне рэзалвера. Названне тыпу правайдэра звужвае пошук перш чым чытаць любы часопіс.
Нішто ў фрэймворку не прадугледжвае пэўнай пазіцыі прыватнасці. Пашырэнне ў прасторы карыстальніка ўсё яшчэ мае дазволы, канфігурацыю і аператара за сабой, таму стаўцеся да архітэктуры як да дэталі рэалізацыі, а не як да сігналу даверу. Спытайце, хто кіруе канчатковым пунктам і што ён настроены збіраць.
Што змяняе System Extensions
Механізм пераносіць прывілеяваны код з ядра ў прастору карыстальніка і змяняе тое, як аперацыйная сістэма запытвае згоду. Актывацыя — асобны крок ад усталявання, і карыстальнік або профіль MDM павінен дазволіць яе. Кліент, які ўсталёўваецца, але ніколі не актывуецца выглядае прысутным у папцы Applications і нічога не робіць для злучэння.
Стан запісвае сістэма, а не праграма, што карысна, бо яго можна запытаць. Каманда ніжэй пералічвае пашырэнні, вядомыя сістэме, і стан іх актывацыі.
systemextensionsctl list
scutil --nc list
Першая каманда адказвае, ці ўсталяваны і актываваны кампанент. Другая пералічвае канфігурацыі VPN, якія трымае сістэма, — гэта іншае пытанне і часта менавіта тое, што важна, калі профіль злучэння адсутнічае, а не зламаны.
Што правяраць пры пэўным сімптоме
Супстаўце сімптом з узроўнем, перш чым адкрываць панэль налад. Адсутная канфігурацыя — пытанне профілю, усталяваны, але неактыўны кампанент — пытанне дастаўкі, а актыўны кампанент, які не прапускае трафік, — пытанне магчымасці.
| Symptom | First place to look |
|---|---|
| No VPN entry at all | Configuration profile or scutil list |
| Client installed, nothing happens | Extension activation state |
| Tunnel up, private host unreachable | Tunnel provider routes and policy |
| One app blocked, others fine | Filter or app proxy provider |
Паток часопіса — агульны доказ для двух апошніх радкоў. Чытанне падсістэмы сеткавага пашырэння кажа, які правайдэр апрацаваў паток, і рашэнне фільтра выглядае інакш, чым збой тунэля, нават калі карыстальнік апісвае абодва як зламаны VPN.
log show --last 10m --predicate 'process == "nesessionmanager"'
Не рабіце высновы, што пашырэнне актыўнае, толькі таму што ёсць значок у радку меню. Значкі перажываюць няўдалыя актывацыі, і састарэлы значок — адна з самых частых прычын таго, што званок у падтрымку пачынаецца не з таго месца. Чытайце замест гэтага стан актывацыі, бо менавіта яго запісвае сістэма.
Зацвярджэнне, MDM і міф пра пашырэнне ядра
На кіраваных Mac крок зацвярджэння належыць профілю MDM, і карыстальнік, які націскае Allow у System Settings, можа ўсё яшчэ быць заблакаваны палітыкай, якая не абнаўлялася. Спытайце ў каманды працоўных станцый, які механізм зацвярджае пашырэнне для гэтага парку, перш чым прасіць карыстальніка націснуць што-небудзь.
Для некіраванага Mac запыт зацвярджэння з'яўляецца адзін раз, і адхіленне можа быць пастаянным, пакуль пашырэнне не пераўсталююць. Такая паводзіны тлумачыць машыну, дзе кліент працаваў да абнаўлення АС, а цяпер паведамляе пра злучэнне, якое ніколі не ўстанаўліваецца.
Запішыце тып правайдэра, стан актывацыі і механізм зацвярджэння для кліента, які вы разгортваеце. Гэтыя тры факты адказваюць на большасць будучых пытанняў пра VPN на Mac, не адкрываючы зноў спрэчку пра магчымасць супраць дастаўкі.