Das Paket wurde sauber installiert, die Regeln wurden getestet, und nach dem nächsten Neustart war das Gateway weit offen. Nichts an der Transaktion schlug fehl; der Fehler lag in der Annahme, was bestehen bleiben würde. Firewall-Werkzeuge zu installieren, zu entscheiden, welche Regeln überleben sollen, und sie im richtigen Moment wiederherzustellen, sind drei getrennte Aufgaben.

Was das Symptom Ihnen tatsächlich sagt

Ein Regelsatz, der beim Neustart verschwindet, hat einen von drei Verursachern: Niemand hat ihn gespeichert, etwas anderes hat ihn ersetzt, oder er wurde wiederhergestellt, bevor das existierte, wovon er abhängt. Die ersten beiden sind in der Konfiguration sichtbar; der dritte zeigt sich nur in der Reihenfolge. Deshalb kann ein Neustart wie Datenverlust aussehen, obwohl er in Wahrheit ein Sequenzproblem ist.

Schreiben Sie zuerst auf, was vor dem Neustart galt: Welcher Dienst hielt die Regeln, welche Datei oder Datenbank las er beim Start, und war diese Quelle jemals beschrieben worden. Ein aktiver Regelsatz, den niemand gespeichert hat, ist eine gültige Erklärung und die häufigste.

Beginnen Sie nicht mit einer Neuinstallation des Pakets.

Lesen Sie das Persistenzwerkzeug, bevor Sie es benutzen

Die Debian-Werkzeuge behandeln Persistenz als Plugin-Problem: Jedes Plugin weiß, wie es seine eigenen Regeln schreibt, und ein Wrapper ruft sie auf. Seine Speichern-Aktion sichert alles, was in diesem Moment geladen ist, und seine Start-Aktion lädt diesen Schnappschuss zurück. Nichts in beiden Aktionen prüft, was gespeichert wird.

Das ist ein Schnappschuss, keine Prüfung. Eine übrig gebliebene Freigabe aus einer Debugging-Sitzung, ein halbfertiges Experiment oder eine großzügige Regel, die ein anderes Hilfsmittel eingefügt hat, werden alle dauerhaft neben der Richtlinie, die Sie behalten wollten. Zustand speichern und Zustand genehmigen sind verschiedene Tätigkeiten, und nur eine davon verlangt Urteilsvermögen. Lesen Sie zuerst den geladenen Satz und entscheiden Sie dann, welche Zeilen es verdienen zu überleben.

Speichern Sie bewusst, nachdem Sie gelesen haben, was geladen ist.

Entscheiden Sie, was überleben soll

Manche Regeln gehören zum Lebenszyklus einer Schnittstelle und sollten mit ihr verschwinden. Andere müssen den Tunnel überleben, und das klarste Beispiel ist eine Einschränkung, die es dem Client-Verkehr verbietet, auf die physische Schnittstelle zurückzufallen, wenn der Tunnel zusammenbricht. Diese beiden Kategorien brauchen unterschiedliche Wiederherstellungsauslöser, nicht einen gemeinsamen Schnappschuss.

Schreiben Sie das beabsichtigte Ergebnis für drei Momente auf: Boot, VPN-Aktivierung und Tunnelverlust. Prüfen Sie dann, ob das gewählte Werkzeug jeden davon ausdrücken kann. Ein Persistenzpaket, das einen statischen Schnappschuss neu lädt, deckt den ersten ab und vielleicht keinen der anderen, weil ein Schnappschuss nicht weiß, wann sich der Tunnelzustand geändert hat. Kann es sie nicht ausdrücken, gehört die Lücke zu einer anderen Komponente.

Die Richtlinie, nicht das Paket, entscheidet die Antwort.

Prüfen Sie die Wiederherstellungsreihenfolge

Die Datei wiederherzustellen ist nicht dasselbe, wie das Ergebnis zu besitzen. Ein anderer Manager kann die Regeln ersetzen, eine frühere Freigabe kann sie überschatten, oder Clients können bereits senden, bevor die Einschränkung greift. Prüfen Sie Start- und Wiederverbindungsverhalten, nicht nur die Existenz einer gespeicherten Datei.

systemctl status netfilter-persistent
iptables -S

Nehmen Sie nicht an, dass das Stoppen des Persistenzdienstes harmlos ist, denn das Paket dokumentiert ein bedingtes Leeren beim Stoppen. Stellen Sie die tatsächliche Konfiguration des Dienstes fest, bevor Sie Stoppen oder Neustart als Experiment auf einem Gateway verwenden, das Sie remote administrieren. Eine Konsolensitzung und ein dokumentierter Rückweg sind das Minimum vor diesem Test.

Reihenfolge ist eine Eigenschaft des laufenden Systems, nicht der Datei auf der Platte.

Akzeptieren Sie drei getrennte Ergebnisse

Halten Sie Paketinstallation, geladenen Regelsatz und durchgesetzte Richtlinie als getrennte Tatsachen fest. Ein Paketname in einem Support-Thread beantwortet nur die erste, und sie ist die, die selten zählt.

nft list ruleset

Testen Sie dann eine erlaubte Operation und eine erforderliche Ablehnung.

Hält die Ablehnung nach einem Neustart und nach einem Tunnelverlust, überlebt die Richtlinie. Hält sie nur in einem dieser Zustände, haben Sie das Reihenfolgeproblem gefunden, statt es zu beheben.

Ähnliche Artikel