nftables: VPN ruxsat qoidasini drop dastagidan oldin kiriting
nftables ichida insert va add qoidani dastagining qarama-qarshi tomonlariga qo'yadi. Dropni toping, tomonni tanlang, so'ng qoidalar to'plami o'zgarmasdan oldin faylni tekshiring.
Ruxsat qoidasini noto'g'ri joyga qo'ysangiz, u qoida umuman yo'qdek ishlaydi. nftables ichida insert va add o'rtasidagi tanlov yangi bayonot havola qilingan qoidaning qaysi tomoniga tushishini belgilaydi, dastagi esa qoidani tirik qoidalar to'plamida nomlaydi, uning qator raqamini emas. Joylashuv noto'g'ri bo'lsa, paket birinchi dropga yetadi.
Quyidagi taqqoslash bitta qat'iy hamkor va bitta tashqi tinglovchi almashinuvidan foydalanadi. U ataylab tor; butun zanjirni almashtirish boshqa xavf profiliga ega boshqa o'zgarish.
Ikki joylashuv, ikki xil natija
insert qoidani havola qilingan qoidadan oldin qo'yadi. add uni keyin qo'yadi. Agar havola qilingan qoida oqim uchun yakuniy drop bo'lsa, qoida matni bir xil bo'lsa ham bu ikki buyruq qarama-qarshi natija beradi.
Joyni tashlab ketishning o'z standart xatti-harakati bor, bu esa buyruqni nimaga bog'langanini o'qimasdan forumdan ko'chirmaslik uchun yana bir sabab. Bog'lanish butun qaror. Buyruqni yozishdan oldin mo'ljallangan tomonni yozib qo'ying. Faylda insert va add bir so'z bilan farq qiladi.
Joylashuv muayyan zanjirdagi qoidaga nisbatan. Xuddi shu bayonotni boshqa zanjirga yoki boshqa hook ustuvorligiga ko'chirish qoida sintaksisi to'g'ri ko'rinsa ham qaysi paketlarni ko'rishini o'zgartiradi.
Dastagi qoidani aniqlaydi, qator raqamini emas
42 kabi dastagi qoidalar to'plamining joriy holatidagi identifikator. Bu qirq ikkinchi qoida emas va u xostlar, qayta qurishlar yoki konfiguratsiyasini qayta yuklaydigan menejer orasida barqaror emas.
Bog'lanishni tanlashdan oldin zanjirni va haqiqiy yakuniy dropni toping. So'ng dropni ko'rsatadigan o'sha ro'yxatda o'sha qoidadagi dastagini tasdiqlang, raqam va qoida birga o'qilsin. Eski ro'yxatdan o'qilgan dastagi allaqachon boshqa qoidaga tegishli bo'lishi mumkin. Uni o'zgarishni qo'llaydigan sessiyada qayta o'qing.
iptables --version
nft -a list ruleset
iptables versiyasi qaysi backend ishlatilayotganini bildiradi. iptables-nft qoidalar to'plami va mustaqil boshqariladigan mahalliy jadval birga mavjud bo'lishi mumkin, shuning uchun bitta frontend ro'yxati avtomatik ravishda to'liq filtrlash tasviri emas. Zanjir tanlashdan oldin ikkala ko'rinishni tekshiring.
Haqiqatan drop qiladigan zanjir va qoidani toping
input hook, zanjir ustuvorligi va bu tinglovchi oqimini rad etadigan qoidani o'qing. inet jadvali ikkala manzil oilasini ham olib yurishi mumkin, lekin alohida qoida hali ham faqat IPv4 ga mos kelishi mumkin.
Bitta tasdiqlangan hamkorni oling, misol sifatida hujjat diapazonidan 198.51.100.25 dan foydalaning. Ko'rib chiqilgan mahalliy fayl 42 dastagidan oldin tashqi ruxsat qo'yishi mumkin:
insert rule inet filter input handle 42 iifname "eth0" ip saddr 198.51.100.25 udp dport { 500, 4500 } counter accept
Tekshiruvdan keyin oila, jadval, zanjir, dastagi, kirish interfeysi va hamkorni almashtiring. Misol nft 1.0.9 uchun hujjatlashtirilgan dastagi-joylashuv shaklidan foydalanadi va u kiritish fayliga tegishli; buyruq interaktiv yozilganda jingalak qavslarni qo'shtirnoq qilish alohida masala.
Konfiguratsiya egasini aniq tuting. Qoidalarini qayta quradigan menejer ishlash vaqtidagi tahrirni ustidan yozishi mumkin, eskirgan dastagini qattiq kodlaydigan yuklash skripti esa yo muvaffaqiyatsiz bo'ladi, yo noto'g'ri qoidaga ulanadi.
Ruxsat cheklangan, drop yakuniy
Ruxsat hukmi baholashni o'zining joriy yo'lida tugatadi, lekin keyinroq qo'llaniladigan bazaviy zanjir paketni baribir drop qilishi mumkin. Drop hukmi yakuniy. Shuning uchun o'sib borayotgan ruxsat hisoblagichi oqim muvaffaqiyatli bo'lganining isboti emas.
Bitta zanjirni alohida tekshirish o'rniga barcha tegishli hook ustuvorliklarini tekshiring. Paket input filtrdan o'tib, boshqa jadval hooki tomonidan boshqa ustuvorlikda rad etilishi mumkin. Oqimni ko'ra oladigan har bir bazaviy zanjirni sanab o'ting.
Bu qoida faqat tashqi tinglovchi almashinuvini qamrab oladi. Transport bilan inkapsulyatsiyalangan ESP, mahalliy ESP, IPv6 hamkorlari va tunnel ichidagi shifri ochilgan trafik — barchasiga o'z siyosati kerak. Bu sayt VPN ning to'liq tarmoq devori emas.
Faylni tekshiring, so'ng tirik natijani tasdiqlang
Qo'llashdan oldin ko'rib chiqilgan faylda sintaksis va tranzaksiya tekshiruvini ishga tushiring. Tekshiruv rejimi nft o'zgarishni tahlil qilib tayyorlay olishini bildiradi; u o'zgarishni qo'llamaydi va boshqa hook paketga ruxsat berishini isbotlamaydi. Fayl egasi qo'llamaguncha taklif bo'lib qoladi:
nft -c -f reviewed-vpn-rule.nft
Egasining nazorat qilinadigan jarayoni orqali qo'llang va tiklash kirishini saqlang. Qoida noto'g'ri bo'lsa, oldiga o'tmoqchi bo'lgan drop uni tuzatish uchun ishlatadigan yo'lni ham kesib qo'yishi mumkin.
O'zgarishdan keyin ruxsat berilgan hamkorning yangi urinishini kuzating va tasdiqlangan hamkordan tashqaridagi manbalar hali ham rad etilayotganini tekshiring. Doimiy qoidani qoidalar to'plamiga ega menejerga ko'chiring, chunki ishlash vaqtidagi dastagilar joriy obyektlarni topadi, ularni yuklashlar orasida aniqlamaydi.