OpenVPN 443-portda hali ham bloklanganmi? Tarmoq nimani tekshirishini ko‘ring
443-port raqamni o‘zgartiradi, protokol shaklini emas. Agar yo‘l TLSni tekshirsa yoki tugatsa, keyingi sinov o‘ram va to‘g‘ri xost yo‘lidir.
Tunnel uy liniyasidan ulanadi va mehmonxona yoki ofis tarmog‘ida tiqilib qoladi, serverni 443-portga ko‘chirish esa hech narsani o‘zgartirmadi. Bu natija shaklga ega bo‘ladigan darajada keng tarqalgan: port oson qism edi, qarorning qolgani esa mijoz va server o‘rtasida o‘tirgan hamma narsaga tegishli. Ikki savol holatlarning ko‘pini hal qiladi va ularning hech biri shifrlar haqida emas. Tarmoq o‘sha manzilga TLS qo‘l berib ko‘rishishni qabul qiladimi va tunnel ko‘tarilgan paytda mijoz o‘z o‘ramiga yo‘l saqlaydimi?
Qo‘l berib ko‘rishish raqamdan ko‘proq narsani oshkor qiladi
TCP 443-dagi mahalliy VPN tinglovchisi birinchi paketdan o‘z protokolida gapiradi. ClientHello’da versiya maydoni, tasodifiy qiymat va kengaytmalar ro‘yxati bor, bir necha yuz bayt o‘qigan qurilma hech narsani shifrlamasdan farqni ko‘ra oladi. Port raqamlarini qondirish arzon, va filtr aslida protokol shaklini tekshiradi. Qoidalar odatda protokol bo‘yicha ham yoziladi, shuning uchun TLSni tekshiruvchi siyosat UDP haqida hech narsa demaydi.
Haqiqiy TLS sessiyasini talab qiluvchi shaffof proksi ulanishni sozlash paytida uzadi, ko‘pincha TCP qo‘l berib ko‘rishish tugagandan keyin. Bu tafsilot keyin muhim, chunki soket o‘rnatilgandan keyin mijoz jurnali to‘xtaydi.
Oqimni o‘rash ikki nosozlik nuqtasini yaratadi
stunnel kabi TLS o‘rami kutilgan shaklni qaytaradi: mijoz mahalliy tinglovchiga ulanadi, o‘ram serverga 443-da haqiqiy TLS sessiyasini ochadi, serverdagi ikkinchi o‘ram esa shifrdan chiqarilgan baytlarni VPN demoniga uzatadi. Tashqi sessiya endi boshqa har qanday HTTPS ulanishga o‘xshaydi. Serverdagi VPN demon faqat loopbackda tinglashi kerak, chunki o‘ramdan tashqarida hech narsa unga yetib borishi shart emas.
Bu loyiha uchun uchta alohida narsa mos kelishi kerak. Mijoz profili mahalliy tinglovchini ko‘rsatadi, server sertifikati mijoz tekshiradigan nomga mos keladi va server tomonidagi uzatish demon haqiqatda ishlatadigan portni nishonga oladi. Ulardan birida xato qilsangiz, ulanish VPN qatlamiga yetmasdan o‘ladi. Shunda sertifikat nomuvofiqligi VPN xatosi sifatida emas, o‘ram xatosi sifatida ko‘rinadi, shuning uchun ikkala jurnalni yonma-yon o‘qishga arziydi.
O‘ramga boradigan yo‘l — tuzoq
Tunnel ko‘tarilishi bilan standart yo‘l uning ichiga ishora qiladi, tashqi TLS sessiyasiga esa o‘zi ko‘tarib yurgan tunnelga kirmaydigan yo‘l kerak. Oddiy VPN mijozi o‘zi qo‘ng‘iroq qiladigan manzilni himoya qiladi; o‘ralgan mijoz o‘z loopbackiga qo‘ng‘iroq qiladi, shuning uchun o‘ramning borar manzili bu himoyaga ko‘rinmaydi.
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
Aniq manzillarni o‘zingiz to‘ldirasiz, yo‘l esa ulanishning butun umri davomida mavjud bo‘lishi kerak, faqat ishga tushirishda emas. Yo‘lni mijozdan oldin qo‘shib, keyin olib tashlaydigan kichik o‘ram skripti eslab qolingan buyruqdan ishonchliroq.
Androidda bu istisnoning o‘xshashi har bir ilova uchun sozlamadir: o‘ram ilovasini tunneldan chiqarib tashlang, uning o‘z trafigi mobil ulanish orqali chiqsin. Chiqarib tashlanmasa, o‘ram o‘zi qurmoqchi bo‘lgan tunnelning ichiga yo‘naltiriladi va qayta ulanish davri server muammosidek ko‘rinadi.
Biror narsani o‘zgartirishdan oldin vaqtni o‘qing
Har safar bir xil intervaldan keyin o‘ladigan sessiya kriptografik nosozlik emas, siyosat imzosi, va uzoq muddatli oqim cheklovlari aynan shunday naqsh hosil qiladi. Qo‘l berib ko‘rishishdan keyin darhol qayta o‘rnatiladigan ulanish sertifikatlar zanjirini yoqtirmagan proksiga ishora qiladi.
Ikki tarmoqdan ham oddiy HTTPS sayt sertifikatining beruvchisini solishtiring. Cheklangan tarmoqda beruvchi boshqacha bo‘lsa, o‘rtada nimadir TLSni tugatyapti, va hech bir o‘ram bu aralashuvdan o‘zgarmasdan o‘tmaydi. Xuddi shu solishtirish bloklash server nomingiznimi yoki o‘sha manzildagi har bir TLS sessiyasinimi nishonga olishini aytadi.
Kuzatilgan xatti-harakatni yozing: sessiya qancha davom etdi, soket ochildimi, o‘ram qo‘l berib ko‘rishishni jurnalga yozdimi. Ularning har biri keyingi sinovni toraytiradi.
Bir vaqtda bitta o‘zgaruvchini sinang
Avval UDPni tekshiring, chunki ba’zi tarmoqlar uni butunlay tashlab yuboradi va UDP nosozligi 443 haqida hech narsa demaydi. Keyin o‘ramsiz TCP 443ni, so‘ng 443dagi o‘ramni sinab ko‘ring. Har bir qadamda mijoz jurnalini o‘qing va xatti-harakat o‘zgarishi bilan to‘xtang.
Har bir urinishda bitta elementni o‘zgartiring. Yangi port, yangi o‘ram va yangi shifr bitta yugurishda bo‘lsa, uchtadan qaysi biri muhim bo‘lganini aytolmay qolasiz.