Warum verschwinden iptables-Regeln, wenn ich mein Debian-System neu starte?


48

Ich füge diese Regel hinzu:

sudo iptables -t nat -A OUTPUT -d a.b.c.d -p tcp \
       --dport 1723 -j DNAT --to-destination a.b.c.d:10000
  1. Beim Neustart werden Computerregeln gelöscht. Warum?
  2. Was kann ich tun, um die Regeln beizubehalten?

Antworten:


45

In iptables gibt es keine Option, die Ihre Regeln dauerhaft macht. Aber Sie können iptables-saveund verwenden iptables-restore, um Ihre Aufgabe zu erfüllen.

Fügen Sie zuerst die iptable-Regel mit dem von Ihnen angegebenen Befehl hinzu.

Speichern Sie dann die iptables-Regeln in einer Datei, beispielsweise /etc/iptables.confmit dem folgenden Befehl:

$  iptables-save > /etc/iptables.conf

Fügen Sie den folgenden Befehl hinzu /etc/rc.local, um die Regeln bei jedem Neustart neu zu laden.

$  iptables-restore < /etc/iptables.conf

15
Unter Debian gibt es das iptables-persistentPaket, das dies erledigt.
— Bahamat

7
Es ist eine ziemlich schlechte Idee, sie zu platzieren, rc.localda zwischen dem Start der Dienste und der Anwendung der Firewall-Richtlinie eine Lücke besteht. Ich lieber mit pre-up für Loopback - Schnittstelle Haken in /etc/network/interfacesdiese zu überwinden.
— Poige

@poige: Ich stimme zu 100% zu, rc.localkönnte den beabsichtigten Effekt haben, aber es ist ein Trick in dieser Situation.
— JM Becker

3
@ Bahamat: Die Installation dieses Pakets ist die beste Lösung. Es verdient seine eigene Antwort.
— JM Becker

1
@ TechZilla: Fertig.
— Bahamat

53

(Weil vorgeschlagen wurde, dies zu einer eigenen Antwort zu machen ...)

Bei der Debian-Installation iptables-persistent.

Das Paket wird /etc/iptables/rulesbeim Booten automatisch für Sie geladen .

Wenn Sie Ihre Regeln ändern, führen Sie sie aus /sbin/iptables-save > /etc/iptables/rules, um sie zu speichern. Sie können dies auch zur Sequenz zum Herunterfahren hinzufügen, wenn Sie möchten.


12
Es gibt zwei verschiedene Regeldateien: /etc/iptables/rules.v4und /etc/iptables/rules.v6für IPv4 bzw. IPv6. Wenn eine Tabelle auf beide Arten von Verbindungen angewendet werden soll, müssen Sie sie in beiden Regeldateien speichern.
— PetaspeedBeaver

11
Fügen Sie es nicht zu Ihrer Abschaltsequenz hinzu! Wenn Sie Ihre Regeln während Änderungen / Setups verpfuschen, wird zumindest ein guter alter Neustart die Dinge wieder in den zuvor funktionierenden Zustand versetzen.
— VertigoRay

1

Nach der iptables-persistentobigen Installation können Sie Regeln auch mit dem folgenden kürzeren Befehl unter Ubuntu 16.04+ speichern: sudo netfilter-persistent save

Sie können auch so wiederhergestellt werden, wie Sie sie zuletzt gespeichert haben: sudo netfilter-persistent reload

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.