Il pacchetto si è installato senza problemi, le regole sono state testate e dopo il riavvio successivo il gateway era completamente aperto. Nulla nella transazione è fallito; il guasto era in ciò che si dava per scontato che persistesse. Installare strumenti firewall, decidere quali regole devono sopravvivere e ripristinarle al momento giusto sono tre lavori separati.

Cosa ti dice davvero il sintomo

Un insieme di regole che scompare al riavvio ha uno di tre responsabili: nulla lo ha salvato, qualcos'altro lo ha sostituito, oppure è stato ripristinato prima che esistesse ciò da cui dipende. I primi due sono visibili nella configurazione; il terzo emerge solo nell'ordine. Per questo un riavvio può sembrare una perdita di dati quando in realtà è un problema di sequenza.

Inizia scrivendo ciò che era vero prima del riavvio: quale servizio deteneva le regole, quale file o database leggeva all'avvio e se quella fonte era mai stata scritta. Un insieme di regole attivo che nessuno ha salvato è una spiegazione valida e la più comune.

Non iniziare reinstallando il pacchetto.

Leggi lo strumento di persistenza prima di usarlo

Gli strumenti Debian trattano la persistenza come un problema di plugin: ogni plugin sa scrivere le proprie regole e un wrapper le richiama. La sua azione di salvataggio memorizza tutto ciò che è caricato in quel momento, e la sua azione di avvio ricarica quell'istantanea. Nulla in nessuna delle due azioni esamina ciò che sta memorizzando.

Questa è un'istantanea, non una revisione. Un permesso rimasto da una sessione di debug, un esperimento incompleto o una regola permissiva inserita da un altro aiutante diventano tutti permanenti accanto alla politica che volevi mantenere. Salvare uno stato e approvare uno stato sono attività diverse, e solo una delle due richiede giudizio. Leggi prima l'insieme caricato, poi decidi quali righe meritano di sopravvivere.

Salva deliberatamente, dopo aver letto ciò che è caricato.

Decidi cosa deve sopravvivere

Alcune regole appartengono al ciclo di vita di un'interfaccia e dovrebbero sparire con essa. Altre devono sopravvivere al tunnel, e l'esempio più chiaro è una restrizione che vieta al traffico dei client di ricadere sull'interfaccia fisica quando il tunnel cade. Queste due categorie richiedono trigger di ripristino diversi, non un'unica istantanea condivisa.

Scrivi il risultato desiderato per tre momenti: avvio, attivazione della VPN e perdita del tunnel. Poi verifica se lo strumento scelto può esprimere ciascuno di essi. Un pacchetto di persistenza che ricarica un'istantanea statica copre il primo e forse nessuno degli altri, perché un'istantanea non ha idea di quando è cambiato lo stato del tunnel. Se non riesce a esprimerli, la lacuna appartiene a un altro componente.

La politica, non il pacchetto, decide la risposta.

Controlla l'ordine di ripristino

Ripristinare il file non è lo stesso che possedere il risultato. Un altro gestore può sostituire le regole, un permesso precedente può oscurarle, oppure i client possono iniziare a inviare prima che la restrizione entri in vigore. Esamina il comportamento all'avvio e alla riconnessione, non solo la presenza di un file salvato.

systemctl status netfilter-persistent
iptables -S

Non dare per scontato che fermare il servizio di persistenza sia innocuo, perché il pacchetto documenta uno svuotamento condizionale quando si ferma. Stabilisci la configurazione reale del servizio prima di usare arresto o riavvio come esperimento su un gateway che amministri da remoto. Una sessione console e un ritorno documentato sono il minimo prima di quel test.

L'ordine è una proprietà del sistema in esecuzione, non del file su disco.

Accetta tre risultati separati

Registra l'installazione del pacchetto, l'insieme di regole caricato e la politica applicata come fatti separati. Il nome di un pacchetto in un thread di supporto risponde solo al primo, ed è quello che raramente conta.

nft list ruleset

Poi prova un'operazione consentita e un rifiuto obbligatorio.

Se il rifiuto tiene dopo un riavvio e dopo la caduta del tunnel, la politica sopravvive. Se tiene solo in uno di questi stati, hai trovato il problema di ordine invece di correggerlo.

Articoli correlati