Ich habe mir heute die Manpage von iptables angesehen und bemerkt, dass die Beschreibung von -A lautet: „Füge eineoder mehrRegeln bis zum Ende der ausgewählten Kette“. Bedeutet das, dass wenn ich:
iptables -A INPUT {...rule1...}
iptables -A INPUT {...rule2...}
könnte es auf eine Zeile vereinfacht werden?
iptables -A INPUT {...rule1; rule2...}
Ich habe bei Google gesucht und kann kein Beispiel dafür finden, dass dies jemals jemand gemacht hat, aber wenn möglich, würde es einige meiner Skripte vereinfachen.
Antwort1
Sie können bei einem Aufruf nur eine Regeldefinition angeben iptables -A
.
Wenn Sie jedoch eine Adresse wie www.example.com verwenden, die zufällig in mehr als eine Adresse aufgelöst wird, werden mehrere Regeln angehängt, eine für jede Adresse.
Beispiel: (es wurden falsche IPs verwendet …):
$ host www.example.com
www.example.com has address 10.1.2.3
www.example.com has address 10.1.2.4
$ sudo iptables -A INPUT -s www.example.com -j ACCEPT
$ sudo iptables -L INPUT -vn
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
208K 250M ACCEPT all -- * * 192.168.0.0/16 0.0.0.0/0
0 0 ACCEPT all -- * * 10.1.2.3 0.0.0.0/0
0 0 ACCEPT all -- * * 10.1.2.4 0.0.0.0/0
Sie haben jetzt also mit einem iptables -A
Aufruf mehr als eine Regel eingefügt.
Ich stimme zu, dass dies aus der Manpage-Beschreibung nicht ganz hervorgeht.
Antwort2
Regel Nr. 1 pro iptables-Aufruf. Die Option „Anhängen“ steht im Gegensatz zur Option „Einfügen“. Anhängen bedeutet, dass die neue Regel an das Ende der Regelliste gesetzt wird, während „Einfügen“ die Regel am Anfang der Liste hinzufügt.
iptables -I INPUT {Rule1}
iptables -I INPUT {Rule2}
würde zu folgenden Regeln führen:
{Rule2}
{Rule1}
Wo
iptables -A INPUT {Rule1}
iptables -A INPUT {Rule2}
würde zur Folge haben,
{Rule1}
{Rule2}