GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Der beste Weg, um alle iptables-Regeln zu löschen

Lösung 1:

Um Ihre Frage kurz und bündig zu beantworten, nein:Es gäbe keine "übrig gebliebenen" Regeln, nachdem jeder Tisch geleert wurde. Aus Gründen der Gründlichkeit sollten Sie jedoch die Richtlinie für den integrierten INPUT festlegen und FORWARD Ketten bis ACCEPT , auch:

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -F
iptables -t mangle -F
iptables -F
iptables -X

ip6tables-Regeln löschen:

ip6tables -P INPUT ACCEPT
ip6tables -P FORWARD ACCEPT
ip6tables -P OUTPUT ACCEPT
ip6tables -t nat -F
ip6tables -t mangle -F
ip6tables -F
ip6tables -X

...und damit sollte es gehen. iptables -nvL sollte dies erzeugen (oder sehr ähnlich) Ausgabe:

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Lösung 2:

Dadurch wird Ihr iptables-System vollständig auf einen sehr einfachen Zustand zurückgesetzt:

iptables-save | awk '/^[*]/ { print $1 } 
                     /^:[A-Z]+ [^-]/ { print $1 " ACCEPT" ; }
                     /COMMIT/ { print $0; }' | iptables-restore

Alle Richtlinien werden auf ACCEPT zurückgesetzt und alle derzeit verwendeten Tabellen geleert. Alle Chains außer den eingebauten Chains werden nicht mehr existieren.

Lösung 3:

Wann immer ich die Firewall deaktivieren muss, sieht es so aus:

  • iptables-save > iptables.bak
  • service iptables stop (ich bin auf Fedora)

Lösung 4:

Sie können einfach iptables entladen ' Module aus dem Kernel:

modprobe -r iptable_raw iptable_mangle iptable_security iptable_nat iptable_filter

UPD Leider zu schön um wahr zu sein. Solange es eine Regel oder eine benutzerdefinierte Kette in einer Tabelle gibt, ist der Verweiszähler des entsprechenden Moduls 1 und modprobe -r scheitert. Sie können Regeln und benutzerdefinierte Ketten wie folgt löschen:

echo $'*raw\nCOMMIT\n*mangle\nCOMMIT\n*security\nCOMMIT\n*nat\nCOMMIT\n*filter\nCOMMIT' | iptables-restore

oder:

iptables-save | awk '/^[*]/ { print $1 "\nCOMMIT" }' | iptables-restore

Außerdem möchten Sie vielleicht Module auf diese Weise entladen (keine hartkodierten Modulnamen):

lsmod | egrep ^iptable_ | awk '{print $1}' | xargs -rd\\n modprobe -r

Auf der positiven Seite, nach diesem iptables-save erzeugt eine schöne leere Ausgabe :)

Lösung 5:

Sichert die Konfiguration in iptables_backup.conf und bereinigt alle Regeln.

iptables-save | tee iptables_backup.conf | grep -v '\-A' | iptables-restore

So stellen Sie die vorherige Konfiguration wieder her:

iptables-restore < iptables_backup.conf

Linux
  1. So leeren Sie die iptables-Regeln

  2. So fügen Sie benutzerdefinierte iptables-Regeln in der CSF-Firewall hinzu

  3. Einführung in iptables

  4. IPTables Flush:Alle Regeln auf RedHat und CentOS Linux löschen/entfernen

  5. CentOS / RHEL 6:So speichern Sie iptables-Regeln

So konfigurieren Sie die iptables-Firewall unter Linux

Gewusst wie:Grundlegende IPTables-Dateikonfiguration

Top 5 der besten Linux-Firewalls

Was ist der beste Weg, um ein Signal an alle Mitglieder einer Prozessgruppe zu senden?

Wie lässt man iptables-Regeln ablaufen?

beste Möglichkeit zum Debuggen von Nginx-Umschreibungsregeln in der Konfigurationsdatei?