Mac-VPN-status: kyk na die profiel, die hulpbron of die vloei
Een booleaanse waarde kan nie drie verskillende vrae beantwoord nie. Kies eers die onderwerp, gebruik dan die koppelvlak wat dit werklik rapporteer, en hou die foutredes by.
Iemand vra of die VPN op is, en drie verskillende mense bedoel drie verskillende dinge daarmee. ’n Operateur bedoel die kantoorprofiel het klaar geauthentiseer. ’n Skeduleerder bedoel die private API sal antwoord. ’n Sekuriteitsoudit bedoel hierdie spesifieke versoek het deur die beskermde pad gegaan. ’n Skrip wat die roetetabel vir ’n koppelvlaknaam deursoek, beantwoord geeneen van hulle betroubaar nie.
Die kontrolelys begin dus voordat enige opdrag loop: benoem die onderwerp van die kontrole. Alles daarna is die keuse van die koppelvlak wat dit werklik kan rapporteer.
Benoem die onderwerp voor die opdrag
Skryf die vraag as ’n predikaat met ’n onderwerp. “Is die kantoorprofiel gekoppel” is toetsbaar en het ’n eienaar wat dit kan beantwoord. “Kan hierdie taak die interne API bereik” is ’n tweede predikaat met ’n ander foutmodus. “Gebruik hierdie versoek die beskermde pad” is ’n derde, en dit is die enigste een wat oor ’n enkele vloei praat eerder as oor die hele masjien.
Om hulle te meng lewer outomatisering wat selfversekerd lieg. ’n Taak wat die profielstatus nagaan en dan aanneem die API is gereed, sal iemand op die verkeerde vlak oproep, en ’n taak wat die API ping en dit bewys van ’n tonnel noem, kan nie ’n werkende VPN onderskei van ’n skootrekenaar wat toevallig op die kantoornetwerk is nie.
Een profiel: vra die ding wat dit besit
Vir ’n inheemse Mac-diens rapporteer die netwerkverbinding-beheerders in scutil presies dit. Hulle lees die toestand van ’n genoemde konfigurasie eerder as om iets uit ’n koppelvlak af te lei.
scutil --nc list
scutil --nc status "Office VPN"
Die profielnaam in daardie opdrag moet die regte een uit die lys se uitset wees, nie ’n raaiskoot nie. Dit is ’n lees-alleen-pad vir inheemse dienste, en dit is nie ’n waarborg dat ’n derdeparty-kliënt daar hoegenaamd verskyn nie; ’n verskaffer wat sy eie tonnel bestuur, het sy eie ondersteunde statuskoppelvlak nodig. Gaan die lys na voordat jy die status-oproep skryf, sodat ’n ontbrekende naam sigbaar misluk eerder as om stilweg niks te pas nie.
Lees binne ’n Network Extension-program die status uit die bestuurder- en verbinding-objekte eerder as uit die stelsel. Wees hier versigtig oor omvang: die laai van gestoorde konfigurasies gee slegs dié terug wat deur die oproepende program geskep is, so ’n leë resultaat beteken “geen van myne nie”, nie “geen VPN op hierdie Mac nie”. Onderskei ’n mislukte navraag van ’n bevestigde ontkoppelde toestand, en hanteer die oorgangstoestande as hul eie uitkomste eerder as om ’n verbinding wat al besig is om op te kom, weer te probeer.
Een taak: gereedheid is ’n aparte predikaat
As die vraag is of ’n taak kan voortgaan, toets die taak se werklike afhanklikheid nadat die verbinding-eienaar die bedoelde toestand gerapporteer het. ’n Begrensde gereedheidskontrole teen die private hulpbron is die regte vorm: dit bewys wat die taak nodig het en niks meer nie.
Dit kan steeds nie bewys dat elke versoek op die masjien die tonnel gebruik nie, en dit moet nie gerapporteer word asof dit kan nie. Net so is ’n hulpbron wat oor die gewone netwerk antwoord, nie bewys van ’n VPN nie; daarom bly die twee kontroles apart selfs wanneer albei slaag.
Wanneer die taak werklik ’n beskermde pad vereis, het daardie vereiste die ontplooiing se eie handhawingsontwerp nodig: roetering, split-tonnel-uitsluitings, ’n firewall-reël of ’n vereiste op toepassingsvlak. Beskikbaarheid van ’n eindpunt is ’n feit oor ’n bediener. Handhawing is ’n feit oor die kliënt se konfigurasie, en een bewys nie die ander nie.
Een vloei: ondersoek die gekose roete
Vir ’n enkele vloei, kyk na die bestemming, die adresfamilie en die bronkonteks met die roeteringsdiagnostiek wat die gekose pad vir daardie spesifieke bestemming rapporteer. Daardie uitset noem die koppelvlak en die bronadres wat werklik gebruik word, wat ’n veel sterker bewering is as ’n verstekroete-inskrywing.
Breedvoerige blaaierkontroles beantwoord ’n heeltemal ander vraag. ’n Openbare IP-resultaat beskryf hoe een versoek van een bediener se oogpunt gelyk het, en dit sê niks oor private DNS, uitgeslote toepassings of ’n tweede netwerkkonteks wat ’n ander proses gebruik nie.
Gee ’n resultaat terug wat die oproeper kan gebruik
Kies ’n teruggawevorm wat by die predikaat pas: ’n genoemde profieltoestand, ’n uitspraak oor hulpbron-gereedheid, of ’n eksplisiete onbekende met die bewyse wat dit opgelewer het. Hou die konfigurasie-identiteit en die foutrede langs die uitspraak.
Daardie laaste gewoonte maak die verskil tussen outomatisering wat help en outomatisering wat probleme verberg. “Kantoor-VPN: ontkoppel, laaste poging het by verifikasie gefaal” sê vir ’n operateur waar om te kyk. “VPN is af” nooi ’n herinstallasie uit, en “koppelvlak gevind” nooi ’n valse alles-veilig uit.
Die Network Extension-verwysing vir laai van gestoorde tonnelkonfigurasies is die plek om die oproepende program se omvang te bevestig voordat jy iets daarop bou.