To Apple-termer brukes som om de navngir det samme, og forvirringen sender folk til feil innstillingspanel. Network Extension beskriver en evne: en støttet måte å implementere VPN-tunneler, proxyer og filtre på. System Extensions beskriver en leverings- og godkjenningsmekanisme for utvidelser i brukerrommet. En moderne Mac VPN-klient trenger vanligvis begge, og derfor forklarer ingen av etikettene alene et symptom. Å skille de to svarer på hvilken komponent som skal undersøkes og hvilket godkjenningstrinn som kan forventes.

To spørsmål, ikke én etikett

Spør hva komponenten gjør før du spør hvordan den installeres. Evnen avgjør hvilken leverandørklasse som finnes og dermed hvilken kode som håndterer pakkene dine. Leveringsmekanismen avgjør hvordan binæren kommer, hvordan den godkjennes og hvor tilstanden registreres. Et produkt kan implementere en pakketunnel uten å levere en systemutvidelse på eldre versjoner, og det kan levere en systemutvidelse som implementerer noe annet enn en tunnel.

Kjerneutvidelser er det tredje uttrykket folk blander inn. De var den eldre måten å kjøre privilegert nettverkskode på, de krevde andre godkjenninger, og Apple har i årevis styrt utviklere bort fra dem. Å bruke en oppskrift for godkjenning av kjerneutvidelser på en moderne klient kaster bort tid på en dialog som aldri vises.

Les distribusjonsnotatene fra leverandøren for macOS-versjonen du kjører i stedet for et foruminnlegg fra en tidligere versjon. Arkitekturen endret seg mer enn én gang, og instruksjonene blir fort utdaterte. Et notat som nevner godkjenning av kjerneutvidelser, beskriver en annen æra av produktet.

Hva Network Extension tilbyr

Rammeverket tilbyr leverandørtyper for de vanlige nettverksoppgavene: en pakketunnel for VPN-trafikk, en app-proxy for strømmer per applikasjon, et innholdsfilter for å inspisere trafikk og DNS-proxyhåndtering for oppførselen til resolveren. Leverandørtypen bestemmer hva utvidelsen kan gjøre, og en klient som leverer to leverandører, kan utføre to forskjellige jobber.

Det betyr noe under diagnostikk fordi det samme tilkoblingssymptomet kan komme fra en tunnel, et filter eller en DNS-proxy. Å blokkere et nettsted er en filterbeslutning, å ikke nå et privat subnett er vanligvis en tunnelbeslutning, og å løse feil adresse er vanligvis en resolverbeslutning. Å navngi leverandørtypen snevrer inn søket før noen logg leses.

Ingenting i rammeverket antyder en personvernsholdning. En utvidelse i brukerrommet har fortsatt tillatelser, konfigurasjon og en operatør bak seg, så behandle arkitekturen som en implementeringsdetalj og ikke som et tillitssignal. Spør hvem som driver endepunktet og hva det er konfigurert til å samle inn.

Hva System Extensions endrer

Mekanismen flytter privilegert kode ut av kjernen og inn i brukerrommet, og den endrer hvordan operativsystemet ber om samtykke. Aktivering er et eget trinn fra installasjon, og brukeren eller en MDM-profil må tillate det. En klient som installeres, men aldri aktiveres ser ut til å være i mappen Applications og gjør ingenting for tilkoblingen.

Tilstanden registreres av systemet og ikke av appen, noe som er nyttig fordi den kan spørres. Kommandoen nedenfor viser utvidelsene systemet kjenner og aktiveringstilstanden deres.

systemextensionsctl list
scutil --nc list

Den første kommandoen svarer på om komponenten er installert og aktivert. Den andre viser VPN-konfigurasjonene systemet har, noe som er et annet spørsmål og ofte det som betyr noe når en tilkoblingsprofil mangler i stedet for å være ødelagt.

Hvilken som skal undersøkes for et gitt symptom

Koble symptomet til laget før du åpner et innstillingspanel. En manglende konfigurasjon er et profilspørsmål, en installert men inaktiv komponent er et leveringsspørsmål, og en aktiv komponent som ikke slipper trafikk gjennom, er et evnespørsmål.

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

Loggstrømmen er det felles beviset for de to siste radene. Å lese nettverksutvidelses-delsystemet forteller hvilken leverandør som håndterte strømmen, og en filterbeslutning ser annerledes ut enn en tunnelfeil selv når brukeren beskriver begge som ødelagt VPN.

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

Ikke konkluder med at en utvidelse er aktiv fordi det finnes et ikon i menylinjen. Ikoner overlever mislykkede aktiveringer, og et utdatert ikon er en av de vanligste årsakene til at en supporthenvendelse starter på feil sted. Les aktiveringstilstanden i stedet, fordi det er den systemet registrerer.

Godkjenning, MDM og myten om kjerneutvidelser

På administrerte Mac-er tilhører godkjenningstrinnet MDM-profilen, og en bruker som klikker Allow i System Settings kan fortsatt bli blokkert av en policy som ikke er oppdatert. Spør skrivebordsteamet hvilken mekanisme som godkjenner utvidelsen for den flåten, før du ber brukeren klikke på noe.

På en ikke-administrert Mac vises godkjenningsforespørselen én gang, og en avvisning kan være permanent til utvidelsen installeres på nytt. Den oppførselen forklarer maskinen der klienten fungerte før en OS-oppgradering og nå rapporterer en tilkobling som aldri etableres.

Skriv ned leverandørtypen, aktiveringstilstanden og godkjenningsmekanismen for klienten du distribuerer. Disse tre fakta besvarer de fleste fremtidige spørsmål om en Mac VPN uten å gjenåpne debatten om evne kontra levering.

Relaterte artikler