SNAT, DNAT va Masquerade: VPN'dagi har bir NAT qoidasi nima qiladi
Manba NAT oqim qayerdan kelayotgandek ko'rinishini qayta yozadi; manzil NAT qayerga ketishini qayta yozadi. Masquerade — qarzga olingan manzilli manba NAT.
VPN shlyuzining ikki tomoniga ushlash qo'ying — bitta oqim to'rt xil manzilni ko'rsatishi mumkin. Manba NAT paket qayerdan kelayotganini qayta yozadi; manzil NAT qayerga ketishini qayta yozadi. Masquerade uchinchi yo'nalish emas, u qat'iy qiymat o'rniga chiqish interfeysi manzilini oladigan manba-NAT qoidasi. Uchtadan qaysi biri chindan kerakligini ayting — «VPN buzilgan» chiptalarining ko'pchiligi qaytish yo'li haqidagi savolga aylanadi.
Har bir qoida nimani qayta yozadi
Manba NAT, odatda SNAT deb yoziladi, oqim router yoki shlyuzni tark etganda uning manba manzilini o'zgartiradi. Qabul qiluvchi xizmat tarjima qilingan manzilga javob beradi, tarjima qiluvchi quti esa o'sha ulanish uchun saqlagan holat bilan o'zgarishni qaytaradi. Linuxda bu holat conntrack ichida yashaydi, shuning uchun conntrack -L asl va javob kortejlarini yonma-yon chiqaradi.
Manzil NAT, ya'ni DNAT, buning o'rniga manzilni o'zgartiradi. UDP 51820 da ommaviy manzilga yuborilgan paketni 10.8.0.2:51820 dagi ichki WireGuard serveriga qayta yozish mumkin. Uy routeri yoki bulut yuk balanslagichi VPN tinglovchisini shu tarzda e'lon qiladi va bu tunnel keyin nima tashishi mumkinligi haqida hech narsa demaydi.
Masquerade SNAT oilasiga kiradi. Qoida hech qanday manzilni nomlamaydi; paket chiqayotganda chiqish interfeysida qanday manzil bo'lsa, o'shani ishlatadi. Linux unga o'z maqsadini beradi va bu DHCP yoki PPPoE orqali manzil oladigan WAN interfeysida odatiy tanlovdir.
Xarita qayerda yashashi nosozlikni belgilaydi
Har chegarada kortejni yozib oling: tunnel oldidan, ichida va ommaviy interfeysda. Tunnel ichidagi ushlash tashqarisidagidan qonuniy ravishda farq qiladi va tarjima qayerda bo'lishini bilmasdan ikkalasini solishtirgan odam noto'g'ri xostni quvadi.
Qaytish trafigi xaritani tutib turuvchi qurilmadan o'tishi kerak. Agar javob boshqa yo'l, ikkinchi yuqori bog'lanish, siyosat yo'li yoki sizning xususiy diapazoningizni hech eshitmagan provayder orqali ketsa, holatli teskari tarjima hech qachon bo'lmaydi va mijoz bir tomonlama trafikni ko'radi. Yana manba NAT qo'shish yo'qolgan qaytish yo'lini kamdan-kam tuzatadi; u bitta oqimda alomatni yashirib, qolgan hamma joyda manzilga asoslangan siyosatni buzishi mumkin.
Boshqa keng tarqalgan xato — tunnel yo'l qo'yiluvchanlik yaratadi deb kutish. Paketlari internetga chiqadigan xususiy mijozga to'g'ri chiqish tartibi kerak: standart yo'l, uzatuvchi shlyuz va odatda ommaviy manzilga manba tarjimasi. Faqat shifrlash xususiy manzilni yetib boriladigan qilmaydi.
Masquerade yoki aniq SNAT
Ikkalasini va'da qilgan narsasi bo'yicha solishtiring. Masquerade chiqish manzilini tanlaydi, aniq SNAT uni qotiradi. Ommaviy manzili barqaror shlyuzda qotirish jurnallar va hamkor ruxsat ro'yxatlariga bitta oldindan aytish mumkin bo'lgan qiymat beradi. Dinamik WAN liniyasida qotirilgan SNAT manzili ijara o'zgargan paytda xato bo'lib qoladi va Masquerade aynan shu holat uchun qurilgan.
Qamrov tanlov kabi muhim. Shlyuzdan chiqadigan har bir paketga mos keladigan, manba yoki manzil chegarasi yo'q Masquerade qoidasi tegmasdan qoldirmoqchi bo'lgan trafikni ham tarjima qiladi, boshqa xususiy tarmoqlarga ketadigan trafik bilan birga. Qoidani mijoz diapazoni, mo'ljallangan manzil va interfeys bilan cheklang.
Siyosatga asoslangan IPsecda bu eng qattiq tishlaydi. strongSwan uzatish qo'llanmasi IP uzatishni yoqish va mijozlar uchun manba-NAT qoidasini qo'shishni bosqichma-bosqich ko'rsatadi, xuddi shu hujjat asl manzilini saqlab qolishi kerak bo'lgan trafikni chiqarib tashlashni ham qamrab oladi. Xavfsizlik siyosati mos kelishidan oldin manbani tarjima qilsangiz, tunnel ko'tarilishi mumkin, ammo trafik baribir yiqiladi, chunki paket endi kelishilgan selektorga o'xshamaydi.
Uzoq tomon nimani ko'rishi kerakligini ham hal qiling. Tarjimadan keyin xizmat shlyuzni ko'radi, alohida mijozni emas. Bu qaytish marshrutlashni soddalashtiradi va shu bilan birga jurnallarni tekislaydi hamda har bir mijoz uchun ruxsat ro'yxatlarini kuchsiz qiladi. Mijoz manzillarini saqlash muhim bo'lsa, test o'tishi uchun ularni yashirish o'rniga marshrutlangan qaytish yo'lini rejalashtiring.
Linux shlyuzida qoidalarni o'qish
Mijozlari 10.8.0.0/24 da va WAN interfeysi eth0 deb nomlangan masofaviy kirish shlyuziga uzatish yoqilgan va oqimga ruxsat beruvchi filtr siyosati kerak, shundan keyingina biron NAT qoidasi yordam beradi. iptables versiyasi ikkala yo'nalishni nat jadvalida saqlaydi:
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 51820 \
-j DNAT --to-destination 10.8.0.2:51820
nftables shakli xuddi shu ikki ilgakni nomlangan interfeys va aniq zanjir bilan ishlatadi:
nft add rule ip nat postrouting ip saddr 10.8.0.0/24 oifname "eth0" masquerade
nft add rule ip nat prerouting iifname "eth0" udp dport 51820 dnat to 10.8.0.2:51820
Ikkala parcha ham filtr zanjiri uzatilgan oqimni allaqachon qabul qiladi deb hisoblaydi. NAT ruxsat qoidasi emas va to'g'ri tarjima qilingan paket ham bitta jadval keyin tashlab yuborilishi mumkin. Jonli xaritani conntrack -L bilan tasdiqlang, nima yuklanganini nft list ruleset yoki iptables-save -t nat bilan tasdiqlang, so'ng manzil haqiqatan o'zgarayotganini ko'rish uchun ikkala interfeysda ushlang.
Yomon qoidaga o'xshab ko'rinadigan nosozlik shakllari
Soch to'g'nog'i trafigi klassika. Serverning ommaviy manzili orqali ichki serverga yetib boradigan ichki mijoz kirish yo'lida DNAT va qaytish chiqishida manba tarjimasini talab qiladi, aks holda server to'g'ridan-to'g'ri mijozga javob beradi va javob rad etiladi. Yechim o'sha ichki-ommaviy holat uchun ikkinchi, torroq qoida, hamma narsa uchun kengroq Masquerade qoidasi emas.
Ikki marta tarjima — jim turi. Allaqachon operator darajasidagi NAT orqasida o'tirgan mijoz shlyuzingizga qaytarib marshrutlay olmaydigan manzil bilan keladi, shuning uchun yana tarjima qilasiz. Ishlaydi, lekin jurnallar endi xususiy manzillashning ikki sakrashini olib yuradi va har qanday tekshiruv ikkala xaritani talab qiladi. Siyosatga asoslangan IPsec uchinchi burilish qo'shadi: siyosat mos kelishidan oldin tarjima qilsangiz, trafik o'tmay turib ko'tarilgan SA olasiz, bu esa NAT emas, xavfsizlik devori xatosi kabi o'qiladi.
Keyin o'tadigan test va muvaffaqiyatsiz joylashtirish bor. NAT buyrug'ini qo'lda yurgizish mexanizmni isbotlaydi, konfiguratsiyani emas. Ish vaqtida qo'shilgan qoida qayta yuklashda yoki keyingi interfeys hodisasida yo'qoladi, raqami o'zgaradigan interfeysga bog'langan Masquerade qoidasi esa uzoq tomon ko'radigan manzilni jimgina o'zgartirishi mumkin. Qoidani uni egallagan xavfsizlik devori konfiguratsiyasiga joylang va qayta ulangandan keyin yana sinab ko'ring.
Qoidani saqlashdan oldin tekshiruv ro'yxati
Avval yo'nalishni nomlang: manba, manzil yoki ikkalasi. Keyin holatni kim tutishi kerakligini aniqlang — shlyuz, yuqoridagi router yoki IPsec sherigi — va javob yo'li undan qaytib o'tishini tasdiqlang. Qoidani chindan nazarda tutgan mijoz diapazoni, manzil va interfeys bilan cheklang hamda uzoq tomon shlyuzni ko'rishi kerakmi yoki mijozning asl manzilini, buni oldindan hal qiling.
Shlyuzdan emas, mijozdan sinang. Shlyuzning o'zidagi brauzer mijoz tarjimasi qoidasini butunlay chetlab o'tishi mumkin, shuning uchun u yerda ishlaydigan sahifa tunnel haqida hech narsani isbotlamaydi. Mijozdan boshlangan bitta so'rov yuboring, hisoblagichlar va conntrack jadvalini kuzating, ishlayotgan joyingizda iloji bo'lsa, tunnel qayta ulangandan va WAN manzili o'zgargandan keyin takrorlang.