Balíček se nainstaloval čistě, pravidla byla otestována a po dalším restartu byla brána zcela otevřená. V transakci nic neselhalo; chyba byla v předpokladu, co přetrvá. Instalace nástrojů firewallu, rozhodnutí, která pravidla mají přežít, a jejich obnova ve správný okamžik jsou tři oddělené úkoly.

Co vám symptom vlastně říká

Sada pravidel, která při restartu zmizí, má jednoho ze tří vlastníků: nic ji neuložilo, něco jiného ji nahradilo, nebo byla obnovena dřív, než existovalo to, na čem závisí. První dva jsou vidět v konfiguraci; třetí se projeví jen v pořadí. Proto může restart vypadat jako ztráta dat, když jde ve skutečnosti o problém posloupnosti.

Začněte tím, že zapíšete, co platilo před restartem: která služba pravidla držela, který soubor nebo databázi při startu četla a zda se do toho zdroje někdy zapisovalo. Živá sada pravidel, kterou nikdo neuložil, je platné vysvětlení a to nejčastější.

Nezačínejte reinstalací balíčku.

Přečtěte si nástroj trvalosti, než ho použijete

Nástroje Debianu berou trvalost jako problém pluginů: každý plugin ví, jak zapsat vlastní pravidla, a jeden obal je volá. Jeho akce uložení uchová vše, co je v tu chvíli načteno, a akce startu tento snímek zase načte. Nic v obou akcích nezkoumá, co ukládá.

To je snímek, ne revize. Zbytkové povolení z ladící relace, nedokončený experiment nebo benevolentní pravidlo vložené jiným pomocníkem se všechny stanou trvalými vedle politiky, kterou jste chtěli zachovat. Uložit stav a schválit stav jsou různé činnosti a jen jedna z nich vyžaduje úsudek. Nejprve si přečtěte načtenou sadu, pak rozhodněte, které řádky si zaslouží přežít.

Ukládejte vědomě, až po přečtení toho, co je načteno.

Rozhodněte, co má přežít

Některá pravidla patří k životnímu cyklu rozhraní a měla by s ním zmizet. Jiná musí přežít tunel a nejjasnějším příkladem je omezení, které zakazuje klientskému provozu spadnout zpět na fyzické rozhraní, když tunel spadne. Tyto dvě kategorie potřebují různé spouštěče obnovy, ne jeden společný snímek.

Zapište zamýšlený výsledek pro tři okamžiky: boot, aktivace VPN a ztráta tunelu. Potom zkontrolujte, zda vámi zvolený nástroj umí vyjádřit každý z nich. Balíček trvalosti, který znovu načítá statický snímek, zvládá první a možná ani jeden z ostatních, protože snímek netuší, kdy se stav tunelu změnil. Pokud je vyjádřit nedokáže, mezera patří jiné komponentě.

Odpověď určuje politika, ne balíček.

Zkontrolujte pořadí obnovy

Obnovit soubor není totéž jako vlastnit výsledek. Jiný správce může pravidla nahradit, dřívější povolení je může zastínit nebo klienti mohou začít odesílat dřív, než omezení vstoupí v platnost. Zkontrolujte chování při startu a opětovném připojení, ne jen existenci uloženého souboru.

systemctl status netfilter-persistent
iptables -S

Nepředpokládejte, že zastavení služby trvalosti je neškodné, protože balíček dokumentuje podmíněné vyčištění při zastavení. Zjistěte skutečnou konfiguraci služby, než zastavení nebo restart použijete jako experiment na bráně, kterou spravujete vzdáleně. Konzolová relace a zdokumentované vrácení jsou minimum před tímto testem.

Pořadí je vlastnost běžícího systému, ne souboru na disku.

Přijměte tři oddělené výsledky

Zaznamenejte instalaci balíčku, načtenou sadu pravidel a vynucenou politiku jako oddělená fakta. Název balíčku ve vlákně podpory odpovídá jen na první a právě to je to, na čem málokdy záleží.

nft list ruleset

Potom otestujte povolenou operaci a požadované odmítnutí.

Pokud odmítnutí vydrží po restartu i po pádu tunelu, politika přežívá. Pokud vydrží jen v jednom z těchto stavů, našli jste problém pořadí, místo abyste ho opravili.

Související články