it-swarm.com.de

Anzeigen aller iptables-Regeln

Gibt es eine Möglichkeit, iptables -Regeln etwas detaillierter anzuzeigen?

Ich habe kürzlich einer Reihe von IPs Maskerade hinzugefügt:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
service iptables save
service iptables restart

Welches hat getan, was ich will, aber wenn ich benutze:

iptables -L

Ich erhalte die gleiche Ausgabe wie normalerweise:

Chain INPUT (policy ACCEPT)
target    prot opt source        destination

Chain FORWARD (policy ACCEPT)
target    prot opt source        destination

Chain OUTPUT (policy ACCEPT)
target    prot opt source        destination

Wie kann ich die Regeln sehen, einschließlich der Regeln, die ich hinzufüge? (System ist CentOS 6)

154

Wenn Sie die Option -L, --list Verwenden, um die aktuellen Firewall-Regeln aufzulisten, müssen Sie auch die entsprechende Netfilter-Tabelle angeben (eine von filter, nat, mangle, raw oder security). Wenn Sie also eine Regel für die Tabelle nat hinzugefügt haben, sollten Sie diese Tabelle explizit mit der Option -t, --table Angeben:

iptables --table nat --list

Oder verwenden Sie die Kurzform der Optionen:

iptables -t nat -L

Wenn Sie keine bestimmte Tabelle angeben, wird standardmäßig die Tabelle filter verwendet.


Für schnellere Ergebnisse kann es nützlich sein, auch die Optionen -n, --numeric Einzuhalten, um numerische IP-Adressen anstelle von Hostnamen zu drucken, sodass Sie nicht auf umgekehrte DNS-Suchvorgänge warten müssen.

Sie können noch mehr Informationen erhalten, indem Sie die Optionen -v, --verbose Einschließen.

124

iptables steuert fünf verschiedene Tabellen: filter, nat, mangle, raw und security. Bei einem bestimmten Aufruf zeigt iptables nur eine dieser Tabellen an oder ändert sie, angegeben durch das Argument für die Option -t (Standardmäßig filter). Um den vollständigen Status der Firewall anzuzeigen, müssen Sie nacheinander iptables für jede der Tabellen aufrufen.

Um eine genaue Darstellung der Regeln zu erhalten, müssen Sie außerdem die Option -v Übergeben. Andernfalls werden einige wichtige Kriterien in der Ausgabe weggelassen, z. B. die Schnittstelle in Filterregeln (z. B. eine Regel mit der Aufschrift "Alles akzeptieren" und eine Regel mit der Aufschrift "Alles auf der Loopback-Schnittstelle akzeptieren" können nur mit -v).

Um eine vollständige Darstellung der Netfilter-Regeln zu erhalten, benötigen Sie daher

iptables -vL -t filter
iptables -vL -t nat
iptables -vL -t mangle
iptables -vL -t raw
iptables -vL -t security

Alternativ können Sie das Programm iptables-save Aufrufen, das alle Regeln in allen Tabellen in einem Format anzeigt, das von iptables-restore Analysiert werden kann. Dieses Format ist auch für Menschen einigermaßen lesbar (es ähnelt einer Reihe von Aufrufen des Befehls iptables zum Erstellen der Tabelle).

iptables -S macht den Trick für mich. Es scheint alle aktiven Regeln aufzulisten, auch wenn der Dienst ausgeschaltet ist.

Von der Manpage:

-S, --list-rules [chain] Gibt alle Regeln in der ausgewählten Kette aus. Wenn keine Kette ausgewählt ist, werden alle Ketten wie iptables-save gedruckt. Wie jeder andere Befehl von iptables gilt er für die angegebene Tabelle (Filter ist die Standardeinstellung).

57
Cameron

Was ich tue, ist iptables-save > iptables_bckp Auszuführen, dies würde alle Ebenen sichern, dann die Datei bearbeiten und die iptables wiederherstellen iptables-restore < iptables_bckp

# iptables-save > iptables_bckp
# vim iptables_bckp
# iptables-restore < iptables_bckp

Sie können eine doppelte Sicherung erstellen, um eine davon zu ändern, ohne Ihre früheren iptables zu verlieren.

Dies ist eine persönliche Praxis, ich sage nicht, dass dies der beste Weg ist, aber für mich funktioniert es großartig.

Versuche es

18
tachomi

Für den Befehl iptables müssen Sie außerdem die Tabelle angeben, andernfalls wird standardmäßig die Tabelle gefiltert. Also versuche:

iptables -t nat -L
4
user425

Sie können verwenden:

# lsmod | grep ip_tables
ip_tables              13193  4 iptable_raw,iptable_mangle,iptable_nat,iptable_filter

Um alle Tabellen zu finden und bestimmte Regeln in der Tabelle anzuzeigen.

3
Tur Le
iptables -vnxL
iptables -vnxL -tnat

möglicherweise zusätzlich, obwohl diese sehr, sehr selten verwendet werden:

iptables -vnxL -traw
iptables -vnxL -tmangle
iptables -vnxL -tsecuriy
1
sjas

Wenn es wirklich hilft, können Sie ein Bash-Skript schreiben und es in einen Ordner legen, auf den Ihr Pfad verweist, oder über einen Alias ​​in der Datei ~/.bashrc.

AllRules.sh

#!/bin/bash

 echo "Filter table:"
 iptables -t filter -vL

 echo "Nat table:"
 iptables -t nat -vL

 echo "Mangle table:"
 iptables -t mangle -vL

 echo "Raw table:"
 iptables -t raw -vL

 echo "Security table:"
 iptables -t security -vL

 echo 
 echo "All rules in all tables printed"

Denken Sie daran, Ihrem neuen Bash-Skript Ausführungsberechtigungen mit chmod zu erteilen.

Wenn die Berechtigung ein Problem darstellt, müssen Sie möglicherweise Sudo vor allen iptables - Befehlen hinzufügen.

1
ob1