Grupet e kolegëve WireGuard në hub: pronësia e burimit plus politika
Mbani grupet e kolegëve të ndara me adresa burimi të ngushta për çdo koleg dhe një politikë përcjelljeje, pa një ndërfaqe tuneli të veçantë për çdo grup.
Një hub që ekzekuton WireGuard mund t'i mbajë grupet e kolegëve të ndara pa një ndërfaqe ose tabelë rrugëzimi të veçantë për çdo grup. Dy mekanizma e bëjnë punën, dhe përzierja e tyre është arsyeja e zakonshme që një politikë duket e saktë dhe nuk bën asgjë. Një shtresë vendos kush mund të kërkojë një adresë burimi. Tjetra vendos ku lejohet të shkojë ai paketë.
Dy punë, të mbajtura ndara
Shtresa e tunelit përgjigjet një pyetjeje të ngushtë: a e autorizoi çelësi i këtij kolegu këtë adresë burimi të brendshme. Shtresa e përcjelljes përgjigjet një pyetjeje më të gjerë: a mundet ky paketë të dalë drejt atij destinacioni. Asnjëra nuk përgjigjet pyetjes së tjetrës, dhe asnjëra nuk është vetëm një politikë e plotë aksesi.
Ky ndarje është arsyeja pse një koleg mund të jetë i vërtetuar, i adresuar saktë dhe megjithatë të mos arrijë një host ku nuk duhet të arrijë. Shpjegon edhe të kundërtën: një rregull muri zjarri që lejon gjithçka nuk provon asgjë për atë se kush mund të kërkojë cilën adresë.
Projektoni të dyja shtresat bashkë, pastaj provoni të dyja. Një konfigurim i saktë në njërën shtresë dhe i paprovuar në tjetrën dështon hapur ose mbyllur sipas vlerës së parazgjedhur.
Jepini çdo kolegu vetëm adresën e vet
Kolegët me shumë hoste ju tundojnë të jepni në anën e serverit të gjithë gamën e grupit. Ai leje është një kërkesë për adresë burimi, ndaj një klient i komprometuar ose i konfiguruar gabimisht mund të paraqesë çdo adresë në gamë dhe tuneli do ta pranojë. Caktoni një /32 për çdo koleg për adresën e vet të brendshme. Vendosni gamat e grupeve vetëm te klientët, ku ato përshkruajnë cilat destinacione mund të arrijë ai klient dhe jo cilat burime mund të përdorë.
Muri i zjarrit pastaj përputh një burim të cilit mund t'i besojë. Një rregull i shkruar për gamën e grupit mbetet një grupim i dobishëm, dhe bëhet kuptimplotë vetëm kur asnjë koleg i vetëm nuk mund të kërkojë një adresë që i përket një anëtari tjetër.
Shkruani politikën e përcjelljes që ndan grupet
Trafiku interesant këtu hyn dhe del përmes të njëjtës ndërfaqe tuneli, pra kalon rrugën e përcjelljes dhe jo rrugën e hyrjes së hostit. Rregullat i përkasin zinxhirit ekzistues të përcjelljes të atij menaxheri muri zjarri që zotëron hostin, dhe ato janë fragmente, jo një grup i plotë rregullash.
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
Dy rregullat e para lejojnë trafikun brenda çdo grupi. E fundit bllokon çdo gjë tjetër që kalon atë ndërfaqe, dhe kjo është ajo që prodhon izolimin midis grupeve. Shtoni rregulla të qarta për familjen tjetër të adresave nëse ju nevojiten, sepse një drop i shkruar për IPv4 nuk autorizon dhe nuk përshkruan sjelljen e IPv6.
Rendi vendos nëse politika zbatohet
Rendi i rregullave ka më shumë rëndësi se vetë fragmenti. Një rregull i përgjithshëm që pranon lidhjet e vendosura dhe është vendosur përpara këtyre hyrjeve lejon që një rrjedhë e vjetër midis grupeve të vazhdojë, ndaj izolimi zbatohet vetëm për lidhjet e reja. Vendosni cilin nga këto dy rezultate dëshironi përpara se të ringarkoni.
Vendimi i pranimit gjithashtu nuk është gjithmonë përfundimtar midis zinxhirëve në të njëjtin grep. Nëse një zinxhir tjetër bazë ekzekutohet më vonë, politika efektive është kombinimi, ndaj inspektoni numëruesit dhe jo skedarin që redaktuat. Numëruesit janë prova më e lirë e disponueshme. Një rregull pa numërim paketash nuk përputhet, dhe një rregull që përputhet ndërsa një zinxhir i mëvonshëm pranon ju tregon se dropi është në vendin e gabuar.
Provoni matricën, jo numrin e skedarëve
Ndërtoni një matricë të vogël rezultatesh të pritshme dhe kontrolloni çdo qelizë. Nga grupi A në grupin A duhet të funksionojë, nga grupi B në grupin B duhet të funksionojë, dhe nga A në B nuk duhet, në të dy drejtimet dhe për të dyja familjet e adresave nëse i mbështetni.
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
Dy të parat tregojnë çfarë është konfiguruar. Ping nga një anëtar i grupit të gabuar tregon çfarë ndodh në të vërtetë. Lista e conntrack tregon nëse një rrjedhë më e vjetër pranohet ende, dhe kështu një ndryshim izolimi dështon në heshtje të hyjë në fuqi.
Shërbimet e hostit në hub dhe aksesi në një LAN pas tij janë rrugë të veçanta me politikë të veçantë. Shënoni cilat prej tyre mbulon matrica, sepse një provë që kontrollon vetëm trafikun koleg-koleg nuk thotë asgjë për asnjërën prej tyre.