Siz qoidani o'zgartirdingiz, qoidalar to'plamini qayta yukladingiz, ammo tunnel xuddi avvalgidek harakat qilmoqda. Bu natijaning ikkita keng tarqalgan sababi bor va ular turli sinovlarni talab qiladi. Yoki yangi qoida paketni allaqachon qabul qilgan avvalgi qoidadan keyin turadi, yoki siz kuzatayotgan almashinuv o'zgarish hech qachon qayta baholamaydigan kuzatilgan ulanishdir. Fayldagi qoida niyatni ifodalaydi; paket taqdirini u duch keladigan faol yo'l hal qiladi. Quyidagi tekshiruvlarni tartib bilan bajaring va shu vaqtda qaytish yo'lini ochiq tuting.

Qoidalar tartibi va ulanish holati turli nosozliklardir

Tartiblangan zanjirlar yuqoridan pastga baholanadi va yakuniy hukmga yetgan birinchi qoida shu zanjirdagi yurishni tugatadi. Yaxshilab yozilgan qulflash qoidasi ustiga keng ruxsat qo'ying, shunda qulflash qoidasi faqat hujjatga aylanadi: u to'plamda bor, hisoblagichi nolga teng va hech bir paket unga hech qachon yetib bormaydi. Xuddi shu matnni boshqa zanjirga qo'llash ham hech narsani isbotlamaydi. nftables da asosiy zanjirlar ustuvorliklar bo'yicha ilgaklarga ulanadi, shuning uchun bir zanjirdagi ruxsat boshqa ilgak yoki ustuvorlikdagi boshqa zanjirning o'sha paketni ko'rishiga to'sqinlik qilmaydi.

Ulanishlarni kuzatish ikkinchi alomatni keltirib chiqaradi va tashqaridan u aynan bir xil ko'rinadi. Oqim holatlar jadvaliga tushgach, zanjir cho'qqisiga yaqin established-or-related ruxsati sizning yangi qoidangiz ko'rib chiqilishidan oldin qaytadi. NAT xaritalashlari ham xuddi shu xususiyatga ega: tarjima oqim boshlanganda qotib qolgan, shuning uchun o'zgartirilgan postrouting qoidasi allaqachon ishlab turgan sessiyani qayta yozmaydi. Shuning uchun o'zgarish 09:00 da yangi ulanish uchun ishlayotgandek, 08:55 da kimdir ochgan sessiya uchun esa hech narsa qilmayotgandek ko'rinadi.

Bulut xavfsizlik guruhlari iptables da o'rganganlarni ushlaydigan uchinchi modelni qo'shadi. Ularning kiruvchi qoidalari birinchi moslik bo'yicha yurish emas, to'plam sifatida baholanadigan ruxsatlar ro'yxati, ular holatli ishlaydi va ruxsat qoidasini olib tashlash allaqachon kuzatilayotgan oqimlarni to'xtatmaydi. Bunday semantika yo'q platformada birinchi moslik semantikasini taxmin qilish ishonchli, ammo noto'g'ri xulosalarga olib keladi.

Faol qoidalar to'plamini o'qing, o'zgartirgan faylni emas

Yadro hozir qo'llayotgan narsadan boshlang. Hech qachon qo'llanilmagan saqlangan konfiguratsiya hayratlanarli darajada ko'p o'zgarmagan xatti-harakatlarni tushuntiradi va uni istisno qilish bitta buyruqqa tushadi:

nft list ruleset
iptables-save

Keyin qoidangizga umuman yetib boriladimi, deb so'rang. Paket hisoblagichlari bunga bevosita javob beradi va niyat haqidagi har qanday mulohazadan yaxshiroq javob beradi:

iptables -L FORWARD -v -n --line-numbers
nft list chain inet filter forward

Haqiqiy sinov urinishidan keyin nol paketli qulflash qoidasi siyosat muammosi emas, bu joylashuv muammosi. Uni ko'chirish bir satrlik o'zgarish, sintaksis esa aynan dastlabki xatoga sabab bo'lgan narsa. iptables da -I boshiga qo'yadi, -A oxiriga qo'shadi; nftables da insert qoidani zanjir boshiga joylashtiradi, add esa oxiriga qo'shadi. Qoida g'alaba qozonishi kerak bo'lsa, tasodifan yuklangan tartibga ishonish o'rniga buni aniq ayting.

Oqim kuzatilayotganini isbotlang

Qoidani ayblashdan oldin trafik umuman kuzatilgan ulanishmi, tekshiring. Butun holatlar jadvalini to'kish o'rniga aniq oqim haqida so'rang:

