PPTP passthrough yo'q: Windows VPN xatosi 807 ni tuzatish
TCP 1723 ni yo'naltirish PPTP 807 xatosini o'zi bartaraf etmaydi. GRE — bu IP sarlavhasidagi 47-raqamli protokol, shu sababli routerga passthrough yoki aniq protokol qoidasi kerak.
TCP 1723 ni yo'naltirish ko'pincha PPTP ning faqat birinchi qismini tozalaydi va qolganini buzilgan holda qoldiradi, shu sababli Windows urinishda hali ham 807 xatosini qaytaradi. Keyingi fikr 47-port uchun qoida qo'shish bo'ladi va aynan shu qadam bir tushdan keyinni behuda o'tkazadi: GRE — IP sarlavhasidagi protokol raqami, yo'naltirish jadvali moslasha oladigan port emas. Router 47-protokolni o'tkazib, uni o'sha chaqiruvga bog'lamaguncha tunnel boshlana olmaydi. Quyidagi bo'limlar ikki kanalni ajratadi, so'ng ularni birma-bir sinaydi.
Port jadvalida protokol raqami uchun qator yo'q
PPTP turli yo'llar bilan muvaffaqiyatsiz bo'ladigan ikki suhbatdan foydalanadi. TCP 1723 dagi chaqiruvni boshlaydi, bog'lanish ma'lumotini uzatadi va foydalanuvchi uzilganda uni yirtib tashlaydi. Yuk tomoni GRE ichida ishlaydi, uni IP sarlavhasi 47-protokol raqami bilan belgilaydi va o'sha tunnel ichida PPP bog'lanishni kelishadi, MS-CHAPv2 esa hisob ma'lumotlarini tekshiradi.
GRE hech qanday transport sarlavhasini ko'tarmagani uchun hech qanday port ochmaydi, shu sababli portlar uchun yozilgan qoida moslashadigan narsaga ega emas. 1723 ni yo'naltiruvchi router o'sha TCP sessiyasi uchun xarita yaratadi va shu yerda to'xtaydi. Ikkinchi yarmini boshqaradigan proshivka bu xususiyatni PPTP passthrough yoki PPTP ALG deb ataydi, ba'zi proshivkalar ikkalasini ham taklif qilmaydi va bu bo'shliqni hech qachon tilga olmaydi. Belgilash katagidagi yozuv 47-protokol umuman tanilishidan kamroq muhim.
Ma'lumot yo'li o'lganda Windows nima xabar beradi
807 xatosi ulanishni tugatib bo'lmaganini aytadi, amalda bu chaqiruv serverga yetgani, lekin ma'lumot kanali ko'tarilmaganini bildiradi. Bu hisob haqida emas, transport haqida hukm. 691 xatosi hisob ma'lumotlariga yoki autentifikatsiya protokoli mos kelmasligiga ishora qiladi, shuning uchun sizni butunlay boshqa joyga yuboradi.
Parolga tegishdan oldin transport ustida ishlang. 807 ning ketidan quvib hisob ma'lumotlarini o'zgartirish haqiqiy nosozlikni joyida qoldiradi va keyingi urinishni o'qishni qiyinlashtiradi.
Nega ikkinchi mijoz ishlayotgan tunnelni buzadi
Ularni ajratadigan portlar yo'qligi sababli NAT qurilmasi ikki PPTP mijozini ikki HTTPS sessiyasini ajratgandek ajrata olmaydi. Shuning uchun ko'p iste'molchi qurilmalari bitta PPTP chaqiruviga ruxsat beradi va uni manba manzil bo'yicha kuzatadi. Yolg'iz ishlagan noutbuk ikkinchi mashina qo'ng'iroq qilganda tugatishni to'xtatadi va mijoz tomondan nosozlik tasodifiy ko'rinadi. Bu naqsh proshivkaga tegishli va hech qanday profil o'zgarishi uni o'zgartirmaydi.
Ikkala mijoz ham qo'ng'iroq qilayotganda ulanish jadvalini kuzating. Agar xaritani faqat birinchi xost saqlab turgan bo'lsa, router qo'llab-quvvatlaydigan chegaraga yetgan va mijoz tomondagi hech qanday sozlama uni siljita olmaydi.
Qaysi yarmi ishlamayotganini isbotlang
Routerda biror narsani o'zgartirishdan oldin TCP 1723 yetib kelishini tasdiqlang, chunki bu javob qaysi yarmini sinayotganingizni hal qiladi. Ularni Windows mijozidan o'z server nomingizga nisbatan ishga tushiring. Birinchisi port javob berganmi-yo'qmi chop etadi, ikkinchisi esa dialogsiz qo'ng'iroq qiladi, bu takroriy urinishlarni taqqoslash mumkin bo'ladi.
Test-NetConnection vpn.example.com -Port 1723
rasdial "Work VPN"
Port sinovida haqiqiy natija boshqaruv kanali ochiqligini va GRE qolgan gumondor ekanini bildiradi. Noto'g'ri natija marshrutlash, filtr yoki yo'naltirish buzilganini bildiradi va hech qanday GRE o'zgarishi buni qutqarmaydi. Ma'lumot tomonini ko'rish mumkin bo'lgan joyda, server uchida yoki routerda kuzatish kerak.
tcpdump -ni any proto 47
Wireshark dagi ekvivalent ko'rsatish filtri ip proto 47 bo'lib, uni shell da bemalol bo'lmagan odamga topshirish osonroq. Javob sifatida hech narsa chiqmasdan GRE kelsa, qaytish yo'lini tuzatish kerak.
Xatoni aslida nima tuzatadi
Router sozlamani ochib beradigan joyda PPTP passthrough ni yoqing yoki qoidalarni qabul qiladigan proshivkada 47-protokolga aniq ruxsat bering. RouterOS da forward qoidasi protokolni to'g'ridan-to'g'ri moslashtiradi, portga asoslangan yo'naltirish buni hech qachon qila olmagan. Iste'molchi proshivkasi odatda o'sha qarorni belgilash katagi orqasiga yashiradi, ba'zan port yo'naltirish o'rniga xavfsizlik sozlamalari ostida. Bunday boshqaruv bo'lmasa, mijoz tomonda hech narsa uni qoplamaydi.
/ip firewall filter add chain=forward protocol=gre action=accept
/ip firewall filter print where protocol=gre
PPTP ni almashtirish boshqa variant va ko'pincha arzonroq. VPN ni o'zi tugatadigan router kiruvchi mijozlar uchun ikki barobar NAT dan qochadi, portga asoslangan NAT allaqachon boshqaradigan protokolga esa passthrough umuman kerak emas: UDP orqali OpenVPN, TCP 443 orqali SSTP yoki ESP ni UDP 4500 ichiga o'raydigan NAT-T bilan L2TP/IPsec. PPTP shuningdek MS-CHAPv2 ga bog'liq, uning hujjatlashtirilgan zaifliklari xato yo'qolgandan keyin ham uni yangi joriy etish uchun yomon tanlovga aylantiradi.
Qaysi qoida farq qilganini yozib qo'ying, chunki ikkinchi foydalanuvchi kirish so'raganda o'sha sayt o'sha chegaraga yana duch keladi. Protokol darajasidagi tuzatish tarmoq eslatmalariga tegishli, keyingi muhandis o'sha yerda qaraydi.