カーネルは起動時に `filter' テーブルという所に 3つのルールリストを 保持しています。これらのリストはファイアーウォールチェイン、 または単にチェインと呼ばれます。3つのチェインは INPUT, OUTPUT そして FORWARD と呼ばれて います。
ASCII アートファンのために、チェインはこのように配置されています (これは、2.0 および 2.2 カーネルの配置と大変異なっています!) :
入って来る┌──────┐ / ̄ ̄ ̄\ 出て行く ―→│ルーティング│→|FORWARD |――→ │の決定 │ \___/ ↑ └──────┘ │ │ │ ↓ / ̄ ̄\ / ̄ ̄\ |OUTPUT| |INPUT | \__/ \__/ ↑ │ │ └─→ ローカル プロセス ──┘(訳注: この他に NAT 用のチェインとして、‘ルーティングの決定’の手前に `PREROUTING' チェインが、‘出て行く’の手前に `POSTROUTING' チェインが あります。)
3つの円は、上で述べた 3つのチェインを表わしています。パケットが図上 の 1つの円に達したら、そのチェインが検査されてパケットの運命を決めます。 もし、チェインがパケットを DROP(破棄)すると言ったら、パケットはそこで 抹殺されますが、もし、チェインがパケットを ACCEPT(受け入れ)すると言ったら、 パケットは図上を移って行きます。
1つのチェインは複数のルールのチェックリストから構成されて います。各々のルールは「もし、パケットのヘッダーがこんなだったら、 パケットをこのようにしなさい」と指示します。もし、あるルールがパケット とマッチしなければ、チェイン内の次のルールが調べられます。最終的に、 調べるルールが無くなったら、カーネルはそのチェインのポリシー (方針)を見て何をするか決めます。セキュリティ意識の強いシステムでは、 このポリシーは普通、パケットを DROP するようにカーネルに指示します。