Үш инженерден ішкі қызметке қалай жетуге болатынын сұраңыз, үш жоба аласыз: веб-прокси, SSH туннелі немесе толық VPN. Үшеуі де қашықтағы қызметті қолжетімді ете алады және үшеуі де трафикті басқа жерден келе жатқандай көрсете алады. Айырмашылықтар кейінірек, қолданылып жатқан протокол таңдалған құрал күткен протокол болмаған кезде шығады. Браузердегі жылдам тексеруден өткен жоба сұранысқа себеп болған қолданбада жиі сәтсіздікке ұшырайды.

Екі фактіден шешіңіз: қандай протоколдар өтуі керек және қатысты атауларды кім шеше алады. Қалғаны — таңдау мәселесі.

Прокси тек түсінетінін жылжытады

Веб-прокси өзі үшін жасалған протоколды талдайды. Клиент оған сұраныс береді, ол сол сұранысты әрі қарай жібереді, сондықтан прокси параметрі жоқ қолданба мүлде қатыспайды. HTTPS үшін клиентке мөлдір емес арна қажет, оны прокси сұранысты оқу арқылы емес, CONNECT арқылы береді.

SSH динамикалық бағыттауы SOCKS сөйлейтін жергілікті порт ашады, бұл порт TCP ағынын клиент атаған кез келген межеге жібереді. TCP негізіндегі протоколдар әдетте ол арқылы жұмыс істейді. UDP олай емес, егер құрал қолдауды анық қоспаса. Жергілікті бағыттау одан да тар: бір жергілікті порт бір тұрақты хост пен портқа салынған, ол бір белгілі қызметке қызмет етеді және одан артық емес.

ssh -D 1080 user@bastion
ssh -L 8443:fileserver.internal:443 user@bastion

VPN пакеттерді жылжытады. Клиент туннельге бағыттағанның бәрі одан өтеді, UDP пен ICMP қоса, сондықтан ол жеке қосылымға емес, желі талабына сай келеді.

Біреу атауды шешуі керек

Мақсатты атау тек қашықтағы желінің DNS-інде болса, іздеу жасайтын машина сол аймақты көруі керек. Веб-прокси іздеуді өзі жасайды, сондықтан ішкі атау ол арқылы жұмыс істейді, тіпті ноутбук атауды мүлде шеше алмаса да. SOCKS та осылай әрекет ете алады, бірақ тек клиент атауды әрі қарай жіберсе, өзі шешкен мекенжайға қосылудың орнына. Бұл таңдау серверде емес, клиентте.

curl бөліністі анық көрсетеді: бір жалауша хост атауын проксиге береді, екіншісі оны алдымен жергілікті шешеді. Жергілікті шешу кезінде тек ішкі атау кез келген туннельге қол тигізбей тұрып сәтсіз болады, ал қате шын мәнінде DNS шешімі болған нәрсе үшін проксиді кінәлайды.

VPN үшінші жолды таңдайды: бағыттардың қасына жеке шешуші мен іздеу доменін орнатады. Бұл ыңғайлы және таныс елес жасайды: жауап бермейтін шешушімен бірге бар бағыт дәл өлі туннельге ұқсайды, ал пакеттер арғы жаққа жетіп жатса да.

Желі тек бір шығуға рұқсат еткенде

Көптеген корпоративтік желілер сыртқы қосылымдарға тек аутентификацияланған веб-прокси арқылы рұқсат береді. OpenVPN және SSH екеуін де сонда жұмыс істетуге болады: біріншісі өз тасымалын прокси арқылы туннельдейді, екіншісі кішкентай CONNECT көмекшісін іске қосатын прокси командасы арқылы.

TCP негізіндегі туннельдер бұл шектеуге төтеп береді, ал UDP негізіндегі VPN бермейді, бұл үйде жұмыс істеп, кеңседе сәтсіз болатын көптеген конфигурацияны түсіндіреді. Екінші шығынды байқамау оңай: прокси арқылы өтетін TCP қосылымының ішінде тасымалданатын TCP туннелінде енді қайта жіберетін екі қабат бар, ал жоғалту кезінде бұл жұп ешбір қабат жалғыз жасамайтын түрде тоқтайды.

Делдалдарды тізбектеу қабат таңдаудан өзге мәселе. Екінші прокси немесе Tor қосу кімнің нені бақылайтынын өзгертеді, ал тізбектегі орны қай секірістің шифрланған мәтінді көретінін анықтайды.

Тәртіп секірістер санынан маңыздырақ. Сыртқы секіріс шифрланған ағынды бақылайды, ішкісі оның тасымалдайтын ашық мәтінін көреді, сондықтан тізбек қаншалықты ең немқұрайлы буынына тең. Секірістер арасында протоколдарды араластыру мұны өздігінен жақсартпайды. Ол көбінесе ақау режимдері туралы ойлануды қиындатады.

Жалған мекенжай нұсқалардың бірі емес

Біреудің бастапқы мекенжайымен пакеттер жасау пайдалы ештеңе бермейді: жауаптар нақты иесіне барады, ал көптеген желі трафикті бірден тастайды. Делдал дәл бастау көзін ойдан шығару мүмкін болмағандықтан қажет, және бұл үш жобаның адал негіздемесі.

Бұл сонымен қатар олардың әрқайсысы нені мәлімдей алатынын шектейді. Белгілі бір мекенжайдан шыққандай көріну бұл мекенжай заңды түрде қайда берілгені және оны кім бағыттай алатыны туралы сұрақ, қай құрал тақырыпты жалған жасай алатыны туралы емес. Егер жоба керісінше деп есептесе, болжам оны сүзетін бірінші провайдерде құлайды. Болжамды жазып қойыңыз, сонда ақау келгенде танылады.

Протоколдар мен атаулар бойынша шешіңіз

Бір веб-клиентке бір веб-қызмет қажет болса және прокси параметрлері болса, прокси таңдаңыз. Бірнеше белгілі TCP қызметі жеткілікті болса және SSH қолжетімділігі бұрыннан бар болса, SSH туннелін таңдаңыз. Бірнеше қолданба, TCP емес трафик, жеке DNS немесе қайта пайдаланылатын жол талаптың бөлігі болса, VPN таңдаңыз.

Содан кейін нақты клиентпен және нақты атаумен тексеріңіз. Прокси арқылы бет жүктеу UDP туралы ештеңе үйретпейді, ал бір құралды SOCKS арқылы іске қосу жүйелік шешуші туралы ештеңе үйретпейді. Процестің қай жергілікті мекенжайға байланғанын және қай шешуші жауап бергенін оқыңыз. Бұл жұмыс істейтін жол мен бір рет кездейсоқ жұмыс істеген жолдың айырмашылығы.

Қатысты мақалалар