DNS bilan oziqlanadigan nftables to'plamidan WireGuard'gacha: uzatish qanday ishlaydi
DNS javobi nftables to'plamini oziqlantirishi mumkin, lekin to'plam hech narsani marshrutlamaydi. Yo'naltirish ishlashini hal qiladigan to'rt uzatish va uch umrni kuzatib boring.
Nomlar manzillarga hal qilinadi va bu manzillar keyinchalik marshrutlashga ta'sir qiladigan xavfsizlik devori to'plamiga tushishi mumkin, bu esa proksisiz nomga asoslangan yo'naltirishni imkon qiladi. Muammo shundaki, to'rt komponent to'g'ri uzatishi kerak: hal qiluvchi, to'plam, yangi oqimni belgilovchi klassifikator va uni olib yuruvchi juft. Har bir uzatish boshqacha muvaffaqiyatsiz bo'ladi va har biri o'z vaqtini saqlaydi.
Dizaynni konfiguratsiya emas, zanjir deb qarang. Har bir qadamdagi savol: qaysi komponent qarorga ega va uning kirishi bo'lmasa nima bo'ladi.
DNS javobi nima qila oladi va nima qila olmaydi
dnsmasq javoblardan manzillarni nftables to'plamiga ko'chirishi mumkin, bu oziqlantirish, marshrutlash qarori emas. Bu parametr, dnsmasq qo'llanmasida bayon etilgan, oila, jadval va to'plamni ko'rsatadi, uning boshidagi 4# faqat A yozuvlarini tanlaydi, shu sababli v6 manzillari o'z tartibini talab qiladi. To'plam allaqachon mavjud bo'lishi kerak, chunki hal qiluvchi xavfsizlik devori egasi yaratgan narsaga elementlar qo'shadi. Bu qadamda hech narsa interfeys, jadval yoki juft tanlamaydi.
Mijoz ham nom uchun shu hal qiluvchini ishlatishi kerak. O'zining shifrlangan DNS'iga ega dastur yoki siyosat paydo bo'lishidan oldingi keshlangan javob to'plamda birorta yozuv yaratmasdan ulanadi.
To'plam kirish, marshrut emas
To'plamdagi element moslik sharti. Kimdir unga qarab, bu paket yangi oqimni boshlaydi deb qaror qilib, oqimni tunnel orqali yuboradigan siyosatni qo'llashi kerak. Linux'da bu odatda belgi qo'ya oladigan marshrutlashga qodir chiqish yo'li, belgilangan paketlarni alohida jadvalga yuboradigan qoida va o'sha jadvalda WireGuard qurilmasiga ishora qiluvchi marshrutni anglatadi. Faqat a'zolik bularning hech birini o'rnatmaydi.
nft add set inet vpn_select office_v4 { type ipv4_addr\; }
ip rule add fwmark 0x40 table 200
ip route add default dev wg0 table 200
wg show wg0 allowed-ips
Juft odamlar unutadigan ikkinchi qamrov tekshiruvini qo'llaydi. WireGuard paketni faqat ruxsat etilgan manzillari manzilni o'z ichiga olgan juftga shifrlaydi, shuning uchun juft ro'yxati bu prefiksni chiqarib tashlasa, interfeysga siyosat marshruti yetarli emas. Ro'yxatni menejer tasodifan yaratadigan marshrutga tayanmasdan marshrutlash egasi nazoratida saqlang.
Belgilar, jadvallar va juft qamrovi
Belgilar umumiy nom maydoni, shuning uchun ham qiymat, ham niqob ularni ishlatadigan boshqa hamma narsa bilan kelishilishi kerak. Belgilangan trafikni alohida jadvalga yuboradigan qoida, bu jadvalda mos marshrut bo'lmasa, aniq natijaga muhtoj, chunki javobsiz qidiruv keyingi qoidaga o'tib, paketni jismoniy interfeysdan chiqarib yuborishi mumkin. Alohida jadval ichidagi blackhole standart marshruti o'sha jim qochishni ko'rinadigan tashlashga aylantiradi. Dizayn hali ham qila olmaydigan narsa — to'plamga hech qachon kirmagan manzil uchun xato paytida yopilish.
Tunnelning o'z tashqi paketlari klassifikatordan qochishi kerak. WireGuard asboblari aynan shu maqsad uchun soket belgisini beradi va undan foydalanish inkapsulyatsiyaning o'zi qurayotgan interfeysga qayta marshrutlanishini oldini oladi.
Har bir umrni alohida sinab ko'ring
Uch ombor uchta jadval bo'yicha eskiradi: hal qiluvchi keshi, to'plam elementlari va kuzatilayotgan ulanish. Ularni shu tartibda sinab ko'ring va har biri kerak bo'lganda harakatlanadimi, qarang. Quyidagi buyruqlar hech narsani o'zgartirmasdan hal qiluvchini, to'plamni, ulanish jadvalini va siyosat qoidalarini o'qiydi.
dig +short office.example
nft list set inet vpn_select office_v4
conntrack -L -d 10.60.8.15
ip rule show
Element qo'shadigan yangi qidiruv oziqlantirish ishlashini isbotlaydi, o'z javobidan uzoq yashaydigan eski element esa yozib qo'yishga arziydigan umr nomuvofiqligi. Ulanish jadvalida kutilgan belgi bilan yangi ulanish paydo bo'lishi klassifikator ishlaganini ko'rsatadi, eski ulanishning o'z boshlang'ich belgisini saqlashi esa xato emas, to'g'ri xatti-harakat. Qoidalar ro'yxati siyosat qidiruvi umuman mavjudmi degan savolga javob beradi, bu uning mos kelgani haqidagi savoldan boshqa. To'rt chiqishni shu tartibda o'qing va muvaffaqiyatsiz uzatish o'zini ko'rsatadi.
Muayyan nom doim bitta yo'lni ishlatishi talab qilinsa, DNS bilan oziqlanadigan to'plam buni isbotlay olmaydi, chunki umumiy manzillar boshqa nomlarni ham olib yuradi. Proksi yoki dastur darajasidagi mexanizm — bu kafolatning asbobi.