VPN tunnel firewall'dan o'tadimi yoki yo'qmi, buni ikki alohida qoida hal qiladi: klient qo'ng'iroq qiladigan port va yukni tashuvchi protokol. Faqat birinchisini ochsangiz, tunnel autentifikatsiyadan o'tadi, keyin esa hech qanday ma'lumot oqmaydi. Eng kami — PPTP uchun bitta TCP port va GRE, L2TP/IPsec va IKEv2 uchun ikkita UDP port va ESP, SSTP, OpenVPN va WireGuard uchun bittadan port. Yo'nalish, holat kuzatuvi va NAT qolganini hal qiladi.

Klient qo'ng'iroq qiladigan portdan boshlang

Har bir oilaning klient birinchi murojaat qiladigan kirish nuqtasi bor va ruxsat qoidangiz aynan shu kirish nuqtasini nomlashi kerak. PPTP klientlari TCP 1723 ga ulanadi. L2TP/IPsec UDP 500 da IKE boshlaydi va NAT o'tish qo'llanilganda UDP 4500 ga o'tadi, L2TP kadrining o'zi tunnel ichida UDP 1701 da bo'ladi. SSTP sessiyani TCP 443 da TLS ga o'raydi, IKEv2 UDP 500 va 4500 da muzokara qiladi, OpenVPN sukut bo'yicha UDP 1194 ishlatadi, lekin ko'pincha TCP 443 ga ko'chiriladi, WireGuard esa UDP 51820 da tinglaydi.

FamilyRule to add on the gatewayTypical mistake
WireGuardUDP port from ListenPort, for the peer addressAssuming 51820 when the config says otherwise
OpenVPNThe configured UDP or TCP port, often 443Opening 1194 after the server moved
SSTPTCP 443 limited to the gateway IPAllowing 443 to any destination
IKEv2UDP 500 and UDP 4500, plus ESPAllowing only 500 and losing NAT-T
L2TP/IPsecUDP 500, 4500, ESP, and 1701 inside the tunnelExposing 1701 to the internet
PPTPTCP 1723 and IP protocol 47Writing a rule for TCP 47

Bu raqamlarni qat'iy xususiyat emas, sukut qiymatlari deb qabul qiling. WireGuard interfeysi o'z konfiguratsiyasi e'lon qilgan istalgan tinglash portidan foydalanadi, OpenVPN server esa administrator tanlagan istalgan portda o'tirishi mumkin. Qoidani yozishdan oldin server konfiguratsiyasini o'qing, chunki 1194 uchun ochilgan firewall 443 ga ko'chirilgan serverga hech narsa qilmaydi.

Uchinchi ustun — o'zgartirish chiptalarining ko'pchiligi xato ketadigan joy. Qoida bor, lekin u noto'g'ri manzilga, noto'g'ri yo'nalishga yoki noto'g'ri transportga ishora qiladi.

GRE va ESP — protokol raqamlari, port emas

GRE va ESP da port umuman yo'q, shuning uchun faqat port raqamlarini qabul qiladigan firewall shakli ularni ifodalay olmaydi. GRE — IP protokoli 47, ESP — IP protokoli 50, ikkalasi ham IP sarlavhasidagi protokol maydoni orqali moslashtiriladi. TCP porti 47 deb yozilgan qoida hech narsaga mos kelmaydi, shu tariqa PPTP siyosati to'g'ri ko'rinadi va qo'l berib ko'rishgandan keyin har bir paketni tashlaydi.

Uy routerlari buni o'tkazish katagining orqasiga yashiradi, u protokol qoidasini va GRE uchun oqimni xaritalash uchun kerak bo'lgan NAT yordamchisini o'rnatadi. Haqiqiy firewall'da protokolni o'zingiz qo'shasiz: PPTP serveriga IP protokoli 47 ga ruxsat bering, IPsec shlyuziga IP protokoli 50 ga ruxsat bering. Platforma protokol maydonini taklif qilmaydigan joyda inkapsulyatsiya yo'l bo'ladi, shuning uchun IKEv2 UDP 4500 ga qaytishi mumkin va shuning uchun OpenVPN va WireGuard bu muammoga hech qachon duch kelmaydi.

