Kažkas klausia, ar VPN veikia, ir trys skirtingi žmonės turi omenyje tris skirtingus dalykus. Operatorius turi omenyje, kad „Office“ profilis baigė autentifikaciją. Planuotojas turi omenyje, kad privatusis API atsakys. Saugumo apžvalga turi omenyje, kad ši konkreti užklausa išėjo saugiu keliu. Scenarijus, kuris grep pagalba ieško maršrutų lentelėje sąsajos pavadinimo, patikimai neatsako nė į vieną iš jų.

Todėl kontrolinis sąrašas prasideda prieš paleidžiant bet kurią komandą: įvardykite patikros subjektą. Viskas, kas eina po to, yra sąsajos, kuri iš tikrųjų gali tai pranešti, pasirinkimas.

Įvardykite subjektą prieš komandą

Užrašykite klausimą kaip predikatą su subjektu. „Ar Office profilis prijungtas“ yra patikrinama ir turi savininką, galintį atsakyti. „Ar ši užduotis gali pasiekti vidinį API“ yra antras predikatas su kitu gedimo režimu. „Ar ši užklausa naudoja saugų kelią“ yra trečias, ir jis vienintelis kalba apie vieną srautą, o ne apie visą mašiną.

Jų sumaišymas sukuria automatizaciją, kuri užtikrintai meluoja. Užduotis, kuri patikrina profilio būseną ir tada daro prielaidą, kad API paruoštas, iškvies ką nors netinkamame sluoksnyje, o užduotis, kuri pingina API ir tai vadina tunelio įrodymu, negali atskirti veikiančio VPN nuo nešiojamojo kompiuterio, kuris atsitiktinai yra biuro tinkle.

Vienas profilis: klauskite to, kam jis priklauso

Vietinei „Mac“ paslaugai tinklo ryšio valdikliai scutil praneša būtent tai. Jie nuskaito pavadintos konfigūracijos būseną, o ne ką nors išveda iš sąsajos.

scutil --nc list
scutil --nc status "Office VPN"

Profilio pavadinimas toje komandoje turi būti tikrasis iš sąrašo išvesties, o ne spėjimas. Tai tik skaitymo kelias vietinėms paslaugoms, ir tai negarantuoja, kad trečiosios šalies klientas ten apskritai pasirodys; teikėjui, kuris valdo savo tunelį, reikia savo palaikomos būsenos sąsajos. Patikrinkite sąrašą prieš rašydami būsenos kvietimą, kad trūkstamas pavadinimas matomai nepavyktų, o ne tyliai nieko neatitiktų.

„Network Extension“ programos viduje skaitykite būseną iš tvarkyklės ir ryšio objektų, o ne iš sistemos. Atkreipkite dėmesį į apimtį: įkėlus išsaugotas konfigūracijas grąžinamos tik kviečiančios programos sukurtos, todėl tuščias rezultatas reiškia „nė vienos mano“, o ne „šiame „Mac“ nėra VPN“. Atskirkite nepavykusią užklausą nuo patvirtintos atjungtos būsenos, o pereinamąsias būsenas traktuokite kaip atskirus rezultatus, o ne bandykite iš naujo jau kylančio ryšio.

Viena užduotis: pasirengimas yra atskiras predikatas

Jei klausimas, ar užduotis gali tęstis, patikrinkite tikrąją užduoties priklausomybę po to, kai ryšio savininkas praneša numatytą būseną. Apribota pasirengimo patikra prieš privatų išteklių yra tinkama forma: ji įrodo, ko užduočiai reikia, ir nieko daugiau.

Ji vis tiek negali įrodyti, kad kiekviena mašinos užklausa naudoja tunelį, ir neturėtų būti pranešama taip, tarsi galėtų. Taip pat išteklius, kuris atsako per įprastą tinklą, nėra VPN įrodymas, todėl abi patikros lieka atskiros net tada, kai abi pavyksta.

Kai užduočiai tikrai reikia saugaus kelio, tam reikalavimui reikia paties diegimo vykdymo projekto: maršrutizavimo, padalinto tunelio išimčių, ugniasienės taisyklės arba programos lygmens reikalavimo. Galinio taško prieinamumas yra faktas apie serverį. Vykdymas yra faktas apie kliento konfigūraciją, ir vienas neįrodo kito.

Vienas srautas: apžiūrėkite pasirinktą maršrutą

Vienam srautui pažiūrėkite į paskirties vietą, adresų šeimą ir šaltinio kontekstą su maršrutizavimo diagnostika, kuri praneša pasirinktą kelią būtent tai paskirties vietai. Ta išvestis įvardija faktiškai naudojamą sąsają ir šaltinio adresą, o tai yra daug stipresnis teiginys nei numatytojo maršruto įrašas.

Platūs naršyklės patikrinimai atsako į visiškai kitą klausimą. Viešojo IP rezultatas aprašo, kaip viena užklausa atrodė vieno serverio požiūriu, ir nieko nesako apie privatų DNS, pašalintas programas ar antrą tinklo kontekstą, kurį naudoja kitas procesas.

Grąžinkite rezultatą, kurį kviečiantysis gali naudoti

Pasirinkite predikatą atitinkančią grąžinimo formą: pavadintą profilio būseną, ištekliaus pasirengimo nuosprendį arba aiškų nežinomąjį su jį sukūrusiais įrodymais. Šalia nuosprendžio išsaugokite konfigūracijos tapatybę ir gedimo priežastį.

Būtent šis paskutinis įprotis daro skirtumą tarp automatizacijos, kuri padeda, ir automatizacijos, kuri slepia problemas. „Office VPN: atjungta, paskutinis bandymas nepavyko autentifikuojant“ pasako operatoriui, kur žiūrėti. „VPN neveikia“ kviečia perinstaliuoti, o „sąsaja rasta“ kviečia į klaidingą viskas gerai.

„Network Extension“ nuoroda apie išsaugotų tunelio konfigūracijų įkėlimą yra vieta, kur patvirtinsite kviečiančios programos apimtį prieš ką nors ant jos statydami.

Susiję straipsniai