Кіріспе

Компьютерлік байланыс протоколы

Компьютерлік желілерде туннельдік протокол – бұл деректерді бір желіден екінші желіге беруге мүмкіндік беретін байланыс протоколы. Ол, мысалы, жеке желілік байланысты қоғамдық желі арқылы (Интернет сияқты) жіберуге немесе үйлесімсіз желіде бір желілік протоколды инкапсуляция деп аталатын процесте қолдануға мүмкіндік береді. Туннельдеу трафик деректерін басқа форматқа қайта жинауды қамтиды, бұл, мүмкін, стандартты шифрлаумен бірге, туннель арқылы өтетін трафик сипатын жасыра алады. Туннельдік протокол пакеттің дерек бөлігін (жүк) қызметті ұсынатын пакеттерді тасымалдау үшін пайдаланады. Туннельдеу OSI немесе TCP/IP протоколы сияқты қабатталған протокол моделін пайдаланады, бірақ әдетте қабаттылық принципін бұзады, өйткені жүк арқылы желіде әдетте қолдау көрсетілмейтін қызмет жүзеге асырылады. Әдетте, жеткізу протоколы қабатталған модельде жүк протоколынан тең немесе жоғары деңгейде жұмыс істейді.

Қолданылуы

Туннель протоколы, мысалы, осы нақты протоколды қолдамайтын желіде, басқа протоколдың жұмыс істеуіне мүмкіндік беруі мүмкін, мысалы IPv6-ны IPv4 желісі арқылы іске қосу. Тағы бір маңызды қолданылуы – негізгі желілік қызметтерді ғана пайдалану арқылы ұсыну қиын немесе қауіпсіз емес қызметтерді ұсыну, мысалы, корпоративтік желіге физикалық жағынан қосылмаған қашықтағы пайдаланушыға корпоративтік желілік мекенжайды беру.

Бөренелер қабырғасының ережелерін айналып өту

Пайдаланушылар өрт қабырғасы әдетте бөгеттейтін протоколдарды, бірақ өрт қабырғасы бөгеттемейтін, мысалы HTTP сияқты протоколдардың ішіне "орап" өрт қабырғасын "айналып өту" үшін туннельдеуді де пайдалана алады. Егер өрт қабырғасының саясаты осындай "орауды" нақты түрде тыйымсалмаса, бұл тәсіл қалыпты өрт қабырғасының саясатын (немесе бір-бірімен байланысқан өрт қабырғасы саясаттары жиынтығын) айналып өтуге мүмкіндік береді. HTTP протоколы негізіндегі тағы бір туннельдеу әдісі – HTTP CONNECT әдісін/командасын пайдалану. Клиент HTTP прокси-серверіне HTTP CONNECT командасын жібереді. Прокси содан кейін белгілі бір серверге:порт TCP қосылысын орнатады және сол сервер:порт пен клиенттік қосылыс арасында деректерді жібереді. Бұл қауіпсіздікке қауіп тудыратындықтан, CONNECT мүмкіндігі бар HTTP прокси-серверлері CONNECT әдісіне қол жеткізуді көбінесе шектейді. Прокси тек белгілі бір порттарға, мысалы HTTPS үшін 443 портына қосылуға рұқсат береді. Желілік өрт қабырғаларын айналып өтуге қабілетті басқа туннельдеу әдістері DNS, MQTT, SMS сияқты түрлі протоколдарды қолданады.

Техникалық шолу

Желі қабаты арқылы желі қабатының мысалы ретінде, IP (IP протоколы нөмірі 47) арқылы жұмыс істейтін Generic Routing Encapsulation (GRE) протоколы көбінесе RFC 1918 жеке мекенжайлары бар IP пакеттерін, қоғамдық IP мекенжайлары бар жеткізу пакеттерін пайдаланып Интернет арқылы тасымалдау үшін қолданылады. Бұл жағдайда жеткізу және пайдалы жүктеме протоколдары бірдей, бірақ пайдалы жүктеме мекенжайлары жеткізу желісінің мекенжайларымен үйлесімсіз. Деректер байланысы қабатын пайдаланып қосылыс орнату да мүмкін. 2-қабатты туннель протоколы (L2TP) екі түйін арасында кадрларды жіберуге мүмкіндік береді. Түнель әдепкі бойынша шифрланбайды: қауіпсіздік деңгейі таңдалған TCP/IP протоколымен анықталады. SSH қоғамдық желіде (мысалы, Интернет) берілетін пайдалы жүктемені шифрлау арқылы VPN функционалдығын қамтамасыз ету үшін 22 портты пайдаланады. IPsec-тің бастапқыдан соңғыға дейінгі тасымалдау режимі бар, бірақ ол сенімді қауіпсіздік шлюзі арқылы туннельдеу режимінде де жұмыс істей алады. Туннельдеу арқылы жүзеге асырылған нақты протокол жиынтығын түсіну үшін желі инженерлері пайдалы жүктеме және жеткізу протоколдары жиынтығын түсінуі керек.

Shell-тің қауіпсіз туннельдеуі

