Udržte politiku nftables stabilnú, kým sa objavuje rozhranie VPN
Pravidlá nftables založené na názve prežijú tunel, ktorý sa objavuje a mizne, ale trasy a existujúce toky sa neriadia automaticky. Oddeľte vlastníkov.
Tunely sú spotrebné; politika by taká nemala byť. Na linuxovej bráne možno pravidlo nftables, ktoré páruje rozhranie tunela podľa názvu, načítať raz a zostane platiť vždy, keď sa toto rozhranie objaví. Rozhranie však má vlastný životný cyklus: vzniká, mizne a trasy i preklady okolo neho sledujú svoj vlastný rozvrh. Práve oddelenie týchto vlastníkov udržiava prístup stabilný počas opätovného pripojenia.
Zhoda podľa názvu prežije rozhranie
nftables ponúka číselné zhody indexu rozhrania a dynamické zhody podľa názvu iifname a oifname. Pravidlá s týmito názvami sa načítajú čisto, aj keď zariadenie tunela ešte nie je vytvorené, čo je presne to, čo sada pravidiel pri štarte potrebuje. Zhoda prestane platiť, ak sa rozhranie premenuje, a obnoví sa, keď nové rozhranie tento názov prevezme. Číselný index túto vlastnosť nemá, a preto je názov obvyklou voľbou pre tunel.
Názov je kľúč zhody, nie dôkaz o tom, kto je na druhom konci. Overovanie partnera zostáva úlohou VPN.
Prečítajte reťazec, skôr než pridáte pravidlá
Pozrite sa, čo sada pravidiel teraz obsahuje a kam by nové pravidlo prišlo, pretože o výsledku rozhoduje poradie.
nft list ruleset
nft -c -f /etc/nftables.confVýpis ukazuje reťazce, pravidlá a handly a režim kontroly overí kandidátsky súbor bez toho, aby ho načítal. Povolenie len pre tunel umiestnené za skorším prijatím pre ten istý tok nič nemení, pretože vyhráva prvé zodpovedajúce pravidlo. Preto môže neskoré pravidlo vyzerať správne a nemá žiadny účinok. Prečítajte reťazec po poriadku a potvrďte, že zákaz prevádzky od klienta k nadradenému spojeniu stále predchádza čomukoľvek širšiemu.
Trasy, preklad a toky majú iných vlastníkov
Prítomnosť rozhrania nevytvára trasy a neoveruje partnera. To patrí správcovi VPN, zatiaľ čo preklad má tretí životný cyklus.
conntrack -L -s 10.20.0.0/24 | head
ip route show dev vpn0Výpis conntrack ukazuje existujúce toky s ich pôvodnými a preloženými hodnotami a výpis trás ukazuje, čo správca pre rozhranie nainštaloval. Pravidlá NAT vytvárajú stav sledovania spojenia pri prvom pakete, takže zavedený tok si svoj preklad zachová aj po zmene pravidla. Preto sú aktualizované pravidlo a tok používajúci novú cestu dve rôzne tvrdenia. Rozhodnite, ktoré relácie sa musia znova pripojiť, a nesúvisiace toky nechajte byť.
Prijmite studený štart, výpadok aj obnovu
Otestujte bránu s tunelom neprítomným pri štarte, potom s prítomným a napokon po výpadku a návrate. Potvrďte, že zakázané preposielanie zostáva zakázané, kým tunel chýba, že nový povolený tok funguje po overení partnera a že obnova nevyžaduje mazanie nesúvisiaceho stavu. Nemažte celý reťazec POSTROUTING ani každú položku conntrack ako akciu zastavenia jedného profilu, pretože ich zdieľajú iné služby. Zaznamenajte, ktorý komponent zmenil rozhranie, trasu a politiku, nie len to, že spúšťací hook skončil s nulou.
Politika, ktorá prežije opätovné pripojenie, je tá, ktorej vlastníci sú pomenovaní a ktorej pravidlá boli otestované s tunelom vypnutým aj zapnutým. Hook, ktorý hlási úspech, dokazuje len to, že hook bežal.