Хаб дээрх WireGuard хосын бүлгүүд: эх сурвалжийн эзэмшил ба бодлого
Хос бүрт нарийн эх сурвалжийн хаяг болон дамжуулах бодлоготойгоор хосын бүлгүүдийг тусгаарлаж байгаарай, бүлэг бүрт тусдаа туннелийн интерфейсгүйгээр.
WireGuard ажиллуулж буй хаб нь бүлэг бүрт тусдаа интерфейс эсвэл чиглүүлэлтийн хүснэгтгүйгээр хосын бүлгүүдийг тусгаарлаж чадна. Энэ ажлыг хоёр механизм гүйцэтгэдэг бөгөөд тэдгээрийг андуурах нь бодлого зөв харагдаж байгаа ч юу ч хийдэггүйн нийтлэг шалтгаан юм. Нэг давхарга хэн эх сурвалжийн хаяг шаардаж болохыг шийднэ. Нөгөө нь тухайн пакет хаашаа явж болохыг шийднэ.
Хоёр ажил, тусдаа баригдсан
Туннелийн давхарга нарийн асуултад хариулна: энэ хосын түлхүүр энэ дотоод эх сурвалжийн хаягийг зөвшөөрсөн үү. Дамжуулах давхарга илүү өргөн асуултад хариулна: энэ пакет тэр очих газар руу гарч болох уу. Аль нь ч нөгөөгийнхөө асуултад хариулахгүй бөгөөд аль нь ч дангаараа бүрэн хандалтын бодлого болохгүй.
Энэ хуваагдал нь хос баталгаажсан, хаяг нь зөв байсан ч очих ёсгүй хост руу хүрч чадахгүй байх шалтгаан юм. Мөн эсрэг тохиолдлыг тайлбарлана: бүгдийг зөвшөөрдөг галт ханын дүрэм хэн ямар хаяг шаардаж болох тухай юу ч батлахгүй.
Хоёр давхаргыг хамт зохион бүтээж, дараа нь хоёуланг нь шалгана уу. Нэг давхаргад зөв, нөгөөд нь шалгагдаагүй тохиргоо нь өгөгдмөл утгаас хамаарч нээлттэй эсвэл хаалттай байдлаар бүтэлгүйтнэ.
Хос бүрт зөвхөн өөрийнх нь хаягийг өгнө үү
Олон хосттой хосууд таныг серверийн талд бүх бүлгийн хүрээг өгөхөд уруу татдаг. Тэр зөвшөөрөл нь эх сурвалжийн хаягийн шаардлага тул эвдэрсэн эсвэл буруу тохируулсан клиент хүрээн дэх дурын хаягийг танилцуулж чадна, туннель үүнийг хүлээн авна. Хос бүрт өөрийнх нь дотоод хаягт /32 онооно уу. Бүлгийн хүрээг зөвхөн клиентүүд дээр тогтооно уу, тэнд тэдгээр нь тэр клиент аль очих газарт хүрч болохыг тодорхойлдог, аль эх сурвалжийг ашиглаж болохыг биш.
Дараа нь галт хана итгэж болох эх сурвалжтай тааруулна. Бүлгийн хүрээнд зориулж бичсэн дүрэм нь ашигтай бүлэглэл хэвээр байх бөгөөд нэг ч хос өөр гишүүнд хамаарах хаягийг шаардаж чадахгүй үед л утга учиртай болно.
Бүлгүүдийг тусгаарлах дамжуулах бодлогыг бичнэ үү
Энд сонирхолтой урсгал ижил туннелийн интерфейсээр орж гардаг тул хостны орох замаар биш, дамжуулах замаар дамждаг. Дүрмүүд нь хост эзэмшдэг ямар ч галт ханын менежерийн одоо байгаа дамжуулах гинжид хамаарах бөгөөд тэдгээр нь бүрэн дүрмийн багц биш, хэсгүүд юм.
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
Эхний хоёр дүрэм бүлэг бүрийн доторх урсгалыг зөвшөөрнө. Сүүлийнх нь тэр интерфейсээр дамжих бусад бүхнийг блоклох бөгөөд бүлгүүдийн хоорондын тусгаарлалтыг яг үүнээр үүсгэдэг. Хэрэв шаардлагатай бол нөгөө хаягийн гэр бүлд тодорхой дүрэм нэмнэ үү, учир нь IPv4-д зориулж бичсэн drop нь IPv6-ийн зан төлөвийг зөвшөөрөхгүй, тайлбарлахгүй.
Дараалал нь бодлого хэрэгжих эсэхийг шийднэ
Дүрмийн дараалал нь хэсгээс илүү чухал. Тогтсон холболтыг хүлээн авдаг ерөнхий дүрэм эдгээр бичлэгийн өмнө байвал хуучин бүлэг хоорондын урсгал үргэлжилнэ, тиймээс тусгаарлалт зөвхөн шинэ холболтод хамаарна. Дахин ачаалахын өмнө эдгээр хоёр үр дүнгийн алийг нь хүсэхээ шийднэ үү.
Хүлээн авах шийдвэр нь мөн ижил дэгээ дээрх гинжүүдийн хооронд үргэлж эцсийн байдаггүй. Хэрэв өөр суурь гинж дараа ажиллавал үр дүнтэй бодлого нь хослол тул таны засварласан файлыг биш, тоолууруудыг шалгана уу. Тоолуурууд нь боломжтой хамгийн хямд нотолгоо юм. Пакетын тоо байхгүй дүрэм тохирохгүй, тохирч байгаа дүрэм дараагийн гинж хүлээн авч байхад drop буруу газар байгааг хэлнэ.
Файлын тоог биш, матрицыг шалгана уу
Хүлээгдэж буй үр дүнгийн жижиг матриц байгуулж, нүд бүрийг шалгана уу. А бүлгээс А бүлэг рүү ажиллах ёстой, В бүлгээс В бүлэг рүү ажиллах ёстой, А-аас В рүү ажиллах ёсгүй, хоёр чиглэлд болон та дэмждэг бол хоёр хаягийн гэр бүлд.
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
Эхний хоёр нь юу тохируулагдсаныг харуулна. Буруу бүлгийн гишүүнээс ping нь бодит байдал дээр юу болж байгааг харуулна. conntrack жагсаалт нь хуучин урсгал хараахан хүлээн авагдаж байгаа эсэхийг харуул бөгөөд тусгаарлалтын өөрчлөлт чимээгүйгээр хүчин төгөлдөр болохгүй байх нь яг ийм байдаг.
Хаб дээрх хост үйлчилгээнүүд болон түүний ардах LAN-д хандах нь тусдаа бодлоготой тусдаа замууд юм. Матриц тэдгээрийн алийг нь хамарч байгааг тэмдэглээрэй, учир нь зөвхөн хос хоорондын урсгалыг шалгадаг туршилт тэдгээрийн аль нэгнийх нь талаар юу ч хэлэхгүй.