8.4. iptables-restore

iptables-restore コマンドは、 iptables-save コマンドで保存した iptables ルールセットを、復元 (restore) するのに使用する。入力は標準入力から読み取られ、このドキュメントを執筆している時点では、残念ながらファイルからロードすることはできない。 iptables-restore のコマンド書式はこうだ:

iptables-restore [-c] [-n]

-c 引数はバイトおよびパケットカウンタをリストアする。 iptables-save で保存しておいたカウンタ値もリストアしたいなら、必ず指定しなくてはならない。長いオプションで --counters と書くこともできる。

-n 引数は、これから書き込もうとする特定のテーブルあるいはすべてのテーブルの内容を上書きしないよう iptables-restore に伝える。デフォルト動作では、iptables-restore は既存のルールをフラッシングし抹消する。短いオプションでは -n だが、長いオプションで --noflush と書くこともできる。

iptables-restore コマンドでルールセットをロードするには幾つかの方法があるが、代表として、最もシンプルで一般的なやり方を紹介しておこう。

cat /etc/iptables-save | iptables-restore -c
   

下記のコマンドでもできる:

iptables-restore -c < /etc/iptables-save
   

このコマンドは、 /etc/iptables-save ファイルの保持するルールセットを cat して iptables-restore にパイプ渡しし、 iptables-restore がそれを標準入力を通じてバイトとパケットのカウンタとともに受け取ってリストアする。こんな具合で、そもそもが込み入ったことではない。ただし、やり方は気が遠くなるほどのバリエーションがあり、違った手法はいくらでも挙げられる。しかし、それはこのチャプターの守備範囲から外れるので省略し、各読者諸氏の実地検証に委ねることにしよう。

これにて、ルールセットはカーネルに正しくロードされ動作しているはずだ。もしだめなら、ことによるとコマンドのバグにぶつかってしまったのかもしれない。