iptables -A 1つ以上のルールを追加する

iptables -A 1つ以上のルールを追加する

今日iptablesのマニュアルページを見ていたら、-Aの説明に「1つ追加する」と書いてあることに気付きました。以上ルールを選択したチェーンの最後まで適用する」ということは、次のことを意味しますか:

iptables -A INPUT {...rule1...}
iptables -A INPUT {...rule2...}

1行に簡略化できますか?

iptables -A INPUT {...rule1; rule2...}

Google で調べてみましたが、これを行った例が見つかりませんでした。可能であれば、私のスクリプトのいくつかを試してみてください。

答え1

1 回の呼び出しで指定できるルール定義は 1 つだけですiptables -A

ただし、www.example.com など、複数のアドレスに解決されるアドレスを使用する場合は、アドレスごとに 1 つずつ、複数のルールが追加されます。

例: (偽の IP が使用されています...):

$ 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      

これで、1 回の呼び出しで複数のルールが挿入されましたiptables -A

これは man ページの説明からはあまり明らかではないことに同意します。

答え2

iptables 呼び出しごとに 1 つ目のルール。「追加」オプションは「挿入」オプションとは対照的です。「追加」では、新しいルールはルール リストの末尾に追加されますが、「挿入」ではルールがリストの先頭に追加されます。

iptables -I INPUT {Rule1}
iptables -I INPUT {Rule2}

ルールは次のようになります。

{Rule2}
{Rule1}

どこ

iptables -A INPUT {Rule1}
iptables -A INPUT {Rule2}

結果として

{Rule1}
{Rule2}

関連情報