Zvezdišče, ki izvaja WireGuard, lahko ohrani skupine sopotnikov ločene brez ločenega vmesnika ali usmerjevalne tabele za vsako skupino. Delo opravljata dva mehanizma, in njuno zamenjevanje je običajen razlog, da politika izgleda pravilna in ne naredi ničesar. Ena plast odloča, kdo sme zahtevati naslov vira. Druga odloča, kam se temu paketu sme iti.

Dve nalogi, ločeni

Plast tunela odgovarja na ozko vprašanje: ali je ključ tega sopotnika odobril ta notranji naslov vira. Plast posredovanja odgovarja na širše: ali sme ta paket oditi proti tistemu cilju. Nobena ne odgovarja na vprašanje druge in nobena sama po sebi ni popolna politika dostopa.

Ta ločitev je razlog, da je sopotnik lahko overjen in pravilno naslovljen, pa vseeno ne more doseči gostitelja, ki ga ne bi smel doseči. Pojasnjuje tudi nasprotno: pravilo požarnega zidu, ki dovoli vse, ne dokaže ničesar o tem, kdo sme zahtevati kateri naslov.

Načrtujte obe plasti skupaj, nato preizkusite obe. Konfiguracija, ki je pravilna na eni plasti in nepreizkušena na drugi, spodleti odprto ali zaprto glede na privzeto vrednost.

Vsakemu sopotniku dajte le njegov lastni naslov

Sopotniki z več gostitelji vas vabijo, da na strežniški strani dodelite celoten razpon skupine. To dovoljenje je zahteva po naslovu vira, zato lahko ogrožen ali napačno konfiguriran odjemalec predstavi kateri koli naslov iz razpona in tunel ga bo sprejel. Dodelite /32 na sopotnika za njegov lastni notranji naslov. Razpone skupin nastavljajte le na odjemalcih, kjer opisujejo katere cilje sme ta odjemalec doseči in ne katerih virov sme uporabljati.

Požarni zid nato primerja vir, ki mu lahko zaupa. Pravilo, napisano za razpon skupine, ostaja uporabno združevanje in postane smiselno šele, ko noben posamezni sopotnik ne more zahtevati naslova, ki pripada drugemu članu.

Napišite politiko posredovanja, ki loči skupine

Zanimiv promet tu vstopa in izstopa skozi isti vmesnik tunela, zato prečka pot posredovanja in ne vhodne poti gostitelja. Pravila sodijo v obstoječo verigo posredovanja tistega upravitelja požarnega zidu, ki ima gostitelja, in so drobci, ne popoln nabor pravil.

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

Prvi dve pravili dovoljujeta promet znotraj vsake skupine. Zadnje blokira vse ostalo, kar prečka ta vmesnik, in to ustvarja izolacijo med skupinami. Dodajte izrecna pravila za drugo družino naslovov, če jih potrebujete, ker drop, napisan za IPv4, ne odobri in ne opiše vedenja IPv6.

Vrstni red odloča, ali se politika uporabi

Vrstni red pravil je pomembnejši od drobca samega. Splošno pravilo, ki sprejema vzpostavljene povezave in je postavljeno pred temi vnosi, pusti stari medskupinski tok, da se nadaljuje, zato izolacija velja le za nove povezave. Odločite se, kateri od teh dveh izidov želite, preden znova naložite.

Tudi sodba o sprejetju ni vedno dokončna med verigami na istem kavlju. Če se pozneje izvaja druga osnovna veriga, je dejanska politika kombinacija, zato pregledajte števce in ne datoteke, ki ste jo uredili. Števci so najcenejši razpoložljivi dokaz. Pravilo brez štetja paketov se ne ujema, pravilo, ki se ujema, medtem ko poznejša veriga sprejema, pa vam pove, da je drop na napačnem mestu.

Preizkusite matriko, ne števila datotek

Zgradite majhno matriko pričakovanih izidov in preverite vsako celico. Skupina A v skupino A bi morala delovati, skupina B v skupino B bi morala delovati, A v B pa ne bi smela, v obe smeri in za obe družini naslovov, če ju podpirate.

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

Prva dva pokažeta, kaj je konfigurirano. Ping od člana napačne skupine pokaže, kaj se v resnici zgodi. Seznam conntrack pokaže, ali je starejši tok še vedno sprejet, in prav tako sprememba izolacije tiho ne začne veljati.

Gostiteljske storitve na zvezdišču in dostop do omrežja LAN za njim so ločene poti z ločeno politiko. Zabeležite, katere od njih pokriva matrika, ker preizkus, ki preverja le promet med sopotniki, ne pove ničesar o nobeni od njiju.

Sorodni članki