Löscht iptables -F dauerhaft alle iptables-Regeln?

8

In einem RHEL-Schulungsdokument sagt der Autor:

... führen Sie den folgenden Befehl aus, um die Firewall auf dem aktuellen System zu deaktivieren: iptables -F

Er verwendet ausdrücklich das Wort "deaktivieren", was für mich darauf hindeutet, dass es einfach sein wird, es wieder zu aktivieren. Beim Lesen der Manpage für iptables sehe ich Folgendes:

Spülen Sie die ausgewählte Kette (alle Ketten in der Tabelle, falls keine angegeben ist). Dies entspricht dem Löschen aller Regeln nacheinander.

Kann ich das erwartete Verhalten klären?

Mike B.
quelle
2
Beachten Sie, dass iptables -Falle Regeln in der "Filter" -Tabelle gelöscht werden, die anderen Tabellen (nat, mangle ...) nicht gelöscht werden und die Richtlinien nicht auf ihre Standardeinstellungen zurückgesetzt werden, sodass nicht wirklich gesagt werden kann, dass sie deaktiviert sind die Firewall .
Stéphane Chazelas

Antworten:

13

Die iptablesRegeln werden auf Red Hat-Systemen an zwei Stellen gespeichert:

  • Im Speicher des laufenden Kernels, wo der Firewall-Code sie auf Netzwerk-E / A überprüft. iptables -FWenn Sie die Regeln mit spülen, wird nur dieser Regelsatz entfernt.

  • In /etc/sysconfig/iptablesdem sie beim Booten geladen werden. Sie können ein erneutes Laden erzwingen, ohne mit service iptables reloadoder neu zu starten ...restart.

Die Antwort lautet also nein, das Spülen der Regeln iptables -Fist nicht dauerhaft.

Wenn Sie setupdie Firewall-Regeln aufrufen und ändern, werden sie in gespeichert /etc/sysconfig/iptables. Sie sollten diese Datei nicht direkt bearbeiten, aber wenn Sie das iptablesBefehlszeilenformat kennen , können Sie das Format dieser Datei ziemlich einfach herausfinden.

Warren Young
quelle
Fantastische Antwort. Ich schätze das Detail und die Klarstellung. Danke Warren.
Mike B
9

Als Referenz wird hier beschrieben, wie ALLE aktuellen iptables-Regeln gelöscht werden:

#!/bin/sh
echo "Stopping firewall and allowing everyone..."
iptables=/sbin/iptables
$iptables -F
$iptables -X
$iptables -t nat -F
$iptables -t nat -X
$iptables -t mangle -F
$iptables -t mangle -X
$iptables -P INPUT ACCEPT
$iptables -P FORWARD ACCEPT
$iptables -P OUTPUT ACCEPT
Steve Dibb
quelle
4
Es gibt tatsächlich mehr Tabellen als das. Zumindest -t rawund -t security. Verwenden /proc/net/ip_tables_names
Sie