conntrack -L -p tcp --dport 1194
conntrack -E -p tcp --dport 1194

Ro'yxat holat va qolgan vaqt chegarasini ko'rsatadi, va shu bilan o'rnatilgan sessiyani yangi urinishdan ajratasiz; hodisalar rejimi yangilanishlarni sodir bo'lishi bilan chop etadi, bu esa mijozni qayta ulashda foydali. Agar oqim siz biror narsaga tegishdan oldin o'rnatilgan holatda mavjud bo'lsa, filtr qoidalarining hech bir tahriri uning taqdirini o'zgartirmaydi. Bu firewall dagi xato emas, bu holatli filtrlashning shartnomasi.

Ishlab chiqarish darvozasida butun jadvalni tozalash yengil yo'liga qarshi turing. conntrack -F mavjud va u mashinadagi har bir kuzatilgan oqimni ham yo'q qiladi, siz ishlayotgan boshqaruv sessiyasi va qobig'ingizni olib yuruvchi tunnel bilan birga. Ayrim yozuvlarni chindan kerak bo'lganda o'chirish mumkin, lekin yangi manba portidan yangi oqim odatda tozaroq tajriba.

Ba'zi yo'llar kuzatilmaydi va ular teskari harakat qiladi. raw jadvalida notrack deb belgilangan trafik, oddiy ilgaklarni chetlab o'tadigan ba'zi tunnellar va oqimni ikki darvoza o'rtasida bo'ladigan assimetrik marshrutlash — barchasi birma-bir baholanadigan paketlarni yoki ikki uchida hech qachon yaratilmaydigan holatni keltirib chiqaradi. Hisoblagichlar har bir paketda qimirlasa, tartibdan shubhalanishdan oldin shunday yo'ldan shubhalaning.

Qaytish yo'li bilan yangi oqimdan sinab ko'ring

Masofaviy kirishni uzib qo'yishi mumkin bo'lgan qoidani sinashdan oldin tiklanish yo'lini yarating: provayder konsoli, ketma-ket konsol, tarmoqdan tashqari boshqaruv manzili yoki qoida mos kela olmaydigan ikkinchi interfeys. Orqaga qaytarish taymeri o'rinli hamroh, chunki sinov o'rtasida sessiyangiz o'lib qolsa ham u avvalgi qoidalar to'plamini tiklaydi.

Keyin holat allaqachon qoplay olmagan almashinuv bilan sinang. Mijozni uzing va qayta ulang, yangi beshlik paydo bo'lsin, va bu sodir bo'layotganda ikki uchni ham kuzating:

tcpdump -ni eth0 'tcp port 1194'
journalctl -k -n 50 --no-pager

Sinovni ikki yo'nalishda ham o'tkazing. Yangi kiruvchi qo'l berishni to'sadigan qoida javob yo'liga hali ham ruxsat berishi mumkin yoki aksincha, va bir tomonlama natija qulfning yarim ishlashining odatiy sababidir. Sinovdan keyin barqaror holatni tasdiqlash uchun yana bir marta ulaning va qonuniy boshqaruv kirishi saqlanib qolganini tekshiring; bitta port uchun yozilgan qoida mo'ljaldagidan kengroq diapazonga mos kelish odatiga ega.

Maqsad va joylashuvni qoida bilan birga yozib qo'ying

Yozilgan maqsadi bo'lmagan qoida — hech kim olib tashlashga jur'at qilmaydigan qoida. Har bir qulflash yozuvi yonida u himoya qiladigan oqimni, u yashaydigan zanjir va ilgakni, kengroq ruxsatlarga nisbatan egallashi kerak bo'lgan joylashuvni va buni isbotlagan sinovni saqlang. Olti oydan keyin kimdir atrofdagi qoidalar to'plamini o'zgartirsa, o'sha eslatma joylashuv ataylab tanlangani haqidagi yagona ogohlantirish bo'lib qoladi.

O'zgarishni yopishdan oldin to'rtta narsani tasdiqlang: ishlab turgan qoidalar to'plami faylga mos keladi, yangi qoidaning yangi urinishdan keyin nolga teng bo'lmagan hisoblagichlari bor, teskari yo'nalish va boshqaruv kirishi hali ham ishlaydi, va siz o'zgarishdan oldingi sessiya holatini emas, barqaror holatni isbotlash uchun bir marta qayta ulandingiz. Bulardan birortasi tekshirilmagan bo'lsa, tunnel nima qilsa ham, o'zgarish tugamagan.

O'xshash maqolalar