Töövõtjal on vaja ühte sisemist veebirakendust ja mitte midagi muud, ning lihtne vastus on anda talle tunnel serveri alamvõrku. See töötab kuni päevani, mil ta selle skaneerib. Kitsam disain nõuab rohkem mõtlemist, sest kättesaadavus, marsruutimine ja rakenduse luba on kolm eraldi kontrolli, mis peavad kokku sobima.

Kirjuta nõue teenusena, mitte alamvõrgu

Alusta sihtkoha hostist, protokollist ja pordist, seejärel lisa kasutaja- või seadmegrupp, mis peaks selleni jõudma. Lisa privaatne DNS-tsoon ainult siis, kui rakendus lahendab nime, ja identiteedipakkuja ainult siis, kui sisselogimisvoog seda vajab. Kõik muu on sõltuvus, mida sa veel põhjendanud ei ole.

Alamvõrk on võrgumeeskonna rakendusdetail, samas kui teenus on see, mida äri küsis, ja üksus, mida saab üle vaadata ja kasutusest kõrvaldada.

Kui sõltuvuste loend kasvab üle kolme üksuse, vajab rakendus tõenäoliselt oma disainiarutelu.

Marsruudi kitsalt, aga jõusta mujal

Kitsas marsruut või valija ütleb tunnelile, milliseid pakette kanda; see ei ole autoriseerimispoliitika. Lüüsi filter, sihtkoha hosti tulemüür ja rakenduse enda lubade mudel on kohad, kus juurdepääs otsustatakse. Ühte aadressi kattev marsruut on hea algus ja see ei ole kontroll, mis peatab otsustuskindla kasutaja. Just see eraldatus võimaldab filtrit muuta ilma tunnelit ümber kujundamata.

Vastupidi, range filtriga lai marsruut võib olla legitiimne, kuid ainult siis, kui kõik asjaosalised teavad, kumb neist jõustab.

Dokumenteeri jõustamispunkt selgesõnaliselt, muidu liigutab järgmine muudatus selle kogemata.

Kontrolli allikat, mida teenus tegelikult näeb

Siht näeb kas kliendi basseini aadressi või lüüsi aadressi, sõltuvalt sellest, kas tõlgid. Hosti tulemüürireeglid ja logid peavad vastama tegelikule allikale. Kui mitu kasutajat jagavad tõlgitud allikat, ei saa ükski kasutajapõhine reegel sellel hostil neid eristada, ja see on disainipiirang, mitte viga.

Vali tõlkimine teadlikult: see lihtsustab marsruutimist ja hävitab allika identiteedi, mis loeb auditiks ja kasutajapõhisteks reegliteks.

Kirjuta üles, kumma kahest valisid, selle reegli kõrvale, mis sellest sõltub.

Rakenduse autoriseerimine ei ole valikuline

Pordini jõudmine ei anna rolli. Rakendus vajab endiselt oma sisselogimist ja oma lubasid, sest võrgukiht ei suuda väljendada, milliseid kirjeid kasutaja tohib muuta. Teenus, mis usaldab iga taotlust sisemisest alamvõrgust, muudab kitsa tunneli täielikuks juurdepääsuks ühe kompromiteeritud mandaadi jaoks. Tunnel otsustab, kes tohib pesa avada, ja rakendus otsustab, mida sellega tohib teha.

Siin tasub kitsas disain end kaks korda ära, sest vähem kättesaadavaid hoste tähendab vähem kohti, kus rakendustasandi viga saab ära kasutada.

Hoia võrgureegel ja rakenduse roll eraldi süsteemides ning kõrvalda need eraldi.

Tõesta nii lubatud kui ka keelatud teekond

Ühendu volitatud kasutajana ja tee üks kahjutu esindusoperatsioon, seejärel proovi sihtkohta, mis peaks olema kättesaamatu. Disain, mis testib ainult esimest poolt, ei ole testitud, ja just keeldumise test tõestab disaini. Testi värsket sessiooni pärast iga reeglimuudatust ja vaata tagasiteed, kui taotlused saabuvad, aga vastused mitte.

Ära lülita edastusfiltreid välja, et vastuvõtutest läbiks, sest see muudab asja, mida testitakse.

Kui kasutaja ei vaja teenust enam, kõrvalda kaugidentiteet ja rakenduse roll nende vastavates süsteemides ning registreeri mõlemad. strongSwan-i edastusjuhend katab teekonna lüüsipoolse osa.

Seotud artiklid