Kaks URL-i võivad peeri brauserist paista identsed, kuid tähendada tulemüüri jaoks täiesti erinevaid asju. Üks osutab teenusele, mis kuulab hostil endal. Teine osutab hosti aadressile, mille port on avaldatud konteineri võrku, kus tõlkepulk annab ühenduse üle teisele IP-le. Peer-to-peer-võrgus, mis juhib juurdepääsu kohalikule võrgule iga peeri loaga, on see erinevus kogu ülevaatus.

Luba puudutab hosti lõpp-punkti, tõlge puudutab Dockerit ja sisselogimine puudutab rakendust. Kolm otsust, kolm kohta, kuhu vaadata.

Jälgige sihtkohta pärast avaldamist

Võtke Linuxi Docker-host, mis avaldab konteineri pordi 80 hosti pordil 8080. Peer ühendub hosti mesh-aadressiga pordil 8080, host võtab ühenduse vastu ja sihtkoha tõlge kirjutab selle ümber konteineri silla-aadressile, tavaliselt midagi sellist nagu 172.17.0.2 pordil 80.

Kui reegel seda voogu uurib, on huvitav sihtkoht konteiner, mitte host. Poliitika, mis arutleb ainult «selle masina teenuse» üle, arutleb vale objekti üle. Päring maandus hostil, kuid seda tarnitakse mujale.

Seetõttu loetleb mesh-dokumentatsioon Dockeri konteinereid nende ressursside hulgas, mida kohaliku võrgu luba Linuxis juhib. Luba ei ole tavalise VPN-i lubatud loendi kirje sünonüüm ja need kaks kontrolli ei asenda üksteist. Üks otsustab, kas peer saab üldse kohalikele ressurssidele jõuda; teine otsustab, milliseid sihtkohti tunnelitud marsruut kannab.

Otsustage, kui palju kohalikku juurdepääsu luba annab

Peerile kohaliku võrgu juurdepääsu andmine ei ole ühe konteineri otsus. See võib paljastada teisi avaldatud teenuseid samal hostil ja võib jõuda kaugemale sõltuvalt sellest, kuidas host edastab. Vaadake tegelikku ulatust enne, kui klõpsate ühe armatuurlaua lülitit.

Seejärel vaadake, kus Docker pordi avaldab. Avaldamine aadressil 0.0.0.0 loob kuulaja igal hosti aadressil, mis võib lisada tavalise LAN-kirje mesh-kirje kõrvale. Kui nõue on ainult mesh, siduge avaldamine konkreetse aadressi või liidesega, mida kavatsete, ja käsitlege laiemat sidumist eraldi leiuna, mitte mugavusena.

Hoidke hosti edastuspoliitika ja rakenduse enda autentimine teenuse jaoks piisavalt kitsad. Privaatne URL ei ole juurdepääsukontroll ja konteiner, mis usaldab kõiki allikaid oma silla-võrgus, ei ole kaitstud sellega, et mesh-peer on heaks kiidetud. Rakenduse autentimine on kolmas otsus ja ainus, mis teab, kes kasutaja on. Hostitasandi luba ei saa seda teadmist pakkuda.

Testige luba, mitte ainult URL-i

Avaldatud peeri juurest avage täpne teenus ja kinnitage, et see töötab. Seejärel proovige sihtkohta, mis peaks jääma keelatuks, ja kinnitage, et see ei tööta. Ainult õnneliku tee testimine ütleb teile, et luba anti; see ei ütle, et piir on seal, kus arvate.

Võrrelge hostiomasest teenusest eraldi. Kui andmebaas kuulab hostil ja armatuurlaud töötab konteineris, järgivad need sama loa kaudu erinevaid teid ja hosti edastuspoliitika ei pruugi neid võrdselt juhtida. Enne ülevaatusmärkme kirjutamist pange kirja, mis on mis.

Ärge tühjendage Dockeri tabeleid ega mesh-kliendi reegleid, et juurdepääsu «lähtestada». Mõlemad tooted paigaldavad oma poliitikaintegratsiooni ja selle tühjendamine loob hosti, mis näib töötavat, kuid möödub kontrollidest, mida paluti hinnata. Kui reegel näib vale, lugege see läbi ja muutke just seda reeglit. Kui te ei suuda selgitada, mida reegel teeb, on see leid, mitte põhjus see kustutada.

Kirjutage leid süsteemi enda terminitega

Oluline on eristus, mida toode tegelikult jõustab, mitte see, mis on ülevaatusmallis: luba jõuda hosti lõpp-punkti, luba jõuda marsruuditud privaatsete ressurssideni ja luba rakendust kasutada. Pordi avaldamine jätab need kolm otsust täpselt sinna, kus need olid, ja ülevaataja, kes kohtleb neid ühena, kinnitab vale ulatuse.

Nimetage hosti aadress, avaldatud port, konteineri sihtkoht ja peeri luba samas lauses. Seda lauset saab keegi teine testida ja just see teeb sellest leiu, mitte arvamuse.

Seotud artiklid