Secure Shell (SSH) туннелі SSH протоколы арқылы құрылған шифрланған туннельден тұрады. Пайдаланушылар SSH туннельдерін шифрланбаған трафикті шифрланған арна арқылы желі арқылы беруге орната алады. Бұл желі қауіпсіздігіне бағдарламалық тәсіл, нәтижесінде шифрлау ашық болады. Мысалы, Microsoft Windows машиналары шифрланбаған Server Message Block (SMB) протоколын қолдана отырып файлдарды бөлісе алады. Егер Microsoft Windows файл жүйесін қашықтан Интернет арқылы орнату керек болса, қосылымды тыңдап отырған адам аударылған файлдарды көре алады. Windows файл жүйесін қауіпсіз орнату үшін, барлық SMB трафигін шифрланған арна арқылы қашықтағы файл серверіне бағыттайтын SSH туннелін құруға болады. SMB протоколының өзі шифрлауды қамтымаса да, ол арқылы өтетін шифрланған SSH арнасы қауіпсіздікті қамтамасыз етеді. SSH қосылымы орнатылғаннан кейін, туннель SSH қашықтағы немесе жергілікті хосттағы портты тыңдаумен басталады. Оған кез келген қосылымдар қарсы (қашықтан немесе жергілікті, бұрынғыдай) хосттан шыққан көрсетілген мекенжайға және портқа жіберіледі. TCP негізделген қосылым (SSH порттарын жіберу) арқылы TCP-ді капсулалайтын жүктемені (PPP сияқты) туннельдеу "TCP over TCP" деп аталады, және оны жасау трансляция өнімділігінің күрт төмендеуіне әкелуі мүмкін ("TCP еруі" деп аталатын проблема), сондықтан виртуалды жеке желі бағдарламалық жасақтамасы туннель қосылымы үшін TCP-ден гөрі қарапайым протоколды қолдана алады. Алайда, бұл OpenSSH порттарын жіберу кезінде жиі проблема емес, өйткені көптеген пайдалану жағдайлары TCP арқылы TCP туннельдеуін қажет етпейді; ерітуден аулақ болады, өйткені OpenSSH клиенті жіберілетін нақты жүктемеге жету үшін жергілікті, клиенттік жақтағы TCP қосылымын өңдейді, содан кейін осы жүктемені тікелей туннельдің өз TCP қосылымы арқылы сервер жағына жібереді, онда OpenSSH сервері жүктемені соңғы бағытқа бағыттау үшін қайтадан "жабылап" орайды. Әрине, бұл орау және ашу екі бағыттағы туннельдің кері бағытта да болады. SSH туннельдері белгілі бір Интернет қызметтерін тыйым салатын брандмауэрлерді айналып өту құралын ұсынады, егер сайт шығыс қосылымдарға рұқсат берсе. Мысалы, ұйым пайдаланушыға ұйымның прокси сүзгісінен (ұйымға пайдаланушының веб арқылы көретінін бақылау және бақылау құралымен қамтамасыз ететін) өтусіз тікелей Интернет веб-беттеріне (80 порт) кіруге тыйым салуы мүмкін. Бірақ пайдаланушылар веб-трафикті бақылауға немесе ұйымның прокси-фильтріне бұғаттауға ұмтылмауы мүмкін. Егер пайдаланушылар сыртқы SSH серверіне қосыла алса, олар жергілікті машинадағы берілген портты қашықтағы веб-сервердегі 80 портқа жіберу үшін SSH туннелін жасай алады. Қашықтағы веб-серверге кіру үшін пайдаланушылар өз браузерін http://localhost/ мекенжайы бойынша жергілікті портқа бағыттайды. Кейбір SSH клиенттері пайдаланушыға SOCKS 4/5 прокси-серверін құруға мүмкіндік беретін динамикалық портты қайта жіберуді қолдайды. Бұл жағдайда пайдаланушылар өздерінің SOCKS прокси серверін пайдалану үшін өздерінің бағдарламаларын конфигурациялай алады. Бұл SSH туннелін бір портқа құруға қарағанда, жоғарыда сипатталғандай, көбірек икемділік береді. SOCKS пайдаланушыны алдын ала белгіленген қашықтағы порт пен серверге ғана қосылу шектеулерінен босатады. Егер қосымша SOCKS-ті қолдамаса, прокси-серверді қолданбаны жергілікті SOCKS прокси-серверіне қайта бағыттау үшін пайдалануға болады. Кейбір проксилер, мысалы Proxycap, тікелей SSH-ді қолдайды, осылайша SSH клиентіне қажеттіліктен аулақ болады. OpenSSH-тің соңғы нұсқаларында егер екі ұшы да осындай туннельдеу мүмкіндіктерін қосқан болса, 2-ші немесе 3-ші қабатты туннельдер жасауға рұқсат етіледі. Бұл қосылымның екі шетінде tun (демейдегі 3-қабат) немесе tap (демейдегі 2-қабат) виртуалды интерфейстерін жасайды. Бұл қалыпты желілік басқару мен маршруттандыруды пайдалануға мүмкіндік береді, ал маршрутизаторларда пайдаланылған кезде бүкіл кіші желідегі трафикті туннельдеуге болады. Бір жұп шүмектік виртуалды интерфейстер қосылымның екі ұшын жалғайтын Ethernet кабелі сияқты жұмыс істейді және ядролық көпірлерге қосылуы мүмкін.

Түзеу желісіне негізделген кибер-қарулар

Жылдар бойы туннельдеу және деректерді жалпылай капсулалау, қорғалған желіден тыс қасақана зиянды байланыс орнату мақсатымен жиі қолданылып келді. Осыған байланысты, белгілі туннельдерге HTTP, SSH, DNS, MQTT сияқты протоколдар жатады.