Шлюз өзінің әкімшілік бетін орналастырады: ішкі немесе жария мекенжай
VPN шлюзінің өзіндегі қызметке туннель жете алатын ішкі кіреберіс қажет. Оны жеке түрде жариялаңыз, содан кейін жария тыңдаушының әлі ашық еместігін растаңыз.
Әкімшілік бет ұялы деректегі телефоннан жауап береді, ал VPN-ге қосылған ноутбуктен уақыт бітеді. Туннельде ештеңе бұзылмаған, өйткені сұрау оған ешқашан кірмейді. Хост атауы шлюздің жария мекенжайына шешіледі, ал бұл мекенжай ол аяқтайтын туннельдің сыртынан ғана қолжетімді. Мұны түзету қызметке жеке кіреберіс беруді білдіреді, сыртқы соңғы нүктені жылжытуды емес.
Бет туннель арқылы емес, сырттан жүктеледі
Екі түрлі сұрау салыстырылады. Ұялы деректен браузер жария мекенжайға тікелей жетеді. Туннельдің ішінен сол атау сол жария мекенжайға шешіледі, ал пакет енді туннельдің өзінің алыс жағындағы мекенжайға жету үшін туннельден шығуы керек. Сол атау, сол мекенжай, екі мүлде бөлек орын.
Мақсат маршруты мекенжайды таңдайды, портты емес. Маршруттау кестесінде 443 порты әкімшілікке, ал 1194 порты көлікке арналғанын ештеңе білмейді, сондықтан екеуі де бірдей мақсат ретінде қарастырылады.
Сондықтан бет кейде жұмыс істейді, кейде істемейді, клиент қандай атау мен қандай желіні қолданғанына байланысты. Бұл жол мәселесі, аутентификация мәселесі емес. Екі клиент те аутентификациядан жақсы өтеді.
Сыртқы соңғы нүктені қолжетімді ұстаңыз
Толық туннель профильдеріне VPN соңғы нүктесі үшін ерекше маршрут қажет, ал OpenVPN-нің redirect-gateway опциясы дәл соны сипаттайды: қашықтағы соңғы нүкте бұрыннан бар шлюз арқылы маршрутты сақтайды, сондықтан туннель өзіне қарай маршруттамайды. Сол ерекшелікті алып тастасаңыз, шифрланған көлік туннельді ұстанады, бұл сессияны циклде аяқтайды. Дәл сол ерекшелік соңғы нүкте мекенжайының туннель ішінен қолжетімді болып қалуының себебі.
Салдар — жария мекенжай клиенттен қолжетімді болып қалады, сондықтан сол мекенжайға браузер сұрауы да сол ерекшелікті ұстанып, туннельге кірмей шыға алады. Ерекшелік өз жұмысын істейді, ал зиянды атау келтіреді.
Бірдеңені өзгертуден бұрын интерфейс тізімін емес, маршрут шешімін оқыңыз. Төмендегі командалар тізімді емес, шешімді шығарады. Оларды сәтсіз болған клиенттен іске қосыңыз.
ip -4 route get 203.0.113.77
ip -4 rule show
ip -4 route show table allЕгер іздеу соңғы нүкте маршрутын физикалық шлюз арқылы көрсетсе, мінез-құлық дұрыс және әкімшілік бет жай ғана қате жолға жіберіледі. Дәл осы жерде атауларды шешу түзетуге айналады.
Қызметке жеке атау беріңіз
Қызметке туннель ішінде шлюздің мекенжайына шешілетін атау қажет, сонымен бірге қосымша күтетін сертификат пен хост атауының мағынасы сақталады. Әкімшілік атау үшін жеке аймақ жазбасы әдеттегі жауап, және ол көлік атауын тиіспестен қалдырады.
Көлік атауын ішкі мекенжайға қайта бағыттамаңыз, өйткені келесі туннель құру тек туннель ішінде ғана бар мекенжайға жетуге тырысады. Бұл қате дәл бір рет жұмыс істейтін VPN жасайды.
Екі мекенжай тобын да тексеріңіз, өйткені қалып қойған AAAA жазбасы браузерді жеке жоспар ешқашан қамтымаған жерге жіберуі мүмкін.
dig +short admin.hq.internal
dig +short -t AAAA admin.hq.internal
curl -sS -o /dev/null -w '%{http_code} %{remote_ip}\n' https://admin.hq.internal/Саясатты процестің жұмыс істейтін орнына сәйкестендіріңіз
Шлюзде тыңдап тұрған жергілікті процесс жергілікті кіру жолы арқылы қолжетімді, сондықтан кіру тізбегі мен сокет байланыстыруы сұраудың қабылдануын шешеді. Жіберу ережелері мен IP жіберу жергілікті тыңдаушыны жауап беруге мәжбүрлемейді. Кіру саясатында туннель көздеріне рұқсат беріңіз және процесс туннель жете алатын мекенжайға байланғанын растаңыз.
Хост портында жарияланған контейнер басқа жолмен жүреді, өйткені пакет мақсат бойынша аударылып, жіберіледі. Бұл сұрау хосттың жіберу саясатына және Docker-дің өз ережелеріне тап болады, сондықтан жұмыс істейтін жергілікті тыңдаушы сол портты қабылдамайтын контейнермен қатар өмір сүре алады.
Іске қосу реті екі жағдайда да маңызды, өйткені туннель көтерілгеннен кейін ғана пайда болатын мекенжайға байланыстыру жүктелу кезінде үнсіз сәтсіз аяқталады.
Жеке қатынасты және қабылданбаған жария жолды тексеріңіз
Қосымшаның өз тұлға тексерулерін бұзбай, уәкілетті клиенттен жаңа атаулы сұрау жасаңыз. Содан кейін сол қызметті туннель сыртынан көріңіз және оның жауап бермейтінін растаңыз. Жеке атау — шектеу емес, ыңғайлылық, ал жария мекенжайға әлі байланған тыңдаушы әлі ашық. Дәл осы соңғы тексеруді көптеген шолулар өткізіп жібереді.
Пайдаланушыларға берілген хост атауын емес, байланыстырулар мен сүзгі күйін оқыңыз. Әшкерелену — сокеттің қасиеті, атаудың емес. Бұл айырмашылық кез келген DNS өзгерісінде сақталады.
ss -lntp | grep ':443'
nft list ruleset | grep -n 443
curl -sS -m 5 -o /dev/null -w '%{http_code}\n' https://203.0.113.77/Ішкі сұрау бетті қайтарса және сыртқы сұраудың уақыты бітсе, қызметтің бір әдейі жеке жолы бар және көлік қолжетімді болып қалады. Сыртқы сұрау әлі жауап берсе, біреу қызметті тек ішкі деп сипаттамас бұрын тыңдаушыны немесе жарияланған контейнер жазбасын тарылту керек.