Rangovui reikia vienos vidinės žiniatinklio programos ir nieko daugiau, o paprastas atsakymas yra duoti jam tunelį į serverio potinklį. Tai veikia iki tos dienos, kai jis ją nuskenuoja. Siauresnis dizainas reikalauja daugiau mąstymo, nes pasiekiamumas, maršrutizavimas ir programos leidimas yra trys atskiros kontrolės, kurios turi sutarti.

Reikalavimą parašykite kaip paslaugą, o ne potinklį

Pradėkite nuo paskirties hosto, protokolo ir prievado, tada pridėkite naudotojų ar įrenginių grupę, kuri turi jį pasiekti. Privatų DNS zoną įtraukite tik jei programa išsprendžia vardą, o tapatybės teikėją – tik jei prisijungimo eigai jo reikia. Visa kita yra priklausomybė, kurios dar nepagrindėte.

Potinklis yra tinklo komandos įgyvendinimo detalė, o paslauga yra tai, ko paprašė verslas, ir vienetas, kurį galima peržiūrėti ir nutraukti.

Jei priklausomybių sąrašas viršija tris elementus, programai tikriausiai reikia atskiro dizaino pokalbio.

Maršrutizuokite siaurai, bet vykdykite kitur

Siauras maršrutas ar selektorius pasako tuneliui, kokius paketus nešti; tai nėra autorizacijos politika. Šliuzo filtras, paskirties hosto užkarda ir pačios programos leidimų modelis yra vietos, kur sprendžiama dėl prieigos. Maršrutas, apimantis vieną adresą, yra gera pradžia, ir tai nėra kontrolė, sustabdanti ryžtingą naudotoją. Būtent šis atskyrimas leidžia pakeisti filtrą neperprojektuojant tunelio.

Priešingai, platus maršrutas su griežtu filtru gali būti teisėtas, bet tik jei visi dalyvaujantys žino, kuris iš jų atlieka vykdymą.

Aiškiai dokumentuokite vykdymo tašką, kitaip kitas pakeitimas jį netyčia perkels.

Patikrinkite šaltinį, kurį paslauga iš tikrųjų mato

Paskirtis mato arba kliento baseino adresą, arba šliuzo adresą, priklausomai nuo to, ar verčiate. Hosto užkardos taisyklės ir žurnalai turi atitikti tikrąjį šaltinį. Jei keli naudotojai dalijasi išverstu šaltiniu, jokia taisyklė vienam naudotojui tame hoste negali jų atskirti, ir tai yra dizaino apribojimas, o ne klaida.

Rinkitės vertimą sąmoningai: jis supaprastina maršrutizavimą ir sunaikina šaltinio tapatybę, o tai svarbu auditui ir taisyklėms vienam naudotojui.

Užsirašykite, kurią iš dviejų pasirinkote, šalia taisyklės, kuri nuo to priklauso.

Programos autorizacija nėra pasirenkama

Pasiekti prievadą nesuteikia vaidmens. Programai vis dar reikia savo prisijungimo ir savo leidimų, nes tinklo sluoksnis negali išreikšti, kuriuos įrašus naudotojas gali redaguoti. Paslauga, kuri pasitiki bet kokia užklausa iš vidinio potinklio, siaurą tunelį paverčia visiška prieiga vienam pažeistam prisijungimo duomeniui. Tunelis nusprendžia, kas gali atidaryti lizdą, o programa nusprendžia, ką su juo galima daryti.

Čia siauras dizainas atsiperka du kartus, nes mažiau pasiekiamų hostų reiškia mažiau vietų, kur programos lygio klaida gali būti išnaudota.

Laikykite tinklo taisyklę ir programos vaidmenį atskirose sistemose ir nutraukite juos atskirai.

Įrodykite ir leistą, ir atmestą kelią

Prisijunkite kaip įgaliotas naudotojas ir atlikite vieną nekenksmingą reprezentatyvią operaciją, tada pabandykite paskirties vietą, kuri turėtų būti nepasiekiama. Dizainas, kuris tikrina tik pirmąją pusę, nėra patikrintas, ir būtent atmetimo testas įrodo dizainą. Po kiekvieno taisyklės pakeitimo išbandykite naują sesiją, o jei užklausos ateina, bet atsakymai ne, pažiūrėkite į grįžimo kelią.

Neišjunkite persiuntimo filtrų, kad priėmimo testas praeitų, nes tai pakeičia tai, kas testuojama.

Kai naudotojui paslaugos nebereikia, nutraukite nuotolinę tapatybę ir programos vaidmenį jų atitinkamose sistemose ir užregistruokite abu. strongSwan persiuntimo vadovas apima kelio šliuzo pusę.

Susiję straipsniai