■iptablesの設定手順 LAST UPDATE 2007/05/18
※この内容はレノボ・ジャパンThinkPad R61e(2007年冬モデル) にFedora8をインストールした環境で動作を確認しています。
■はじめに
iptablesはパケットフィルタリングツールです。
Linuxをルータ代わりやFWとして利用する場合に利用します。
■iptablesを理解するための概念
(1)基本的な概念
iptablesを使うには、「テーブル」や「チェイン」などの概念を理解しておく必要があります。
iptablesには、3つの「テーブル」が用意されており、
それぞれ
①「filter」 ②「nat」 ③「mangle」と呼びます。
(1)テーブル
「filterテーブル」がデフォルトテーブルで、テーブルを指定せずにiptablesコマンドを使用した場合はこれが使われます。
また、テーブルによって使用できる「チェイン」が異なります。
◆各テーブルの組み込みチェイン
------------------------------
【テーブル】 :【使用するchain】
①filter INPUT、FORWARD、OUTPUT
②nat PREROUTING、OUTPUT、POSTROUTING
③mangle PREROUTING、OUTPUT
------------------------------
(2)チェイン
「chain(チェイン)」と呼ばれるパケットをチェックするポイントがあります。
チェインは、パケットを検査する「ルール」のリストです。
各チェインでルールに適合するかを調べ、次のチェインにパケットを渡します。
このチェインのルールを変更・追加することでfilterテーブルやnatテーブルの設定が行われ、
これによってファイアウォールを構築するわけです。
natテーブルで使用するPREROUTING、OUTPUT、POSTROUTINGについては、NATの設定時にでも。
◆組み込みチェイン
------------------------------
INPUT 入力(受信)パケット
OUTPUT 出力(送信)パケット
FORWARD フォワードするパケット
PREROUTING 受信時に変換するチェイン
POSTROUTING 送信時に変換するチェイン
------------------------------
◆下の図1の[ ] でくくった部分です。
図1
>>>インタフェース インタフェース
からの出力 からの出力>>>
IN---> [PRERUTING] --->ROUTING---> [FORWORD] ---> [POSTROUTING] --->OUT
| ^
| |
V |
[INPUT] [OUTPUT]
| ^
| |
V |
-----------------------------------------
| |
| Linux Local Pro |
| |
------------------------------------------
上図からわかるようにパケットの送信元/送信先によって通るchainが異なります。
①Linuxがパケットの送信元の場合
"OUTPUT" ⇒ "POSTROUTING" の2箇所のchainを通ります。
②Linuxがパケットの送信先の場合
"PREROUTING" ⇒ "INPUT" の2箇所のchainを通ります。
③Linuxがパケットの送信元、及び送信先になっていない場合
"PREROUTING" ⇒ "FORWORD" ⇒ "POSTROUTING" の3箇所のchainを通ります。
【ポイント】
これらの各 chain に到達したパケットを許可(ACCEPT)、拒否(DROP)するほか、様々な処理をすることができます。