22.8. iptables の設定を保持する(iptables-save と iptables-restore)

ここまで解説してきたように、パケットフィルタリングや IP マスカレードを設定するには、iptables コマンドを実行します。しかし、このままではシステムを再起動すると、設定したルールはすべて消去されてしまい、もう一度 iptables コマンドを実行してルールを再設定しなければなりません。そのために、現在設定されているルールをファイルに書き出して保存しておくツールが iptables-save です。設定を保存するにはリダイレクトを使用して保存するファイル名を指定します。

# iptables-save > filename

また、ルールを変更した場合などに iptables-save で保存したファイルを読み込んで変更を元に戻すツールが iptables-restore です。設定を読み込むには保存した設定ファイル名を指定して以下のようにコマンドを実行します。

# iptables-restore < filename

また、Turbolinux 11 Server では上記のように iptables-save で保存したファイル(filename)をシステム起動時に /etc/init.d/iptables スクリプトから読み込むことができます。つまり、システム起動時にこのスクリプトが実行されるようにしておけば、コンピュータを再起動しても自動的に保存したファイルが読み込まれルールが保持されます。その際、/etc/init.d/iptables は /etc/sysconfig/iptables ファイルを読み込んで iptables コマンドを実行しますので iptables-save で書き出したファイルを /etc/sysconfig/iptables の名前でコピーしておく必要があります。

注意

Turbolinux 11 Server をインストールすると、/etc/sysconfig/iptables のサンプルファイルが存在します。必要に応じて、ファイル名を変更してバックアップをとるか、削除してください。なお、/etc/sysconfig/iptables を直接編集してルールを設定することも可能です。

/etc/init.d/iptables スクリプトのオプションは以下の通りです。

表 22-11. iptables - /etc/init.d/iptables

オプション説明
start設定ファイルのルールを読み込みます。その時点で設定されているルールはすべてリセットされます。
stopルールをすべてリセットし、ポリシーをすべて ACCEPT にします。
restartルールをすべてリセットし、もう一度設定ファイルのルールを読み込みます。
status状態を表示します。iptables -L と同じです。
panicルールをすべてをリセットし、ポリシーをすべて DROP にします。
save現在設定されているルールを /etc/sysconfig/iptables ファイルに書き出します。iptables-save と基本的には同じですが保存するファイルの指定はできません。標準で /etc/sysconfig/iptables ファイルに書き出します。既存のファイルは上書きされますので十分に注意してください。

iptables-save あるいは、/etc/init.d/iptables save で保存した /etc/sysconfig/iptables を読み込むには、以下のコマンドを実行します。

# /etc/init.d/iptables start

また、システム起動時に /etc/init.d/iptables start するには、以下のように chkconfig コマンドを実行しておきます。

# chkconfig iptables on