Klientni ayblashdan oldin qoida aslida nimaga mos kelishini tekshiring. Shlyuzda nolda qoladigan paket hisoblagichi qoida hech qachon ishga tushmaganini aytadi, klient tomonda necha marta qayta o'rnatilsa ham bu o'zgarmaydi.

Yo'nalish, holat va NAT javobni o'zgartiradi

Tashqariga qo'ng'iroq qiladigan klient va ichkariga tinglaydigan shlyuz turli talablardir va bir xil port ro'yxati bir yo'nalishda to'g'ri, boshqasida noto'g'ri bo'lishi mumkin. Holatni kuzatuvchi firewall 500 va 4500 dagi UDP oqimini kuzatadi va ikkinchi qoidasiz javoblarni qaytaradi. ESP va GRE port tashimaydi, shuning uchun NAT qurilmasining ushlab oladigan narsasi yo'q va sessiyani kuzatish uchun yordamchi yoki inkapsulyatsiya kerak.

NAT o'tishi — ko'pincha e'tibordan chetda qoladigan qism. IKEv2 UDP 500 da boshlanadi, NAT qurilmasini aniqlaydi va UDP 4500 da davom etadi, shuning uchun faqat 500 ga ruxsat beruvchi siyosat o'rnatilib, keyin jim bo'lib qoladigan tunnel beradi. L2TP/IPsec ham xuddi shunday harakat qiladi. Agar yozib olishingiz birinchi almashinuvni ko'rsatib, doimiy trafikni ko'rsatmasa, 500 da to'xtaydigan qoidani qidiring.

Har bir qoida bilan yo'nalishni yozib qo'ying. «UDP 4500 ga ruxsat ber» qayerdan qayerga ekanini aytmaguningizcha hech narsani anglatmaydi va ko'chib yuruvchi klient uchun to'g'ri qoida odatda sayt-sayt hamkor uchun noto'g'ri.

Har bir yo'lni yozib olish bilan tekshiring

Yozib olishni klientda emas, shlyuzda ishga tushiring: klient faqat kelganini yozadi. Bu filtrlar yuqoridagi oilalarni qamrab oladi va qaysi bosqich yetishmayotganini ko'rsatadi:

sudo tcpdump -ni any tcp port 1723
sudo tcpdump -ni any udp port 500 or udp port 4500
sudo tcpdump -ni any proto gre
sudo tcpdump -ni any proto 50

Chiqishni ketma-ketlik sifatida o'qing. Muzokara ko'rinib, yuk protokoli ko'rinmasa, tashlash klient va shlyuz orasida bir joyda sodir bo'ladi. Ikkalasi ham ko'rinib, sahifa baribir ochilmasa, firewall endi gumondor emas; marshrutlash, DNS yoki klientga berilgan manzillar hovuziga qarang.

tcpdump yo'q qurilmada xuddi shu dalillar interfeys va qoida hisoblagichlaridan keladi. Tunnel interfeysida baytlar kirib, chiqmasa — bu birinchi ruxsat qoidasiga emas, qaytish yo'liga ishora qiladi.

Himoya qila oladigan qoidalar to'plamini qoldiring

TCP 443 dagi SSTP portga asoslangan har qanday filtr uchun oddiy HTTPS dan ajralib turmaydi va tarmoq faqat veb-trafikka ruxsat berganda maqsad shu. Shuning uchun 443 qoidasi butun internetni emas, shlyuzni manzil sifatida nomlashi kerak. Tunnel ishlashi bilan vaqtinchalik har-qayerdan-har-qayerga qoidalarini o'chiring. Qaysi qoida mos kelganini, bor joyda protokol raqamini va yo'nalishni yozing, keyingi odam dalildan boshlashi uchun.

Bulutli nuqtadan-saytga shlyuzlar tanlovni ko'rinadigan qiladi: yuklab olingan profil 443 dagi SSTP yoki 500 va 4500 dagi IKEv2 dan foydalanadi va profil haqiqatda tanlaganini ochish kerak. PPTP zamonaviy tarmoqda GRE istisnosiga arzimaydi, chunki uyali operatorlar firewallingizdan qat'i nazar 47 protokolini ko'pincha tashlab yuboradi. Chiptani yopishdan oldin qoida server konfiguratsiyasidagi portga mos kelishini, protokol maydoni oilaga kerak bo'lgan joyda o'rnatilganini va manzil har qanday manzil emas, shlyuz ekanini tasdiqlang.

O'xshash maqolalar