VPN tunneli hech qachon ulanmaydi: paketlar aslida qayerda to'xtaydi
Hech qachon shakllanmaydigan tunnel ikkala uchida bo'sh jurnal qoldiradi. GRE, ESP yoki UDP 4500 tashlab yuborilayotganini kuzatib, serverni tahrirlashdan oldin operator NAT'ini aniqlang.
Mijoz qayta-qayta urinishda davom etadi, jurnal qo'l siqish tugamasdan to'xtaydi va server umuman hech narsa qayd etmaydi. Bu naqsh e'tiborni hisob ma'lumotlaridan uzoqlashtirib, yo'lning o'ziga qaratadi: ikki uch o'rtasida nimadir tunnelga kerak bo'lgan protokolni tashishdan bosh tortadi. Ikkala konfiguratsiyaga tegishdan oldin paketlar qayerda to'xtashini aniqlang, chunki filtrlangan protokol ham, noto'g'ri parol ham ko'pchilik mijozlarda bir xil do'stona xatoni beradi. Testlar xarajat bo'yicha tartiblangan, eng arzoni birinchi.
Trafik qayerda to'xtashini isbotlang
Bir vaqtning o'zida mijozning chiqish interfeysida va serverda yozib oling. Chiqqan narsani kelgan narsa bilan solishtiring va farq qaysi yo'nalishda ko'rinishini qayd eting.
Serverda hech narsa yo'qligi yo'l yoki birinchi NAT trafikni tashlab yuborayotganini bildiradi, javobsiz kelishlar esa serverdagi devor yoki mavjud bo'lmagan qaytish marshrutiga ishora qiladi. Tunnelni tez-tez tugatadigan router odatda foydali jurnal yuritmaydi, shuning uchun yozib olishning o'zi hujjat bo'ladi. Manzil porti va protokol raqamini yozib qo'ying, chunki ikkala nosozlik mijoz muloqot oynasida bir xil ko'rinadi.
PPTP 47-protokolsiz o'ladi
PPTP boshqaruvni TCP 1723 orqali, ma'lumotlarini esa GRE ichida tashiydi, GRE port raqami emas, IP protokoli 47. Faqat 1723 ni yo'naltirish klassik natijani beradi: ulanish autentifikatsiyadan o'tadi va keyin jim qoladi, chunki yukni tashuvchi protokol uchun qoida yo'q. Mijoz buni rad etilgan paroldan ajrata olmaydi, shuning uchun yozib olish konfiguratsiya o'zgarishlaridan oldin bo'lishi kerak.
O'tkazish kiruvchi yo'naltirishga qarama-qarshi yo'nalishda ishlaydi va proshivka ikkalasiga ham bitta yorliqni etarlicha tez-tez ishlatadi, bu hammani chalkashtirish uchun yetarli. Linux mijozida mahalliy devor router ishtirok etishidan ancha oldin GRE ni tashlab yuborishi mumkin, shuning uchun 47-protokol o'z qoidasini talab qiladi va conntrack yordamchisi yuklangan bo'lishi kerak. Ubuntu'ning ufw bu qoidalarni before faylida saqlaydi, chunki oddiy allow qoidalari protokol raqamini ifodalay olmaydi. Keyin mashinani qayta ishga tushirish o'rniga devorni qayta yuklang.
# /etc/ufw/before.rules, inside *filter
-A ufw-before-input -p gre -j ACCEPT
sudo ufw allow 1723/tcp
sudo modprobe nf_conntrack_pptp
sudo conntrack -L | grep greIkki NAT ortidagi L2TP va IPsec
L2TP IPsec ichida kalit almashinuvi uchun UDP 500, NAT aniqlanganda UDP 4500 va protokol 50 sifatida ESP talab qiladi. Ularning har biri alohida filtrlanadi, shuning uchun biriga ruxsat beruvchi qoida qolgan ikkitasi haqida hech narsani isbotlamaydi. Ketma-ket ikki router har bir paketni ikki marta tarjima qiladi va uchlar nima kelishilgani borasida endi kelisha olmaydi.
Tashqi modemni ko'prik rejimiga o'tkazing yoki ichki routerda NAT ni o'chiring, shunda ommaviy manzil tunnelni tugatuvchi qurilmaga yetib boradi. Ikkalasi ham imkonsiz bo'lsa, tunnel qo'sh NAT chegarasi ichidan boshlanishi kerak, u yerda tugatilmasligi kerak.
Operator tarmoqlari va manzillarni bo'lishish
WAN manzili 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 yoki 100.64.0.0/10 ichida bo'lsa, routerda ommaviy manzil yo'q va internetdan keladigan hech qanday kiruvchi yo'naltirish unga yetib bormaydi. Operator darajasidagi NAT kutilmagan protokollarni ham filtrlaydi va GRE mobil ulanishlarda tez-tez qurbon bo'ladi. WAN manzilini routerning o'zida solishtiring, uning orqasidagi mijoz uchun qidiruv sayti bildirgan manzil bilan emas.
Xuddi shu routerni simli liniyada ishga tushirish bitta testda operator haqidagi xulosani konfiguratsiya xatosidan ajratadi. Operator protokoldan bosh tortsa, qolgan variantlar 443 dagi boshqa transport yoki ichkaridan boshlangan tunneldir.
Portlarni yopishdan oldin tinglovchilar ro'yxatini o'qing
Xavotir uyg'otuvchi port skani odatda yoqilgan holda keladigan funksiyalar to'plamidir. Tinglovchilarni ro'yxatga oling, har bir soketni funksiyaga moslang, so'ng portni bloklash o'rniga funksiyani o'chiring, ikki ko'rinish bir-biridan uzoqlashmasligi uchun.
ss -lntup
systemctl list-units --type=service --state=running | grep -i vpn
nc -vz 203.0.113.10 1723
nc -vzu 203.0.113.10 4500SoftEther'ning standart qiymatlari yaxshi misol: TCP 443, 992 va 5555, L2TP/IPsec va DNS-tunnel funksiyalari o'z soketlarini qo'shadi. Bu funksiyalarni o'chirish tinglovchilarni yashirish o'rniga olib tashlaydi va tashqi xostdan tekshiruv operator portni umuman o'tkazadimi-yo'qmi ekanini aytadi. Mahalliy javob beruvchi tinglovchi yuqorida yopiq bo'lishi mumkin, shuning uchun routerning o'z WAN manzilini tashqi xizmat bildirgan manzil bilan solishtiring.