iptablesによるフィルタ設定
Rev.5を表示中。最新版はこちら。
iptablesとは
iptablesコマンドを使用することでLinuxカーネルのIPフィルタやNATを設定できる。テーブルとチェーン
iptablesにはテーブルとチェーンと呼ばれるものがある。IPフィルタ、NATなどの各用途に応じてfilter,nat,mangleのテーブルがある(カーネルのconfigにも依存する)。各テーブルの中にチェーンがありチェーンの中にフィルタなどのルールが連なっている。チェーンは複数ありパケットの種類によってどのチェーンが使用されるかは異なる。例えばfilterテーブルにはINPUT,OUTPUT,FORWARDの3種類のチェーンがあるが、INPUTチェーンは自分のIPアドレス宛のパケット図-1 テーブルとチェーンの概要
表-1 各テーブルの用途
No. | テーブル | 用途 |
---|---|---|
1 | filter | IPフィルタの設定を行う |
2 | nat | IPマスカレードの設定を行う |
3 | mangle | TOSフィールドの書き換えなどパケットの 書き換えルールを設定する。QoSをするのに使う。 |
テーブル情報の表示
現在のfilterテーブルの情報を表示する場合# /sbin/iptables -LNATテーブルの情報を表示する場合
# /sbin/iptables -t nat -L
テーブル情報のファイルへの保存
全テーブルの内容をファイルに出力# /sbin/iptables-save > iptables.txt
ファイルの内容をテーブルに反映させる
# /sbin/iptables-restore < iptables.txt
現在の設定の保存
iptablesで設定した内容は保存しておかないと、システムをリスタートすると消えてしまう。以下のようにスタートアップスクリプトにsave引数を指定して実行することで現在のテーブルの内容がファイルに保存され、起動時に読み込まれるようになる。# /etc/init.d/iptables save[捕捉]
FedoraCoreの場合は起動時に/etc/sysconfig/iptablesの内容を読み込んでiptablesを初期化している。上記のコマンドを実行することで現在のテーブル内容がこのファイルに保存される。
iptablesをいろいろ設定したが、一旦初期状態に戻したい場合は以下のようにすれば、/etc/sysconfig/iptablesが読み込まれて起動時の状態に戻せる。
# /etc/init.d/iptables restart