Қолданбаға және мақсатқа негізделген split tunneling: қайсысын таңдау керек
Бір ереже процесті, екіншісі мекенжайды ұстанады. Нені бақылау керектігіне қарай таңдаңыз, содан кейін бір подсетьте көмекші процесті және екінші қолданбаны сынаңыз.
Қолданбаға және мақсатқа негізделген split tunneling бір жұмыстың екі параметрі емес. Біреуі қай процесс пакет жіберіп жатқанын сұрайды; екіншісі сол пакеттің қайда бара жатқанын сұрайды. Бірінші сұраққа арналған ереже трафик көмекші процестен келгенде үнсіз сәтсіздікке ұшырайды, ал екіншісіне арналған ереже хост атауы сіз ешқашан тіркемеген мекенжайға шешілгенде сәтсіздікке ұшырайды. Талапқа сәйкес объектіні таңдаңыз, содан кейін оны екі сынақ пакетімен дәлелдеңіз: біреуі туннельді пайдалануы керек, екіншісі пайдаланбауы керек.
Екі ереже әртүрлі деңгейлерде әрекет етеді
Қолданба ережесі желі деңгейінен жоғары, операциялық жүйе жіберушіге беретін сәйкестікке қарсы қолданылады. Android-та бұл пакеттің артындағы UID, және VPN қызметі әр UID үшін трафиктің туннельге кіретінін шешеді. Мақсат туралы ештеңе сұралмайды, сондықтан таңдалған қолданба кез келген нәрсеге жете алады, ал басқа қолданба ішкі желіге жете алмайды.
Мақсат ережесі пакеттің өзіне қолданылады. Туннель интерфейсінде префикстер жиынтығы бар, маршруттау кестесі сәйкес трафикті сол жерге жібереді, ал жіберуші процесс маңызды емес. Сондықтан мақсат ережесі ешкім тіркеуді ұмытып кеткен қызметті, принтерді немесе топтама жұмысты қамтиды, және сондықтан оны клиенті процесті ешқашан қарамайтын платформада дәл осы бағдарлама ретінде өрнектеу мүмкін емес.
Қолданба ережелері ұялы клиенттер мен басқарылатын агенттерге сай
Android таңдауды тікелей ұсынады: VpnService.Builder.addAllowedApplication() және addDisallowedApplication() пакет атауларын алады және шешімді әр UID үшін қолданады, бұл Android-тың VPN әзірлеуші нұсқаулығында сипатталған. iOS-те bundle идентификаторларына негізделген әр қолданбаға арналған VPN ережелері арқылы балама бар, олар әдетте қолмен терілмей, MDM профилі арқылы жеткізіледі.
Дербес компьютер клиенттері әлсіз тұс. Windows пен macOS VPN клиенттерінің көбісі мақсат бойынша маршруттайды және процесс бойынша таңдағышты мүлде ұсынбайды, өйткені туннель драйвері процестерді емес, пакеттерді көреді. Егер жоспарыңыз ноутбукта бір қолданбаны туннельдеуге тәуелді болса, оның айналасында жобалаудан бұрын клиенттің нақты мүмкіндіктерін тексеріңіз; мүмкін сіз мақсаттар тізімі мен екінші машинаның арасында таңдап жатқан шығарсыз.
Адамдар жиі ескермейтін салдар: бұл платформаларда маршруттармен қолданба ережесін имитациялау мүмкін емес. Қолданбаның серверіне хост маршрутын қосу бәрінің трафигін сол серверге туннельдейді, браузер мен жаңартқышты қоса.
Мақсат ережелері подсетьтер тізіміне және сайттардың қолжетімділігіне сай
WireGuard модельді айқын етеді. AllowedIPs крипто-кілттік маршруттау: мақсаты серіктес тізіміне кіретін ішкі пакет сол серіктеске шифрланады, ал қалғанының бәрі қалыпты жолмен шифрланбай шығады. Атауға тиісті процесс те, не кіретіні туралы екіұштылық та жоқ.
OpenVPN итерілген маршруттау кестесі арқылы сол жерге жетеді. route-nopull серверге маршруттарды таңуды тоқтатады, содан кейін клиент жағындағы route 10.20.0.0 255.255.0.0 vpn_gateway дәл кеңсе префиксін қамтиды. IPv6 осы клиенттердің әрқайсысында жеке мәлімдеме, және оны ұмыту дұрыс көрінетін IPv4 бөлінуінің айналасында ағудың ең көп тараған жолы.
Хост атауы маршрут емес. Егер профиль домен өрісін ұсынса, оны клиент бір рет шешетін атау ретінде қараңыз, тұрақты мекенжай ауқымы ретінде емес; контент жеткізу желілері мен жүктеме теңгерушілері ертең басқа мекенжайлар береді.
Екі модель қай жерде сынады: көмекшілер, ортақ қызметтер, шешушілер
Көмекші процестер қолданба ережелерін бұзады және бұл сервер ақауына ұқсайды. Браузердің жаңартқышы, апат хабарлағышы, SYSTEM ретінде жұмыс істейтін синхрондау қызметі және басқа пакетке енгізілген WebView бәрі бөлек сәйкестіктер, сондықтан браузерді туннельдеу нақты сұранысты туннельден тыс қалдыруы мүмкін. Керісінше де сондай шатастырады: туннельделген процестің ішіндегі ортақ кітапхананы шақыратын шығарылған қолданбаның трафигі бәрібір туннельмен жүреді.
Мақсат ережелері ортақ қызметтерде және атауларда бұзылады. Файл бөлісулер, принтерлер, ішкі DNS және лицензия сервері мекенжайларда тұрады, сондықтан бір қолданбаның туннелі браузерге рұқсат береді, ал салынған дискі өлі күйінде қалады. Бұл қамту айырмашылығы екі модельдің ешқайсысында ақау емес, бірақ бір қолданбаның туннелі соншалықты жиі VPN қосулы, ал бөлісу жоқ деген жағдайды тудыратынының себебі осы.
Шешушілер екеуін де қиып өтеді. Егер клиент ішкі DNS серверлерін орнатса, бірақ операциялық жүйе ашық шешушіге HTTPS арқылы DNS қолданса, жауап туннельден тыс жерден келеді және мақсат ережесі ешқашан сәйкес келмеуі мүмкін. Ереже қате деп қорытынды жасамас бұрын қай шешушінің нақты жауап бергенін тексеріңіз және клиент жағында туннель шешушісін мүлде орнатқанын растаңыз. DNS-ті туннельден тыс қалдыратын бөліну маршруттау кестесінде мінсіз көрінеді және бәрібір әр ішкі атауда сәтсіздікке ұшырайды.
Іс-қимыл жоспары: таңдау, қолдану, тексеру
Мәзірден емес, талаптан бастаңыз. Егер мақсат тек осы қолданба туннельді пайдалансын деген болса, қолданба ережелері мен оларды қолдайтын платформа керек. Егер мақсат бұл желілерге туннель арқылы жету мүмкін болса, префикстер керек. Егер жауап екеуі де болса, оларды екі бөлек басқару ретінде іске асырыңыз және қайсысы қай ақауға жауапты екенін жазыңыз.
Өрнектей алатын ең тар нысанды қолданыңыз, содан кейін клиенттің күй белгішесіне емес, маршруттау кестесіне сұрақ қою арқылы тексеріңіз:
ip route get 10.20.30.40
ip -6 route get 2001:db8:10::40
wg show wg0 allowed-ips
Get-NetRoute -DestinationPrefix 10.20.0.0/16
Find-NetRoute -RemoteIPAddress 10.20.30.40
Алғашқы екі жол нақты мақсат пайдаланатын интерфейсті атайды; wg show конфигурацияланған префикстер тізімін басып шығарады; Windows-та Find-NetRoute пакет жіберілгенде стек жауап беретін сол сұраққа жауап береді. Егер интерфейс туннель болса, ереже сәйкес келді.
Содан кейін шығарылуы тиіс екінші пакетті басқа қолданбадан сол мақсатқа сынаңыз. Билетке клиент нұсқасын, ереже түрін, префикстер немесе пакеттер тізімін және байқалған екі нәтижені жазыңыз. Дәл осы нәтижелер жұбы келесі инженерге саясат қате конфигурацияланғанын немесе трафик оған ешқашан тиесілі болмағанын айтады.