Listen Sie die iptables-Regeln als Befehl zum Anhängen auf

8

Vor einiger Zeit habe ich einem Linux-Guru über die Schulter geschaut und er hat einen Befehl ausgegeben, der alle iptables-Regeln im Format der Anhängebefehle auflistet, die Sie zum Erstellen ausgeben müssen, aber trotz all meiner Googeln- und Manpage Ich kann nicht herausfinden, was er getan hat.

Zum Beispiel, wenn die Ausgabe von iptables -nL INPUTwar:

Chain INPUT (policy DROP)
num  target     prot opt source               destination
1    ACCEPT     tcp  --  0.0.0.0/0            192.168.0.1           tcp dpt:80

Die Ausgabe des gesuchten Befehls wäre ungefähr so:

1  -A INPUT -i eth0 -p tcp --dport 80 -d 192.168.0.1 -j ACCEPT

Ich scheine mich zu erinnern, dass es nur eine weitere Option war, die an den Standardbefehl übergeben wurde iptables -L, aber ich könnte mich irren. Kennt jemand einen Befehl, um dies zu erreichen?

Mike Deck
quelle

Antworten:

9

Es ist ganz einfach: iptables -S gibt Ihnen genau das, wonach Sie fragen.

BM
quelle
4

Sie können eine ähnliche Ausgabe erhalten, indem Sie den folgenden iptables-saveBefehl verwenden:

*nat
:PREROUTING ACCEPT [381:53396]
:INPUT ACCEPT [286:22260]
:OUTPUT ACCEPT [1462:92025]
:POSTROUTING ACCEPT [1450:91003]
-A POSTROUTING -s 192.168.123.0/24 ! -d 192.168.123.0/24 -p tcp -j MASQUERADE --to-ports 1024-65535 
-A POSTROUTING -s 192.168.123.0/24 ! -d 192.168.123.0/24 -p udp -j MASQUERADE --to-ports 1024-65535 

Es gibt Zahlen und einige zusätzliche Informationen, aber Sie können sie entfernen, indem Sie so etwas schreiben:

iptables-save | grep -v -e "^[*:#]" -e "COMMIT" | cat -n

Und die Ausgabe:

     1  -A POSTROUTING -s 192.168.123.0/24 ! -d 192.168.123.0/24 -p tcp -j MASQUERADE --to-ports 1024-65535 
     2  -A POSTROUTING -s 192.168.123.0/24 ! -d 192.168.123.0/24 -p udp -j MASQUERADE --to-ports 1024-65535 
Lukasz Stelmach
quelle