WireGuard-i peer-rühmad jaoturis: allika omand ja poliitika
Hoidke peer-rühmad eraldi kitsaste allika-aadressidega peeri kohta ja edastuspoliitikaga, ilma eraldi tunneliliideseta iga rühma jaoks.
WireGuardi käitav jaotur saab hoida peer-rühmi eraldi ilma eraldi liidese või marsruutimistabelita iga rühma jaoks. Töö teevad kaks mehhanismi ja nende segamine on tavaline põhjus, miks poliitika näeb õige välja ega tee midagi. Üks kiht otsustab, kes tohib allika-aadressi nõuda. Teine otsustab, kuhu sellel paketil minna lubatakse.
Kaks ülesannet, hoitakse lahus
Tunnelikiht vastab kitsale küsimusele: kas selle peeri võti volitas selle sisemise allika-aadressi. Edastuskiht vastab laiemale: kas see pakett tohib selle sihtkoha poole väljuda. Kumbki ei vasta teise küsimusele ja kumbki ei ole üksi täielik juurdepääsupoliitika.
See lahutamine on põhjus, miks peer saab olla autenditud, õigesti adresseeritud ja ikkagi mitte jõuda hostini, kuhu ta ei peaks jõudma. See selgitab ka vastupidist: tulemüürireegel, mis lubab kõike, ei tõesta midagi selle kohta, kes tohib millist aadressi nõuda.
Kavandage mõlemad kihid koos, seejärel testige mõlemat. Konfiguratsioon, mis on ühes kihis õige ja teises testimata, ebaõnnestub avatult või suletult sõltuvalt vaikeväärtusest.
Andke igale peerile ainult tema oma aadress
Mitme hostiga peerid ahvatlevad teid andma serveri poolel kogu rühma vahemikku. See luba on allika-aadressi nõue, seega kahjustatud või valesti konfigureeritud klient saab esitada mis tahes aadressi vahemikus ja tunnel võtab selle vastu. Määrake iga peeri jaoks /32 tema enda sisemise aadressi jaoks. Seadke rühma vahemikud ainult klientidel, kus need kirjeldavad milliseid sihtkohti see klient tohib jõuda mitte milliseid allikaid ta tohib kasutada.
Seejärel sobitab tulemüür allikat, mida ta saab usaldada. Rühma vahemiku jaoks kirjutatud reegel jääb kasulikuks rühmitamiseks ja muutub mõttekaks alles siis, kui ükski üksik peer ei saa nõuda teisele liikmele kuuluvat aadressi.
Kirjutage edastuspoliitika, mis rühmad eraldab
Huvitav liiklus siseneb ja väljub siin sama tunneliliidese kaudu, seega läbib see edastusteed, mitte hosti sisendteed. Reeglid kuuluvad selle tulemüürihalduri olemasolevasse edastusahelasse, kellele host kuulub, ja need on fragmendid, mitte täielik reeglistik.
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
Kaks esimest reeglit lubavad liiklust iga rühma sees. Viimane blokeerib kõik muu, mis seda liidest läbib, ja just see loob rühmadevahelise isolatsiooni. Lisage teise aadressiperekonna jaoks selgesõnalised reeglid, kui neid vajate, sest IPv4 jaoks kirjutatud drop ei volita ega kirjelda IPv6 käitumist.
Järjekord otsustab, kas poliitika rakendub
Reeglite järjekord loeb rohkem kui fragment ise. Üldreegel, mis aktsepteerib loodud ühendusi ja on paigutatud nende kirjete ette, laseb vanal rühmadevahelisel voolul jätkuda, seega isolatsioon kehtib ainult uutele ühendustele. Otsustage, millist neist kahest tulemusest soovite, enne kui uuesti laadite.
Vastuvõtuotsus ei ole ka alati lõplik ahelate vahel samas konksus. Kui mõni teine baasahel jookseb hiljem, on tegelik poliitika kombinatsioon, seega uurige loendureid, mitte faili, mida muutsite. Loendurid on odavaim saadaolev tõend. Reegel, millel pole paketiloendit, ei sobi, ja reegel, mis sobib, samal ajal kui hilisem ahel võtab vastu, ütleb teile, et drop on vales kohas.
Testige maatriksit, mitte failide arvu
Koostage väike oodatavate tulemuste maatriks ja kontrollige iga lahtrit. Rühm A rühma A vastu peaks töötama, rühm B rühma B vastu peaks töötama ja A B vastu ei peaks, mõlemas suunas ja mõlema aadressiperekonna jaoks, kui te neid toetate.
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
Kaks esimest näitavad, mis on konfigureeritud. Ping vale rühma liikmelt näitab, mis tegelikult juhtub. conntrack-i loend näitab, kas vanemat voolu ikka võetakse vastu, ja nii ei jõustu isolatsiooni muudatus vaikselt.
Hostiteenused jaoturis ja juurdepääs selle taga olevale LAN-ile on eraldi teed eraldi poliitikaga. Kirjutage üles, milliseid neist maatriks katab, sest test, mis kontrollib ainult peer-to-peer liiklust, ei ütle kummagi kohta midagi.