OpenVPN 443 портында әлі де бұғатталған ба? Желі нені тексеретінін қараңыз
443 порты нөмірді өзгертеді, протокол пішінін емес. Егер жол TLS-ті тексеретін немесе аяқтайтын болса, келесі сынақ — қаптама мен дұрыс хост маршруты.
Туннель үй желісінен қосылып, қонақүй немесе кеңсе желісінде тұрып қалады, ал серверді 443 портына көшіру ештеңені өзгертпеді. Бұл нәтиже формасы болатындай жиі: порт жеңіл бөлігі еді, шешімнің қалғаны клиент пен сервер арасында отырғанның бәріне тиесілі. Екі сұрақ жағдайлардың көбін шешеді, және олардың ешқайсысы шифрлар туралы емес. Желі сол мекенжайға TLS қол алысуды қабылдай ма, және туннель тұрғанда клиент өз қаптамасына маршрутты ұстай ма?
Қол алысу нөмірден көбірек ашады
TCP 443-тегі жергілікті VPN тыңдаушысы бірінші пакеттен бастап өз протоколында сөйлейді. ClientHello-да нұсқа өрісі, кездейсоқ мән және кеңейтімдер тізімі бар, ал бірнеше жүз байт оқыған құрылғы ештеңе дешифрламай-ақ айырмашылықты көре алады. Порт нөмірлерін қанағаттандыру арзан, ал сүзгі шын мәнінде протокол пішінін тексереді. Ережелер әдетте протокол бойынша да жазылады, сондықтан TLS-ті тексеретін саясат UDP туралы ештеңе айтпайды.
Жарамды TLS сессиясын талап ететін мөлдір прокси баптау кезінде байланысты үзеді, көбіне TCP қол алысу аяқталғаннан кейін. Бұл деталь кейінірек маңызды, өйткені сокет орнатылғаннан кейін клиент журналы тоқтайды деген сөз.
Ағынды қаптау екі істен шығу нүктесін жасайды
stunnel сияқты TLS қаптамасы күтілген пішінді қалпына келтіреді: клиент жергілікті тыңдаушыға қосылады, қаптама сервермен 443-те нағыз TLS сессиясын ашады, ал сервердегі екінші қаптама дешифрланған байттарды VPN демонына жібереді. Сыртқы сессия енді кез келген басқа HTTPS байланысындай көрінеді. Сервердегі VPN демоны тек loopback-те тыңдауы керек, өйткені қаптамадан тыс ештеңеге оған жету қажет емес.
Бұл құрылым үшін үш бөлек нәрсе сәйкесуі керек. Клиент профилі жергілікті тыңдаушыға сілтейді, сервер сертификаты клиент тексеретін атаумен сәйкеседі, ал сервер жағындағы жіберу демон шын мәнінде пайдаланатын портты нысанаға алады. Олардың біреуінде қателессеңіз, байланыс VPN қабатына жетпей-ақ өледі. Сонда сертификат сәйкессіздігі VPN қатесі емес, қаптама қатесі ретінде көрінеді, сондықтан екі журналды қатар оқыған жөн.
Қаптамаға барар жол — тұзақ
Туннель көтерілген бойда әдепкі маршрут оның ішіне сілтейді, ал сыртқы TLS сессиясы өзі тасымалдайтын туннельге кірмейтін жолды қажет етеді. Кәдімгі VPN клиенті өзі қоңырау шалатын мекенжайды қорғайды; қапталған клиент өз loopback-іне қоңырау шалады, сондықтан қаптаманың баратын мекенжайы бұл қорғанысқа көрінбейді.
sudo ip route add 198.51.100.20 via 192.168.0.1
sudo openvpn --config client.ovpn
sudo ip route del 198.51.100.20
Нақты мекенжайларды өзіңіз толтырасыз, ал маршрут байланыстың бүкіл өмірінде болуы керек, тек іске қосу кезінде емес. Маршрутты клиенттен бұрын қосып, кейін жоятын шағын қаптама скрипті есте қалған пәрменнен сенімдірек.
Android-та бұл ерекшеліктің баламасы — әр қолданба үшін баптау: қаптама қолданбасын туннельден шығарыңыз, оның өз трафигі ұялы байланыс арқылы шықсын. Шығармасаңыз, қаптама салғысы келген туннельдің ішіне бағытталады, ал қайта қосылу циклі сервер мәселесіндей көрінеді.
Бірдеңені өзгертуден бұрын уақытты оқыңыз
Әр жолы бірдей аралықтан кейін өлетін сессия — криптографиялық ақау емес, саясат қолтаңбасы, ал ұзақ мерзімді ағын шектеулері дәл осы үлгіні туғызады. Қол алысудан кейін бірден қалпына келтірілетін байланыс сертификаттар тізбегін ұнатпаған проксиге нұсқайды.
Екі желіден де кәдімгі HTTPS сайтының сертификат берушісін салыстырыңыз. Шектеулі желіде беруші өзгеше болса, бірдеңе TLS-ті ортада аяқтап тұр, және ешбір қаптама бұл кедергіден өзгеріссіз өтпейді. Сол салыстыру бұғаттау сервер атауыңызға ма, әлде сол мекенжайға келетін әр TLS сессиясына ма бағытталғанын айтады.
Байқалған мінез-құлықты жазып алыңыз: сессия қанша тұрды, сокет ашылды ма, қаптама қол алысуды тіркеді ме. Олардың әрқайсысы келесі сынақты тарылтады.
Бір уақытта бір айнымалыны сынаңыз
Алдымен UDP тексеріңіз, өйткені кейбір желілер оны толық тастайды, ал UDP ақауы 443 туралы ештеңе айтпайды. Сосын қаптамасыз TCP 443-ті, одан кейін 443-тегі қаптаманы көріңіз. Әр қадамда клиент журналын оқып, мінез-құлық өзгерген бойда тоқтаңыз.
Әр әрекетте бір элементті өзгертіңіз. Жаңа порт, жаңа қаптама және жаңа шифр бір жүгірісте болса, үшеуінің қайсысы маңызды болғанын айта алмайсыз.