Napíšete skript, ktorý spúšťa scutil --nc start s názvom pripojenia, funguje na vašom Macu a zlyhá na každom čerstvo nainštalovanom stroji v kancelárii. Skript nie je pokazený. Žiada sa od neho niečo, čo nikdy nedokázal: spustenie existujúceho pripojenia nie je tá istá operácia ako vytvorenie nového.

Zriaďovanie a správa relácie sú dve práce s dvoma vlastníkmi a pracovný postup, ktorý predpokladá opak, prejde každým testom na stroji, kde vznikol.

S čím príkaz na spustenie naozaj hovorí

Príkaz na správu relácie sa obracia na konfiguráciu, ktorá už existuje a už je schválená. Žiada systém, aby toto pomenované pripojenie zdvihol, s použitím nastavení servera, odkazov na identitu a zásad uložených predtým. Ak sa tieto nikdy nenainštalovali, nie je čo spúšťať.

Preto sa zlyhanie objavuje na novom hardvéri a nie na notebooku správcu. Notebook bol zriadený pred mesiacmi človekom, ktorý na to medzitým zabudol. Berte príkaz na spustenie ako zvonec, ktorý niekto zapojil v minulom štvrťroku. Stlačiť ho nie je to isté ako položiť rozvody.

Traja vlastníci konfigurácie VPN

Profil spravovaný organizáciou pochádza zo správy zariadení. Profil nesie adresy servera, usporiadanie overovania a zásady, ktoré organizácia vyžaduje, a správca VPN je človek, ktorý ich dodáva. Skript by nemal tieto nastavenia rekonštruovať zo zobrazeného názvu nájdeného v zozname.

Natívna osobná konfigurácia VPN sa vytvára cez Network Extension API od Apple, ktoré pokrýva vstavané protokoly IPsec a IKEv2. To je rozhranie aplikácie s krokom uloženia a schválením používateľa, nie príkaz shellu, ktorý ticho vytvorí akýkoľvek typ tunela, ktorý dodávateľ dodá.

Klient tretej strany je tretí prípad s vlastným formátom importu, vlastným nástrojom správy a často vlastným privilegovaným pomocníkom. Jeho reláciu vlastní proces daného dodávateľa. Nájsť systémovú službu s podobným názvom nie je dôkaz, že systémový príkaz ovláda tunel, a takýto predpoklad vytvára skripty, ktoré vyzerajú funkčne, kým dodávateľ neaktualizuje klienta.

Natívne zriaďovanie má uloženie a schválenie

Model Applu je načítať, upraviť, uložiť. Aplikácia načíta existujúce predvoľby pred prvým uložením po spustení, zmení konfiguráciu a potom ju uloží. Uloženie hlási chybu, keď nemôže zapísať, a ignorovanie tohto výsledku premení zlyhanie zriaďovania na zlyhanie pripojenia o tri kroky neskôr.

Prvé uloženie tiež vyžaduje, aby používateľ aplikáciu schválil. Je to zámerná bezpečnostná hranica a znamená, že prvé spustenie na novom Macu je interaktívne, aj keď každé ďalšie pripojenie a odpojenie možno automatizovať. Naplánujte prvé spustenie ako ľudskú úlohu s prítomným človekom. Automatizujte druhé spustenie a ďalšie a napíšte to do runbooku, aby nikto nesľuboval nemožné. Plán nasadenia, ktorý sľubuje plne bezobslužné prvé spustenie, sľubuje niečo, čo platforma neponúka.

Apple tiež odporúča overiť kompatibilitu servera pomocou konfiguračného profilu, než sa na API spoliehate. Ak túto kontrolu urobíte prvú, oddelí «server tohto klienta neprijme» od «klient nikdy neuložil nastavenia», čo sú rôzne tikety pre rôzne tímy.

Čo môže opakovateľný príkaz na spustenie predpokladať

Po zriadení sa skript môže bezpečne zamerať na existujúce pripojenie cez rozhranie jeho vlastníka. Odovzdajte mu stabilnú identitu pripojenia plus akciu, ktorú chcete, a nič iné. Nemal by čítať odhadovanú cestu k predvoľbám a nemal by predpokladať, že názov v ponuke je v celom systéme jedinečný.

Pri natívnych pripojeniach je pomenovaná požiadavka na reláciu, ako scutil --nc start, riadiaca operácia. Neinštaluje nastavenia servera, neimportuje prihlasovacie údaje a nevykonáva autorizáciu prvého uloženia. Berte ju ako posledný krok reťaze, nikdy ako celú reťaz.

Udržujte tajomstvá mimo argumentov príkazového riadka a mimo bežného diagnostického výstupu. Akýkoľvek mechanizmus identity nasadenie zvolilo, na ten sa má príkaz na spustenie spoliehať, a heslo vložené do histórie shellu je nálezom v každej revízii.

Dve kontroly prijatia

Prvá kontrola je zriadenie: vezmite čerstvo nainštalovaný Mac a preukážte, že konfigurácia existuje, patrí správnemu správcovi a je plne schválená. Urobte to pred testovaním konektivity, pretože test pripojenia na nezriadenom stroji o skripte nič nedokazuje.

Druhá kontrola je relácia: pripojte sa, dosiahnite autorizovaný zdroj a čisto sa odpojte. Každé zlyhanie má teraz vlastníka, a to je praktický prínos rozdelenia oboch prác. Chýbajúci profil je problém doručenia, chyba uloženia je problém schválenia, odmietnuté prihlásenie je problém overovania a časový limit po úspešnom spustení je vrstva relácie. Ani jedno z nich nie je «skript je pokazený».

Súvisiace články