iptablesテーブルとチェーンを通過する方法

iptablesテーブルとチェーンを通過する方法

私はLinuxに以下のようにそれぞれ独自のチェーンを持つ3つの組み込みテーブルがあることを知っています。

フィルター:事前配線、配送、事後配線

ネットワークアドレス変換:配線前、入力、出力、配線後

マンレ:事前配線、入力、伝達、出力、事後配線

しかし、私は彼らがどのように通過するのか、どの順序でいるのか理解していません。たとえば、次のような場合、これを繰り返す方法は次のとおりです。

  1. 同じローカルネットワーク上のコンピュータにパケットを送信します。
  2. 別のネットワーク上のコンピュータにパケットを送信するとき
  3. ゲートウェイがパケットを受信して​​それを転送する必要がある場合
  4. 私に送ったパッケージを受け取ったとき
  5. その他の状況(該当する場合)

答え1

ウィキペディアには一つあります。素晴らしいチャート処理の順序を表示します。

詳細については、iptablesのマニュアルを参照してください。時計チェーンがチャプターを横断する。ここでもフローチャート

順序は、netfilterの使用方法(ブリッジまたはネットワークフィルタおよびアプリケーション層と対話するかどうか)によって異なります。

一般的に言えば(上記にリンクされている章に詳細がありますが)、チェーンは次のように処理されます。

  • INPUTチェーンを「外部からの着信トラフィック」と考えてください。到着このホスト。」
  • FORWARDチェーンを「このホストをルーターとして使用するトラフィック」(ソースと宛先いいえこのホスト)。
  • OUTPUTチェーンを「トラフィック」と考えてください。これ主人様がお送りします。」
  • PREROUTING/POSTROUTING は、表タイプごとに異なる用途に使用されます。たとえば、natテーブルの場合、PREROUTINGはインバウンド(ルーティング/転送)SNATトラフィックに使用され、POSTROUTINGはアウトバウンド(ルーティング/転送)DNATトラフィックに使用されます。詳細については、次を参照してください。特定の詳細に関する文書。

さまざまなテーブルは次のとおりです。

  • Mangleは、巡回しながらパケット(サービスタイプ、TTL(Time to Live)など)を変更することです。
  • NatはNATルールを置くことです。
  • Raw はマークアップと接続の追跡に使用されます。
  • フィルタは、データパケットをフィルタリングするために使用される。

したがって、5つのシナリオの場合:

  1. 送信ホストがiptablesを持つホストの場合
  2. 同じ上記と
  3. FORWARDチェーン(ゲートウェイがiptablesを持つホストの場合)
  4. 「私」がiptablesを持つホストの場合はINPUT
  5. 上記のチェーンルール(一般的な経験則)とフローチャート(これも場合によって異なります)を見てください。これを達成するためにIPTablesを使用しようとしています)

答え2

まあ、慣れてた。Phil Hagenのフローチャート(前の回答で述べた@slmのように)以下のASCIIフローチャートです。

network  ->  PREROUTING  ->  routing  ->  INPUT  ------->  process
               raw           decision       mangle
               (conntrack)   |              filter
               mangle        |              security
               nat(*)        |              nat
                             V
                             FORWARD  ----\
                              mangle      |
                              filter      |
                              security    |
                                          V
process  ->  OUTPUT  ------------------>  POSTROUTING  ->  network
               (routing decision??)         mangle
               raw                          nat(*)
               (conntrack)
               mangle
               nat
               (output interface assigned here?)
               filter
               security

(*)  Certain localhost packets skip the PREROUTING and POSTROUTING nat
     chains.  See the post and diagram by Phil Hagen for details.

iptables私はNetfilterの専門家ではないので、コメント、提案、修正を歓迎します。

関連情報