Tunely jsou spotřební; politika by taková být neměla. Na linuxové bráně lze pravidlo nftables, které páruje rozhraní tunelu podle názvu, načíst jednou a zůstane platit pokaždé, když se toto rozhraní objeví. Rozhraní přesto má vlastní životní cyklus: vzniká, mizí a trasy i překlady kolem něj sledují svůj vlastní rozvrh. Právě oddělení těchto vlastníků udržuje přístup stabilní během opětovného připojení.

Shoda podle názvu přežije rozhraní

nftables nabízí číselné shody indexu rozhraní a dynamické shody podle názvu iifname a oifname. Pravidla s těmito názvy se načítají čistě, i když zařízení tunelu ještě není vytvořeno, což je přesně to, co sada pravidel při startu potřebuje. Shoda přestane platit, pokud se rozhraní přejmenuje, a obnoví se, když nové rozhraní tento název převezme. Číselný index tuto vlastnost nemá, a proto je název obvyklou volbou pro tunel.

Název je klíč shody, nikoli důkaz o tom, kdo je na druhém konci. Ověřování protistrany zůstává úkolem VPN.

Přečtěte řetězec, než přidáte pravidla

Podívejte se, co sada pravidel nyní obsahuje a kam by nové pravidlo přišlo, protože o výsledku rozhoduje pořadí.

nft list ruleset
nft -c -f /etc/nftables.conf

Výpis ukazuje řetězce, pravidla a handly a režim kontroly ověří kandidátský soubor, aniž by jej načetl. Povolení jen pro tunel umístěné za dřívějším přijetím stejného toku nic nemění, protože vyhrává první odpovídající pravidlo. Proto může pozdní pravidlo vypadat správně a nemít žádný účinek. Přečtěte řetězec popořadě a potvrďte, že zákaz provozu od klienta k nadřazenému spoji stále předchází čemukoli širšímu.

Trasy, překlad a toky mají jiné vlastníky

Přítomnost rozhraní nevytváří trasy a neověřuje protistranu. To patří správci VPN, zatímco překlad má třetí životní cyklus.

conntrack -L -s 10.20.0.0/24 | head
ip route show dev vpn0

Výpis conntrack ukazuje existující toky s jejich původními a přeloženými hodnotami a výpis tras ukazuje, co správce pro rozhraní nainstaloval. Pravidla NAT vytvářejí stav sledování spojení při prvním paketu, takže zavedený tok si svůj překlad zachová i po změně pravidla. Proto jsou aktualizované pravidlo a tok používající novou cestu dvě různá tvrzení. Rozhodněte, které relace se musí znovu připojit, a nesouvisející toky nechte být.

Přijměte studený start, výpadek i obnovu

Otestujte bránu s tunelem nepřítomným při startu, potom s přítomným a nakonec po výpadku a návratu. Potvrďte, že zakázané předávání zůstává zakázané, dokud tunel chybí, že nový povolený tok funguje po ověření protistrany a že obnova nevyžaduje mazání nesouvisejícího stavu. Nemažte celý řetězec POSTROUTING ani každou položku conntrack jako akci zastavení jednoho profilu, protože je sdílejí jiné služby. Zaznamenejte, která komponenta změnila rozhraní, trasu a politiku, ne jen to, že spouštěcí hook skončil s nulou.

Politika, která přežije opětovné připojení, je ta, jejíž vlastníci jsou pojmenováni a jejíž pravidla byla otestována s tunelem vypnutým i zapnutým. Hook, který hlásí úspěch, dokazuje jen to, že hook běžel.

Související články