Hubdagi WireGuard tengdosh guruhlari: manba egaligi va siyosat
Har bir tengdosh uchun tor manba manzillari va yo'naltirish siyosati bilan tengdosh guruhlarini alohida saqlang, har bir guruh uchun alohida tunnel interfeysisiz.
WireGuard ishlayotgan hub har bir guruh uchun alohida interfeys yoki marshrutlash jadvalisiz tengdosh guruhlarini alohida saqlashi mumkin. Bu ishni ikki mexanizm bajaradi va ularni aralashtirish siyosat to'g'ri ko'rinib, hech narsa qilmasligining odatiy sababidir. Bir qatlam qaysi manba manzilini kim talab qilishi mumkinligini hal qiladi. Ikkinchisi bu paketning qayerga ketishiga ruxsat berilganini hal qiladi.
Ikki vazifa, alohida saqlanadi
Tunnel qatlami tor savolga javob beradi: bu tengdoshning kaliti bu ichki manba manzilini ruxsat berdimi. Yo'naltirish qatlami kengroq savolga javob beradi: bu paket o'sha manzil tomon chiqa oladimi. Hech biri boshqasining savoliga javob bermaydi va hech biri yolg'iz to'liq kirish siyosati emas.
Aynan shu bo'linish tufayli tengdosh autentifikatsiyadan o'tgan va manzili to'g'ri bo'lsa ham, bormasligi kerak bo'lgan hostga yetib bora olmaydi. Bu aksini ham tushuntiradi: hamma narsaga ruxsat beradigan xavfsizlik devori qoidasi kim qaysi manzilni talab qilishi mumkinligi haqida hech narsani isbotlamaydi.
Ikki qatlamni birgalikda loyihalang, keyin ikkalasini ham sinab ko'ring. Bir qatlamda to'g'ri, boshqasida sinalmagan konfiguratsiya standart qiymatga qarab ochiq yoki yopiq holda muvaffaqiyatsizlikka uchraydi.
Har bir tengdoshga faqat o'z manzilini bering
Ko'p hostli tengdoshlar sizni server tomonida butun guruh oralig'ini berishga undaydi. Bu ruxsat manba manzilini talab qilishdir, shuning uchun buzilgan yoki noto'g'ri sozlangan mijoz oraliqdagi istalgan manzilni taqdim etishi mumkin va tunnel uni qabul qiladi. Har bir tengdoshga o'zining ichki manzili uchun /32 ajrating. Guruh oraliqlarini faqat mijozlarda belgilang, u yerda ular bu mijoz qaysi manzillarga yetib borishi mumkinligini tavsiflaydi, qaysi manbalardan foydalanishi mumkinligini emas.
Keyin xavfsizlik devori ishonsa bo'ladigan manba bilan moslashtiradi. Guruh oralig'i uchun yozilgan qoida hali ham foydali guruhlash bo'lib qoladi va u faqat hech bir alohida tengdosh boshqa a'zoga tegishli manzilni talab qila olmaganida mazmunli bo'ladi.
Guruhlarni ajratadigan yo'naltirish siyosatini yozing
Bu yerdagi qiziqarli trafik bir xil tunnel interfeysidan kiradi va chiqadi, shuning uchun u hostning kirish yo'lini emas, yo'naltirish yo'lini kesib o'tadi. Qoidalar hostga ega bo'lgan qaysi xavfsizlik devori menejerining mavjud yo'naltirish zanjiriga tegishli va ular to'liq qoidalar to'plami emas, bo'laklardir.
iifname "wg0" oifname "wg0" ip saddr 10.66.10.0/24 ip daddr 10.66.10.0/24 accept iifname "wg0" oifname "wg0" ip saddr 10.66.20.0/24 ip daddr 10.66.20.0/24 accept iifname "wg0" oifname "wg0" drop
Birinchi ikki qoida har bir guruh ichidagi trafikka ruxsat beradi. Oxirgisi o'sha interfeysdan o'tadigan qolgan hamma narsani bloklaydi va aynan shu guruhlar orasidagi izolyatsiyani yaratadi. Agar kerak bo'lsa, boshqa manzil oilasi uchun aniq qoidalar qo'shing, chunki IPv4 uchun yozilgan drop IPv6 xatti-harakatini na ruxsatlaydi, na tavsiflaydi.
Tartib siyosat qo'llanilishini hal qiladi
Qoidalar tartibi bo'lakning o'zidan muhimroq. O'rnatilgan ulanishlarni qabul qiladigan umumiy qoida shu yozuvlardan oldin turgan bo'lsa, eski guruhlararo oqim davom etadi, shuning uchun izolyatsiya faqat yangi ulanishlarga taalluqli bo'ladi. Qayta yuklashdan oldin bu ikki natijadan qaysi birini xohlayotganingizni hal qiling.
Qabul qarori ham bir ilgakdagi zanjirlar orasida har doim yakuniy bo'lavermaydi. Agar boshqa asosiy zanjir keyinroq ishlasa, samarali siyosat bu kombinatsiya bo'ladi, shuning uchun siz tahrir qilgan faylni emas, hisoblagichlarni ko'ring. Hisoblagichlar mavjud bo'lgan eng arzon dalildir. Paketlar soni yo'q qoida mos kelmaydi, mos keladigan qoida esa keyingi zanjir qabul qilayotganda drop noto'g'ri joyda ekanini aytadi.
Fayllar sonini emas, matritsani sinab ko'ring
Kutilgan natijalarning kichik matritsasini tuzing va har bir katakni tekshiring. A guruhidan A guruhiga ishlashi kerak, B guruhidan B guruhiga ishlashi kerak, A dan B ga esa ishlamasligi kerak, ikki yo'nalishda ham va qo'llab-quvvatlasangiz ikki manzil oilasi uchun ham.
nft list ruleset wg show wg0 allowed-ips ping -c 2 10.66.10.5 conntrack -L -s 10.66.20.7 2>/dev/null | head
Birinchi ikkitasi nima sozlanganini ko'rsatadi. Noto'g'ri guruh a'zosidan ping aslida nima bo'layotganini ko'rsatadi. conntrack ro'yxati eski oqim hali ham qabul qilinayotganini ko'rsatadi va izolyatsiya o'zgarishining jimgina kuchga kirmasligi aynan shunday bo'ladi.
Hubdagi host xizmatlari va uning orqasidagi LAN ga kirish alohida siyosatli alohida yo'llardir. Matritsa ulardan qaysilarini qamrab olishini yozib qo'ying, chunki faqat tengdosh-tengdosh trafigini tekshiradigan sinov ularning hech biri haqida hech narsa demaydi.