Meshnet, Docker ir leidimas tarp jų
Tinklo bendras, pasiekiantis paskelbtą konteinerį, pereina prieglobos leidimą ir Docker vertimą. Nagrinėkite abu atskirai, kitaip patvirtinsite neteisingą apimtį.
Du URL gali atrodyti vienodai bendro naršyklėje ir vis dėlto reikšti ugniasienei visiškai skirtingus dalykus. Vienas rodo į paslaugą, kuri klausosi pačioje priegloboje. Kitas rodo į prieglobos adresą, kurio prievadas paskelbtas konteinerių tinkle, kur vertimo žingsnis perduoda ryšį kitam IP. Bendrų tinkle, kuris vietinio tinklo prieigą valdo leidimu kiekvienam bendrui, tas skirtumas yra visas nagrinėjimas.
Leidimas susijęs su prieglobos galiniu tašku, vertimas – su Docker, o prisijungimas – su programa. Trys sprendimai, trys vietos, kur žiūrėti.
Sekite paskirties vietą po paskelbimo
Paimkite Linux Docker prieglobą, kuri skelbia konteinerio 80 prievadą prieglobos 8080 prievade. Bendras prisijungia prie prieglobos tinklo adreso 8080, priegloba priima ryšį, o paskirties vietos vertimas jį perrašo į konteinerio tilto adresą, paprastai į kažką panašaus į 172.17.0.2 80 prievade.
Kai taisyklė tikrina tą srautą, įdomi paskirties vieta yra konteineris, o ne priegloba. Politika, kuri svarsto tik „paslaugą šioje mašinoje“, svarsto apie neteisingą objektą. Užklausa nusileido priegloboje, bet ji pristatoma kitur.
Štai kodėl tinklo dokumentacija įtraukia Docker konteinerius į išteklius, kuriuos Linux valdo vietinio tinklo leidimas. Leidimas nėra įprasto VPN leidžiamųjų sąrašo įrašo sinonimas, ir šios dvi kontrolės viena kitos nepakeičia. Viena sprendžia, ar bendras apskritai gali pasiekti vietinius išteklius; kita sprendžia, kokias paskirties vietas neša tunelio maršrutas.
Nuspręskite, kiek vietinės prieigos suteikia leidimas
Suteikti bendrui vietinio tinklo prieigą nėra vieno konteinerio sprendimas. Tai gali atskleisti kitas paskelbtas paslaugas toje pačioje priegloboje, ir gali siekti toliau priklausomai nuo to, kaip priegloba persiunčia. Peržiūrėkite faktinę apimtį prieš spausdami jungiklį vienai informacinei panelei.
Tada pažiūrėkite, kur Docker skelbia prievadą. Paskelbimas 0.0.0.0 sukuria klausytoją kiekviename prieglobos adrese, o tai gali pridėti įprastą LAN įrašą šalia tinklo įrašo. Jei reikalavimas yra tik tinklas, susiekite paskelbimą su konkrečiu adresu ar sąsaja, kurią turite omenyje, ir platesnį susiejimą traktuokite kaip atskirą radinį, o ne kaip patogumą.
Laikykite prieglobos persiuntimo politiką ir pačios programos autentifikaciją pakankamai siauras paslaugai. URL, kuris atrodo privatus, nėra prieigos kontrolė, o konteineris, kuris pasitiki kiekvienu šaltiniu savo tilto tinkle, nėra apsaugotas tuo, kad tinklo bendras buvo patvirtintas. Programos autentifikacija yra trečias sprendimas ir vienintelis, kuris žino, kas yra naudotojas. Prieglobos lygio leidimas negali suteikti šių žinių.
Išbandykite leidimą, ne tik URL
Iš patvirtinto bendro atidarykite tiksliai tą paslaugą ir patvirtinkite, kad ji veikia. Tada išbandykite paskirties vietą, kuri turėtų likti atmesta, ir patvirtinkite, kad ji neveikia. Tik laimingo kelio bandymas pasako, kad leidimas buvo suteiktas; jis nepasako, kad riba yra ten, kur manote.
Atskirai palyginkite prieglobai būdingą paslaugą. Jei duomenų bazė klausosi priegloboje, o informacinė panelė veikia konteineryje, jos eina skirtingais keliais per tą patį leidimą ir prieglobos persiuntimo politika gali jų valdyti nevienodai. Užsirašykite, kas yra kas, prieš rašydami nagrinėjimo pastabą.
Neišvalykite Docker lentelių ar tinklo kliento taisyklių, kad „iš naujo nustatytumėte“ prieigą. Abu produktai įdiegia savo politikos integraciją, o ją pašalinus atsiranda priegloba, kuri atrodo veikianti, bet apeina kontroles, kurias jums buvo pavesta įvertinti. Jei taisyklė atrodo neteisinga, perskaitykite ją ir pakeiskite būtent tą taisyklę. Jei negalite paaiškinti, ką taisyklė daro, tai yra radinys, o ne priežastis ją ištrinti.
Rašykite radinį pačios sistemos terminais
Svarbu tai, kokį skirtumą produktas iš tikrųjų įgyvendina, o ne tas, kuris yra nagrinėjimo šablone: leidimas pasiekti prieglobos galinį tašką, leidimas pasiekti maršrutizuotus privačius išteklius ir leidimas naudotis programa. Paskelbus prievadą, tie trys sprendimai lieka tiksliai ten, kur buvo, o nagrinėtojas, kuris juos laiko vienu, patvirtins neteisingą apimtį.
Nurodykite prieglobos adresą, paskelbtą prievadą, konteinerio paskirties vietą ir bendro leidimą tame pačiame sakinyje. Tą sakinį gali patikrinti kas nors kitas, ir būtent tai daro jį radiniu, o ne nuomone.