Održite nftables politiku stabilnom dok VPN sučelje dolazi
nftables pravila temeljena na imenima prežive tunel koji se pojavljuje i nestaje, ali rute i postojeći tokovi ne slijede automatski. Razdvojite vlasnike.
Tuneli su potrošni; politika ne bi trebala biti. Na Linux pristupniku nftables pravilo koje po imenu povezuje sučelje tunela može se učitati jednom i nastaviti primjenjivati svaki put kad se to sučelje pojavi. Sučelje ipak ima vlastiti životni ciklus: stvara se, nestaje, a rute i prijevodi oko njega slijede vlastiti raspored. Upravo razdvajanje tih vlasnika održava pristup stabilnim tijekom ponovnog spajanja.
Podudaranje po imenu nadživljava sučelje
nftables nudi numerička podudaranja indeksa sučelja i dinamička podudaranja po imenu iifname i oifname. Pravila s tim imenima učitavaju se čisto čak i kad tunelski uređaj još nije stvoren, što je upravo ono što skup pravila pri podizanju treba. Podudaranje prestaje ako se sučelje preimenuje i nastavlja kad novo sučelje preuzme to ime. Numerički indeks nema to svojstvo, zato je imenski oblik uobičajen izbor za tunel.
Ime je ključ podudaranja, ne dokaz o tome ko je na drugoj strani. Autentifikacija partnera ostaje posao VPN-a.
Pročitajte lanac prije dodavanja pravila
Pogledajte što skup pravila trenutačno sadrži i gdje bi novo pravilo stajalo, jer poredak odlučuje o ishodu.
nft list ruleset
nft -c -f /etc/nftables.confPopis prikazuje lance, pravila i ručke, a način provjere validira kandidatnu datoteku bez učitavanja. Dopuštenje samo za tunel postavljeno nakon ranijeg prihvaćanja istog toka ne mijenja ništa, jer pobjeđuje prvo pravilo koje se podudara. Zato kasno pravilo može izgledati ispravno i nemati učinka. Pročitajte lanac redom i potvrdite da zabrana prometa od klijenta prema uzvodnoj vezi i dalje prethodi svemu širem.
Rute, prijevod i tokovi imaju druge vlasnike
Prisutnost sučelja ne stvara rute i ne autentificira partnera. To pripada VPN upravitelju, a prijevod ima treći životni ciklus.
conntrack -L -s 10.20.0.0/24 | head
ip route show dev vpn0Popis conntracka prikazuje postojeće tokove s njihovim izvornim i prevedenim vrijednostima, a popis ruta pokazuje što je upravitelj instalirao za sučelje. NAT pravila uspostavljaju stanje praćenja veze na prvom paketu, pa uspostavljeni tok zadržava svoj prijevod i nakon promjene pravila. Zato su pravilo koje se ažurira i tok koji koristi novi put različite tvrdnje. Odlučite koje sesije moraju ponovno se spojiti i ostavite nepovezane tokove na miru.
Prihvatite hladni start, gubitak i oporavak
Testirajte pristupnik s tunelom odsutnim pri podizanju, zatim s prisutnim, pa nakon prekida i povratka. Potvrdite da zabranjeno prosljeđivanje ostaje zabranjeno dok tunel nedostaje, da novi dopušteni tok radi nakon autentifikacije partnera i da oporavak ne zahtijeva brisanje nepovezanog stanja. Ne brišite cijeli lanac POSTROUTING ni svaki conntrack zapis kao radnju zaustavljanja jednog profila, jer druge usluge ih dijele. Zabilježite koja je komponenta promijenila sučelje, rutu i politiku, a ne samo da je početna kuka izašla s nulom.
Politika koja preživi ponovno spajanje jest ona čiji su vlasnici imenovani i čija su pravila testirana s tunelom i dolje i gore. Kuka koja javlja uspjeh dokazuje samo da je kuka radila.