Dvije klijentske grupe, jedan server: gdje provesti politiku
Pods mreže označavaju grupe, ali ih ne izoliraju. Odlučite koja putanja prosljeđivanja posjeduje pravilo, zatim napišite matricu koju implementacija mora provesti.
Stavljanje dvije klijentske grupe na različite pods mreže izgleda kao izolacija, a nije. Adrese opisuju odakle paket naizgled dolazi, dok je dopuštenje odluka koju donosi onaj ko ga prosljeđuje. Na to pitanje odgovara konfiguracija, a ne maska, pa odlučite koji komponent prosljeđuje promet između partnera prije nego napišete ikakvo pravilo.
Pods mreža je oznaka, a ne pravilo
Dodjela jednog skupa po grupi daje vam čitljive adrese i ništa drugo. Klijent koji prihvati dodatnu rutu dobio je dosegljivost, a dosegljivost nije ovlaštenje. Dopuštenje za razgovor nalazi se u odluci o prosljeđivanju, koja može živjeti u demonu ili u kernelu, ovisno o tome kako je server konfiguriran.
Vlasništvo nad adresom čini prefiks upotrebljivim kao birač grupe. Svaki autentificirani identitet mora odgovarati predvidljivoj adresi ili rasponu, a to mapiranje pada čim nekoliko uređaja dijeli jedan akreditiv i jednu dodjelu. Riješite identitet i paralelnost prije nego se oslonite na prefiks izvora, jer politika koja nagađa koja mašina zove ovlašćuje pogrešnu u najgorem trenutku.
Izaberite putanju koja nosi promet između partnera
Kada demon prosljeđuje pakete partnera unutar vlastitog procesa, ti paketi nikada ne stižu do kuke za prosljeđivanje domaćina, pa ih pravilo kernela ne može vidjeti. Isključite to unutarnje prosljeđivanje i kernel postaje točka prosljeđivanja, gdje vrijede obična pravila prosljeđivanja.
# peer forwarding inside the daemon: enforce with per-group policy instead of FORWARD rules
client-to-client
# kernel forwarding path: remove the line above, then filter in the forward chain
Rasterećeni kanali podataka i serveri kojima upravlja proizvod objavljuju vlastite modele provođenja, pa potvrdite koji od njih koristite umjesto da pretpostavljate ponašanje zajednice. Kvar koji vrijedi izbjeći je pravilo koje izgleda ispravno na pregledu i nikada se ne pita tijekom rada.
Napišite matricu prije pravila
Kratka matrica lakše se pregledava od skupa pravila i ona je ugovor koji implementacija mora zadovoljiti: partneri iste grupe dopušteni, partneri preko grupa zabranjeni, obje grupe dopuštene prema jednoj imenovanoj zajedničkoj usluzi, sve ostalo zabranjeno. Zapišite ta četiri retka prije nego otvorite uređivač vatrozida. Pregledač koji ne čita sintaksu pravila ipak može provjeriti matricu. Implementacija tada samo mora odgovarati recima.
| Source | Destination | Decision |
|---|---|---|
| Group A address | Another Group A address | Allow |
| Group A address | A Group B address | Deny |
| Either group | The shared internal service | Allow |
| Either group | Anything not listed | Deny |
Držite tri razreda odredišta odvojeno dok je pišete. Usluga na domaćinu VPN-a lokalni je ulaz, drugi klijent je tranzit partnera, a mašina iza pristupnika druga je putanja prosljeđivanja. Jedno izdašno pravilo može slučajno dopustiti sva tri i tako grupna politika postaje ravna mreža s dodatnim koracima. Zapišite razred uz svaki redak da namjera preživi sljedeću izmjenu.
Smjestite pravila tamo gdje preživljavaju
Dodajte odluke na isto mjesto gdje se održava ostatak vatrozida, prije svakog dopuštajućeg pravila koje bi ih inače progutalo. Redoslijed pravila dio je politike, a ispravno pravilo smješteno nakon širokog dopuštenja ne provodi ništa. Zabilježite brojeve pravila prije i poslije promjene. Politika koja postoji u uređivaču, ali ne u pokrenutom skupu pravila, plan je, a ne kontrola.
Odlučite što se događa s tokovima koji već postoje kada se politika promijeni, jer sesija otvorena prije promjene može nastaviti raditi poslije nje. Ako član koji odlazi mora odmah izgubiti pristup, skup pravila treba način da prekine to stanje umjesto da čeka da se veza sama zatvori.
Trajno sačuvajte pravila kroz mehanizam koji posjeduje ostatak vatrozida i zabilježite matricu uz njih. Nezabilježena politika ponovno se izvodi iz sjećanja tijekom sljedećeg incidenta, obično od nekoga u žurbi.
Dokažite to s obje strane
Testirajte dosegljivost unutar grupe, neuspjeh između grupa i zajedničku uslugu s jednog klijenta u svakoj grupi. Jedan test s jednog klijenta dokazuje pola matrice, a polovica koju ispušta obično je ona pogrešna. Ponovite smjer zabrane dvaput, jer predmemorirana sesija može sakriti pogrešku u provođenju. Zabilježite koji ste par testirali da ga sljedeća osoba ne ponavlja.
Ponovite provjeru na IPv6 ako ga tunel nosi i zadržite uobičajenu autentifikaciju aplikacija. Prefiks izvora nije račun, pa prolazak mrežne politike ne znači da bi usluga trebala vjerovati pozivatelju.