Ohranite politiko nftables stabilno, medtem ko prihaja vmesnik VPN
Pravila nftables, ki temeljijo na imenu, preživijo tunel, ki se pojavi in izgine, vendar poti in obstoječi tokovi ne sledijo samodejno. Ločite lastnike.
Tuneli so potrošni; politika ne bi smela biti. Na prehodu Linux je mogoče pravilo nftables, ki ujame vmesnik tunela po imenu, naložiti enkrat in velja vsakič, ko se ta vmesnik pojavi. Vmesnik ima še vedno življenjski cikel: ustvari se, izgine, poti in prevodi okoli njega pa sledijo svojemu urniku. Prav ločevanje teh lastnikov ohranja dostop stabilen med ponovno povezavo.
Ujemanje po imenu preživi vmesnik
nftables ponuja številčna ujemanja indeksa vmesnika in dinamična ujemanja po imenu iifname in oifname. Pravila s temi imeni se naložijo čisto tudi, ko naprava tunela še ni ustvarjena, kar je točno tisto, kar nabor pravil pri zagonu potrebuje. Ujemanje se ustavi, če se vmesnik preimenuje, in se nadaljuje, ko novo ime prevzame nov vmesnik. Številčni indeks te lastnosti nima, zato je imenska oblika običajna izbira za tunel.
Ime je ključ ujemanja, ne dokaz o tem, kdo je na drugi strani. Preverjanje partnerja ostaja naloga VPN.
Preberite verigo, preden dodate pravila
Poglejte, kaj nabor pravil zdaj vsebuje in kam bi se uvrstilo novo pravilo, ker vrstni red odloča o izidu.
nft list ruleset
nft -c -f /etc/nftables.confSeznam prikazuje verige, pravila in ročaje, način preverjanja pa potrdi kandidatno datoteko, ne da bi jo naložil. Dovoljenje samo za tunel, postavljeno za prejšnjo odobritvijo za isti tok, ne spremeni ničesar, ker zmaga prvo ujemajoče pravilo. Zato je lahko pozno pravilo videti pravilno in nima nobenega učinka. Preberite verigo po vrsti in potrdite, da prepoved prometa od odjemalca proti nadrejeni povezavi še vedno pride pred vsem širšim.
Poti, prevod in tokovi imajo druge lastnike
Prisotnost vmesnika ne ustvari poti in ne preveri partnerja. To pripada upravitelju VPN, medtem ko ima prevod tretji življenjski cikel.
conntrack -L -s 10.20.0.0/24 | head
ip route show dev vpn0Seznam conntrack prikazuje obstoječe tokove z njihovimi izvirnimi in prevedenimi vrednostmi, seznam poti pa prikazuje, kaj je upravitelj namestil za vmesnik. Pravila NAT vzpostavijo stanje sledenja povezave pri prvem paketu, zato uveljavljen tok ohrani svoj prevod tudi po spremembi pravila. Zato sta pravilo, ki se posodablja, in tok, ki uporablja novo pot, dve različni trditvi. Odločite se, katere seje se morajo znova povezati, in pustite nepovezane tokove pri miru.
Sprejmite hladen zagon, izgubo in obnovitev
Preizkusite prehod z odsotnim tunelom ob zagonu, nato s prisotnim in nato po prekinitvi in vrnitvi. Potrdite, da prepovedano posredovanje ostane prepovedano, dokler tunel manjka, da nov dovoljen tok deluje po preverjanju partnerja in da obnovitev ne zahteva brisanja nepovezanega stanja. Ne brišite celotne verige POSTROUTING ali vsakega vnosa conntrack kot dejanja zaustavitve enega profila, ker si jih delijo druge storitve. Zapišite, katera komponenta je spremenila vmesnik, pot in politiko, ne le, da je zagonska kuka končala z ničlo.
Politika, ki preživi ponovno povezavo, je tista, katere lastniki so imenovani in katere pravila so bila preizkušena s tunelom tako spuščenim kot dvignjenim. Kuka, ki poroča o uspehu, dokazuje le, da je kuka tekla.