Pišete skriptu koja izvršava scutil --nc start s imenom veze, radi na vašem Macu i pada na svakom novoinstaliranom računalu u uredu. Skripta nije pokvarena. Od nje se traži nešto što nikada nije mogla: pokretanje postojeće veze nije ista operacija kao stvaranje nove.

Priprema i kontrola sesije dva su posla s dva vlasnika, a tijek rada koji pretpostavlja suprotno proći će svaki test na računalu na kojem je napisan.

S čime naredba za pokretanje zapravo razgovara

Naredba za kontrolu sesije obraća se konfiguraciji koja već postoji i već je odobrena. Traži od sustava da podigne tu imenovanu vezu, koristeći postavke poslužitelja, reference identiteta i pravila spremljena ranije. Ako one nikada nisu instalirane, nema što pokrenuti.

Zato se kvar pojavljuje na novom hardveru, a ne na prijenosnom računalu administratora. Prijenosno računalo pripremljeno je prije nekoliko mjeseci od osobe koja je to u međuvremenu zaboravila. Zamislite naredbu za pokretanje kao zvono na vratima koje je netko ožičio prošlog tromjesečja. Pritisnuti ga nije isto što i postaviti ožičenje.

Tri vlasnika VPN konfiguracije

Profil kojim upravlja organizacija dolazi iz upravljanja uređajima. Profil nosi adrese poslužitelja, način provjere autentičnosti i pravila koja organizacija zahtijeva, a VPN administrator je osoba koja ih dostavlja. Skripta ne bi smjela ponovno graditi te postavke iz prikazanog imena koje je pronašla na popisu.

Izvorna osobna VPN konfiguracija stvara se putem Appleova Network Extension API-ja, koji pokriva ugrađene protokole IPsec i IKEv2. To je aplikacijsko sučelje s korakom spremanja i korisničkom potvrdom, a ne naredba ljuske koja tiho stvara bilo koju vrstu tunela koju dobavljač isporuči.

Klijent treće strane treći je slučaj s vlastitim formatom uvoza, vlastitim alatom za upravljanje i često vlastitim privilegiranim pomoćnikom. Njegovu sesiju posjeduje proces tog dobavljača. Pronalaženje sustavne usluge sličnog imena nije dokaz da sustavna naredba upravlja tunelom, a takva pretpostavka stvara skripte koje izgledaju ispravno dok dobavljač ne ažurira klijenta.

Izvorna priprema ima spremanje i odobrenje

Appleov model je učitaj, izmijeni, spremi. Aplikacija učitava postojeće postavke prije prvog spremanja nakon pokretanja, mijenja konfiguraciju i zatim je sprema. Spremanje prijavljuje pogrešku kada ne može ustrajati, a ignoriranje tog rezultata pretvara kvar pripreme u kvar veze tri koraka kasnije.

Prvo spremanje također zahtijeva da korisnik odobri aplikaciju. To je namjerna sigurnosna granica i znači da je prvo pokretanje na novom Macu interaktivno čak i kada se svako kasnije povezivanje i odspajanje može automatizirati. Planirajte prvo pokretanje kao ljudski zadatak s prisutnom osobom. Automatizirajte drugo pokretanje i dalje, i napišite to u runbooku kako nitko ne bi obećavao nemoguće. Plan uvođenja koji obećava potpuno nenadzirano prvo pokretanje obećava nešto što platforma ne nudi.

Apple također preporučuje provjeru kompatibilnosti poslužitelja konfiguracijskim profilom prije oslanjanja na API. Ako tu provjeru napravite prvo, odvajate «poslužitelj neće prihvatiti ovog klijenta» od «klijent nikada nije spremio postavke», a to su različite kartice za različite timove.

Što ponovljiva naredba za pokretanje smije pretpostaviti

Nakon pripreme, skripta može sigurno ciljati postojeću vezu kroz sučelje njezina vlasnika. Predajte joj stabilan identitet veze plus radnju koju želite, i ništa drugo. Ne bi smjela čitati nagađanu putanju postavki i ne bi smjela pretpostaviti da je ime prikazano u izborniku jedinstveno u cijelom sustavu.

Za izvorne veze, imenovani zahtjev za sesiju poput scutil --nc start upravljačka je operacija. Ne instalira postavke poslužitelja, ne uvozi vjerodajnice i ne provodi autorizaciju prvog spremanja. Tretirajte ga kao posljednji korak lanca, nikada kao cijeli lanac.

Držite tajne izvan argumenata naredbenog retka i izvan uobičajenog dijagnostičkog izlaza. Koji god mehanizam identiteta uvođenje odabralo, na njemu se naredba za pokretanje treba temeljiti, a lozinka zalijepljena u povijest ljuske nalaz je u svakom pregledu.

Dvije provjere prihvaćanja

Prva provjera je priprema: uzmite novoinstalirano računalo Mac i dokažite da konfiguracija postoji, da je u vlasništvu ispravnog upravitelja i da je potpuno odobrena. Učinite to prije testiranja povezivosti, jer test veze na nepripremljenom računalu ne dokazuje ništa o skripti.

Druga provjera je sesija: povežite se, dođite do ovlaštenog resursa i čisto se odspojite. Svaki kvar sada ima vlasnika, i to je praktična korist od razdvajanja dvaju poslova. Profil koji nedostaje problem je dostave, pogreška spremanja problem je odobrenja, odbijena prijava problem je autentikacije, a istek vremena nakon uspješnog pokretanja sloj je sesije. Nijedan od njih nije «skripta je pokvarena».

Povezani članci