Mac-VPN-kliënt: Network Extension teenoor System Extension
Network Extension is 'n vermoë en System Extensions 'n afleweringsmeganisme: skei hulle om die macOS-goedkeuringsstap en die log te kies om te lees.
Twee Apple-terme word gebruik asof hulle dieselfde ding benoem, en dié verwarring stuur mense na die verkeerde instellingspaneel. Network Extension beskryf 'n vermoë: 'n ondersteunde manier om VPN-tonnels, volmagte en filters te implementeer. System Extensions beskryf 'n aflewerings- en goedkeuringsmeganisme vir uitbreidings in gebruikersruimte. 'n Moderne Mac-VPN-kliënt het gewoonlik albei nodig, en daarom verduidelik nie een van die twee etikette alleen 'n simptoom nie. Om die twee te skei, antwoord watter komponent om na te gaan en watter goedkeuringsstap om te verwag.
Twee vrae, nie een etiket nie
Vra wat die komponent doen voordat jy vra hoe dit geïnstalleer word. Die vermoë bepaal watter verskaffersklas bestaan en dus watter kode jou pakkette hanteer. Die afleweringsmeganisme bepaal hoe die binêre lêer aankom, hoe dit goedgekeur word en waar sy toestand aangeteken word. 'n Produk kan 'n pakkettunnel implementeer sonder om 'n stelseluitbreiding op ouer weergawes te lewer, en dit kan 'n stelseluitbreiding lewer wat iets anders as 'n tonnel implementeer.
Kernuitbreidings is die derde term wat mense bymeng. Hulle was die ouer manier om bevoorregte netwerkkode te laat loop, hulle het ander goedkeurings vereis, en Apple stuur ontwikkelaars al jare daarvan weg. Om 'n resep vir kernuitbreidingsgoedkeuring op 'n moderne kliënt toe te pas, mors tyd op 'n dialoog wat nooit sal verskyn nie.
Lees die verskaffer se ontplooiingsnotas vir die macOS-weergawe wat jy gebruik eerder as 'n forumplasing uit 'n vroeëre weergawe. Die argitektuur het meer as een keer verander, en instruksies verouder vinnig. 'n Nota wat goedkeuring van kernuitbreidings noem, beskryf 'n ander era van die produk.
Wat Network Extension bied
Die raamwerk bied verskaffertipes vir die algemene netwerkwerk: 'n pakkettunnel vir VPN-verkeer, 'n app-volmag vir stroom per toepassing, 'n inhoudfilter om verkeer te ondersoek, en DNS-volmaghantering vir die gedrag van die resolver. Die verskaffertipe bepaal wat die uitbreiding kan doen, en 'n kliënt wat twee verskaffers lewer, kan twee verskillende take doen.
Dit maak saak tydens diagnose, want dieselfde verbindingsimptoom kan van 'n tonnel, 'n filter of 'n DNS-volmag kom. Om 'n webwerf te blokkeer is 'n filterbesluit, om nie 'n private subnet te bereik nie is gewoonlik 'n tonnelbesluit, en om die verkeerde adres op te los is gewoonlik 'n resolverbesluit. Om die verskaffertipe te benoem, vernou die soektog voordat enige log gelees word.
Niks aan die raamwerk impliseer 'n privaatheids-houding nie. 'n Uitbreiding in gebruikersruimte het steeds toestemmings, konfigurasie en 'n operateur agter hom, so behandel die argitektuur as 'n implementeringsdetail eerder as 'n vertrouesignaal. Vra wie die eindpunt bedryf en waarvoor dit gekonfigureer is om te versamel.
Wat System Extensions verander
Die meganisme skuif bevoorregte kode uit die kern na gebruikersruimte, en dit verander hoe die bedryfstelsel om toestemming vra. Aktivering is 'n aparte stap van installasie, en die gebruiker of 'n MDM-profiel moet dit toelaat. 'n Kliënt wat installeer maar nooit aktiveer nie lyk teenwoordig in die Applications-gids en doen niks vir verbinding nie.
Toestand word deur die stelsel aangeteken eerder as deur die app, wat nuttig is omdat dit bevraag kan word. Die opdrag hieronder lys die uitbreidings wat die stelsel ken en hul aktiveringstoestand.
systemextensionsctl list
scutil --nc list
Die eerste opdrag antwoord of die komponent geïnstalleer en geaktiveer is. Die tweede lys die VPN-konfigurasies wat die stelsel hou, wat 'n ander vraag is en dikwels die een wat saak maak wanneer 'n verbindingsprofiel ontbreek eerder as stukkend is.
Watter een om na te gaan vir 'n gegewe simptoom
Pas die simptoom by die laag voordat jy 'n instellingspaneel oopmaak. 'n Ontbrekende konfigurasie is 'n profielvraag, 'n geïnstalleerde maar onaktiewe komponent is 'n afleweringsvraag, en 'n aktiewe komponent wat nie verkeer kan deurlaat nie is 'n vermoëvraag.
| 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 |
Die logstroom is die gedeelde bewys vir die laaste twee rye. Om die netwerkuitbreiding-subsisteem te lees, vertel watter verskaffer die stroom hanteer het, en 'n filterbesluit lyk anders as 'n tonnelfout selfs wanneer die gebruiker albei as die VPN wat stukkend is beskryf.
log show --last 10m --predicate 'process == "nesessionmanager"'
Moenie aflei dat 'n uitbreiding aktief is omdat 'n kieslysbalk-ikoon teenwoordig is nie. Ikone oorleef mislukte aktiverings, en 'n verouderde ikoon is een van die mees algemene redes waarom 'n ondersteuningsoproep op die verkeerde plek begin. Lees eerder die aktiveringstoestand, want dit is wat die stelsel aanteken.
Goedkeuring, MDM en die kernuitbreidings-mite
Op bestuurde Macs behoort die goedkeuringsstap aan die MDM-profiel, en 'n gebruiker wat Allow in System Settings klik, kan steeds geblokkeer word deur 'n beleid wat nie opgedateer is nie. Vra die lessenaarspan watter meganisme die uitbreiding vir daardie vloot goedkeur voordat jy die gebruiker vra om enigiets te klik.
Vir 'n onbestuurde Mac verskyn die goedkeuringsopdrag een keer, en 'n verwerping kan permanent wees totdat die uitbreiding herinstalleer word. Daardie gedrag verduidelik die masjien waar die kliënt voor 'n bedryfstelsel-opgradering gewerk het en nou 'n verbinding rapporteer wat nooit tot stand kom nie.
Skryf die verskaffertipe, die aktiveringstoestand en die goedkeuringsmeganisme neer vir die kliënt wat jy ontplooi. Daardie drie feite beantwoord die meeste toekomstige vrae oor 'n Mac-VPN sonder om die argument van vermoë teenoor aflewering weer oop te maak.