VPN NAT UFW ning before.rules faylida qayerda turadi va uni qanday sinash kerak
before.rules dagi NAT qatori COMMIT mavjud to'g'ri jadval bo'limi ichida bo'lishi kerak. UFW ni qayta yuklashdan oldin nomzodni iptables-restore --test bilan tahlil qiling.
Shell ga yozilganda ishlaydigan NAT qoidasi before.rules ga qo'yilganda ishlamaydi, chunki bu fayl skript emas. U jadval bo'limlari, zanjir deklaratsiyalari va har bir jadval uchun COMMIT belgisi bo'lgan tiklanish formatidagi hujjat. Noto'g'ri joydagi qator butun tiklanishni to'xtatadi yoki mavjud deb o'ylagan qoidalaringizni jimgina tashlab yuboradi. Quyidagi qo'llanma bo'lakni ramka kutgan joyga qo'yadi va natijani keyingi qayta yuklashdan oldin isbotlaydi.
Shell buyrug'i tiklanish fayli emas
iptables -t nat bilan boshlanadigan qator iptables binar fayli uchun ko'rsatma, UFW o'qiydigan fayl esa to'liq qoidalar to'plamining tavsifi. Farq kosmetik emas: tiklanish formati qaysi jadvalda ekanini, qaysi zanjirlar borligini va jadval qayerda tugashini bilishi kerak. Bu hujjatga qo'yilgan buyruq yo sintaksis xatosi, yo undan yomoni, noto'g'ri jadvalga bog'langan qoida. Ramka bu fayllarni tiklanish vositalari orqali yuklaydi, chunki ular ketma-ket emas, deklarativdir.
Hujjat butun holda ham yuklanadi, shuning uchun bitta buzuq bo'lim faylning qolgan qismini qo'llashni to'xtatishi mumkin. Shu sababli NAT bo'lagidagi kichik xato filtr qoidalarini ham birga pastga tortadi va shu bilan firewall o'zgarishi uzilishga aylanadi.
Bo'lakni mavjud jadval bo'limi ichiga qo'ying
NAT bo'lagining shakli bor va shakl ichidagi qoida matnidan muhimroq. Jadval sarlavhasi bo'limni ochadi, zanjir deklaratsiyalari hisoblagichlarni o'rnatadi, qoidalar ergashadi va COMMIT bo'limni yopadi.
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.55.0.0/24 -o ens3 -j MASQUERADE
COMMIT
Yuqoridagi hovuz va interfeys sizning qiymatlaringiz uchun o'rinbosarlar; ko'chirishga arziydigan qism — tuzilma. Agar faylda allaqachon *nat bo'limi bo'lsa, ikkinchisini ochish o'rniga qoidani shu bo'limning ichiga qo'shing, chunki format har bir jadval uchun bitta COMMIT kutadi va bir jadval uchun ikkita bo'lim sodir bo'lishini kutayotgan tuzatishdir. Tarqatma zanjir ta'riflarini tegmasdan saqlang, sotuvchi o'z integratsiyasi uchun qo'shganlarini ham. UFW ramka qo'llanmasi before, user va after fayllarini hamda mos COMMIT talabini hujjatlashtiradi.
Agar fayl bo'sh bo'lib chiqsa, uni qo'llanmadan to'ldirmang. Uni qaysi paket egallashini va haqiqiy faol siyosat nimaligini tasdiqlang, chunki bo'sh doimiy fayl yadroda qoidalar yo'qligini isbotlamaydi, yuklangan qoidalar to'plami esa keyingi qayta yuklashda to'liq fayl bo'lishini isbotlamaydi. Avval qo'llab-quvvatlanadigan asosiy chiziqni tiklang, keyin sayt o'zgarishlarini uning ustiga qayta qo'llang.
Nomzodni qo'llamasdan sinang
Tiklanish vositasi qoidalar to'plamini qo'llamasdan tahlil qilishi va qurishi mumkin, bu esa mavjud eng arzon sinovdir. Uni faol faylga emas, himoyalangan nusxaga qarshi ishga tushiring va faqat chiqish holatini emas, xato matnini o'qing. Tahlil muvaffaqiyatsizligi qator va odatda jadval nomini aytadi, bu muvaffaqiyatsiz qayta yuklash aytadiganidan ko'proq.
sudo cp /etc/ufw/before.rules /root/before.rules.bak
sudo iptables-restore --test < /root/before.rules.bak
echo "exit: 0"
Bu tekshiruvdan o'tish hujjat tahlil qilinishini isbotlaydi, boshqa hech narsani emas. U nomzodda UFW bog'liq bo'lgan har bir zanjir hali ham borligini, faqat siz mo'ljallagan manbalarga ruxsat berishini yoki masofaviy boshqaruv ochiq qolishini isbotlamaydi. Bular alohida ko'rib chiqishlar va oxirgisi boshlashdan oldin ochiladigan ikkinchi sessiyaga loyiq.
O'rnatilgan backend va manzillar oilasiga mos vositani tanlang. nft backend ni moslik qatlami orqali ishga tushiruvchi xost tegishli buyruqqa muhtoj, IPv6 qoidalari esa butunlay boshqa faylda yashaydi.
Yo'naltirish, NAT va kirish siyosatini alohida saqlang
Manba tarjimasi manzillash muammosini hal qiladi va hech narsa bermaydi. Yo'naltirish sysctl va filtr jadvali tomonidan boshqariladigan alohida ruxsatdir va odamlar tunnel marshrutlayotganda, lekin trafik o'tkazmayotganda aynan shuni unutishadi. Kirish siyosati qaysi manbalar qaysi xizmatlarga yeta olishi haqidagi uchinchi qaror va hech bir NAT qoidasi uni ifodalamaydi. Aynan shu uchtasini alohida saqlash nosozlikni bitta noaniq belgi o'rniga tashxislash mumkin bo'lgan holga keltiradi.
sysctl net.ipv4.ip_forward
sudo iptables -t nat -S POSTROUTING
sudo iptables -S FORWARD
Bu uchta chiqishni birma-bir emas, birga o'qing. Yo'naltirish o'chirilgan masquerade qoidasi ulanadigan, lekin hech qayerga yetmaydigan mijoz yaratadi, bu mijoz tomondan xuddi marshrutlash nosozligidek ko'rinadi va odamlarni noto'g'ri faylga yuboradi. Filtr jadvali ham juda keng accept yashirinadigan joy, shuning uchun u yerda bo'lganingizda uning standart siyosatini ham tekshiring.
Qayta yuklash, rad etish va VPN yo'qotishini tasdiqlang
Uch kuzatuv to'liq qabul sinovini tashkil qiladi: qayta yuklash muvaffaqiyatli, ruxsat etilgan mijoz operatsiyasi ishlaydi va rad etilishi kerak bo'lgan so'rov haqiqatan rad etiladi. Uchinchisi o'tkazib yuboriladigan kuzatuvdir va siyosat biror narsa qilayotganining yagona isboti shudir.
sudo ufw reload
sudo ufw status verbose
sudo iptables -t nat -L POSTROUTING -n -v
Keyin siz loyihalagan nosozlikni sinab ko'ring. Tunnelni tushiring va xost nima qilishini kuzating, chunki faqat VPN yoniq turganda ishlaydigan siyosat aytilmagan bog'liqlikka ega siyosatdir. Shundan keyin yana bir marta qayta yuklang, ishlaydigan natijani qoldiq ishlash holati emas, fayl berishini isbotlash uchun.
IPv4 NAT IPv6 haqida hech narsa aytmaydi, shuning uchun qoida bilan bir xil eslatmada ikkala oila uchun mo'ljallangan qamrovni ko'rsating. Maqsad izchil boshqariladigan siyosat va tasodifan tahlil qilingan bo'lak uning isboti emas.