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
- Beim Neustart werden Computerregeln gelöscht. Warum?
- Was kann ich tun, um die Regeln beizubehalten?
In iptables gibt es keine Option, die Ihre Regeln dauerhaft macht. Aber Sie können iptables-save
und 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.conf
mit 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
iptables-persistent
Paket, das dies erledigt.rc.local
da zwischen dem Start der Dienste und der Anwendung der Firewall-Richtlinie eine Lücke besteht. Ich lieber mitpre-up
für Loopback - Schnittstelle Haken in/etc/network/interfaces
diese zu überwinden.rc.local
könnte den beabsichtigten Effekt haben, aber es ist ein Trick in dieser Situation.(Weil vorgeschlagen wurde, dies zu einer eigenen Antwort zu machen ...)
Bei der Debian-Installation
iptables-persistent
.Das Paket wird
/etc/iptables/rules
beim 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.quelle
/etc/iptables/rules.v4
und/etc/iptables/rules.v6
für IPv4 bzw. IPv6. Wenn eine Tabelle auf beide Arten von Verbindungen angewendet werden soll, müssen Sie sie in beiden Regeldateien speichern.Nach der
iptables-persistent
obigen 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
quelle