Meshnet, Docker және олардың арасындағы рұқсат
Желінің теңдесі жарияланған контейнерге жеткенде хост рұқсатынан және Docker аудармасынан өтеді. Екеуін бөлек қараңыз, әйтпесе қате ауқымды мақұлдайсыз.
Екі URL теңдестің браузерінен бірдей көрінуі мүмкін, бірақ қауіпсіздік қабырғасы үшін мүлдем басқа нәрсені білдіреді. Біреуі хосттың өзінде тыңдайтын қызметке сілтейді. Екіншісі порты контейнер желісіне жарияланған хост мекенжайына сілтейді, онда аударма қадамы қосылымды басқа IP-ге тапсырады. Әр теңдес үшін рұқсатпен жергілікті желіге қатынауды басқаратын теңдес-теңдес желіде сол айырмашылық бүкіл қарау болып табылады.
Рұқсат хосттың соңғы нүктесіне қатысты, аударма Docker-ге қатысты, ал кіру қолданбаға қатысты. Үш шешім, қарайтын үш орын.
Жариялаудан кейін тағайындалған жерді қадағалаңыз
Контейнердің 80 портын хосттың 8080 портында жариялайтын Linux Docker хостты алыңыз. Теңдес 8080 порты бойынша хосттың желілік мекенжайына қосылады, хост қосылымды қабылдайды, ал тағайындалған жердің аудармасы оны контейнердің көпір мекенжайына, әдетте 172.17.0.2 тәрізді нәрсеге, 80 портында қайта жазады.
Ереже сол ағынды тексерген кезде қызықты тағайындалған жер — контейнер, хост емес. Тек «осы машинадағы қызмет» туралы ойлайтын саясат қате нысан туралы ойлайды. Сұрау хостқа қонды, бірақ ол басқа жерге жеткізіледі.
Сондықтан желі құжаттамасы Docker контейнерлерін Linux-та жергілікті желі рұқсаты басқаратын ресурстардың қатарына қосады. Рұқсат кәдімгі VPN рұқсат тізімі жазбасының синонимі емес және екі бақылау бірін-бірі алмастырмайды. Біреуі теңдестің жергілікті ресурстарға жалпы жете алатынын шешеді; екіншісі туннельдік маршруттың қандай тағайындалған жерлерді тасымалдайтынын шешеді.
Рұқсат қанша жергілікті қатынау беретінін шешіңіз
Теңдеске жергілікті желіге қатынау беру бір контейнер туралы шешім емес. Ол сол хосттағы басқа жарияланған қызметтерді аша алады және хосттың қалай жіберетініне қарай одан әрі жетуі мүмкін. Бір тақта үшін ажыратқышты баспас бұрын нақты ауқымды қарап шығыңыз.
Содан кейін Docker портты қайда жариялайтынын қараңыз. 0.0.0.0-де жариялау әрбір хост мекенжайында тыңдаушы жасайды, бұл желі жазбасының қасына кәдімгі LAN жазбасын қосуы мүмкін. Егер талап тек желі болса, жариялауды өзіңіз көздеген нақты мекенжайға немесе интерфейске байлаңыз және кеңірек байлауды ыңғайлылық емес, жеке тұжырым ретінде қарастырыңыз.
Хосттың жіберу саясаты мен қолданбаның өз аутентификациясын қызмет үшін жеткілікті тар ұстаңыз. Жеке көрінетін URL қатынауды бақылау емес, ал көпір желісіндегі әрбір көзге сенетін контейнер желі теңдесі мақұлданғанымен қорғалмайды. Қолданбаның аутентификациясы — үшінші шешім және пайдаланушының кім екенін білетін жалғыз шешім. Хост деңгейіндегі рұқсат бұл білімді бере алмайды.
Рұқсатты сынаңыз, тек URL-ды емес
Мақұлданған теңдестен нақты қызметті ашып, оның жұмыс істейтінін растаңыз. Содан кейін бас тартылған күйде қалуы тиіс тағайындалған жерді байқап көріп, оның жұмыс істемейтінін растаңыз. Тек сәтті жолды сынау рұқсаттың берілгенін айтады; шекараның сіз ойлаған жерде екенін айтпайды.
Хостқа тән қызметті бөлек салыстырыңыз. Егер дерекқор хостта тыңдап, тақта контейнерде жұмыс істесе, олар сол рұқсаттан әртүрлі жолдармен өтеді және хосттың жіберу саясаты оларды бірдей басқармауы мүмкін. Қарау жазбасын жазбас бұрын қайсысы қайсысы екенін жазып алыңыз.
Қатынауды «қалпына келтіру» үшін Docker кестелерін немесе желі клиентінің ережелерін тазаламаңыз. Екі өнім де өз саясат интеграциясын орнатады, ал оны жою бағалауды сұраған бақылауларды айналып өтіп, жұмыс істеп тұрғандай көрінетін хост жасайды. Ереже қате көрінсе, оны оқып, дәл сол ережені өзгертіңіз. Ереженің не істейтінін түсіндіре алмасаңыз, бұл — тұжырым, оны жоюға себеп емес.
Тұжырымды жүйенің өз терминдерімен жазыңыз
Маңыздысы — өнім шын мәнінде қолданатын айырмашылық, қарау үлгісіндегі емес: хосттың соңғы нүктесіне жету рұқсаты, маршрутталған жеке ресурстарға жету рұқсаты және қолданбаны пайдалану рұқсаты. Портты жариялау осы үш шешімді дәл қалған орнында қалдырады, ал оларды бір деп санайтын шолушы қате ауқымды мақұлдайды.
Хост мекенжайын, жарияланған портты, контейнердің тағайындалған жерін және теңдес рұқсатын бір сөйлемде көрсетіңіз. Бұл сөйлемді басқа біреу тексере алады және дәл сол оны пікір емес, тұжырым етеді.