私はiptables チュートリアルそして現在は第6章 テーブルとチェーンの走査。
理解に苦しんでいますなぜ上記章に記載されている表6-1、6-2、6-3の背後にあります。
質問:
より良い説明が見つかる、より良い本やオンライン リソースはありますか?
これらの表に記載されているさまざまな手順を暗記/記憶する必要がありますか?
上記のチュートリアルは何年も前のもののようです。
iptables
そこに書かれていることはすべて 100% 有効でしょうか。iptables
私のシステムにあるバージョンは です1.4.14
。
これらすべての疑問は、主に私がこれまでのところ「感じている」ことから生じており、おそらく、iptables
私たちに提供すべきだったのは、最低フックポイントのセット(例えば、ルーティング前とルーティング後のフックなど)と、任意上記の表のように詳細な手順の順序を規定するのではなく、パケット処理 (適切と思われる任意の順序で任意の回数 - カスタム ステート マシン) を実行します。たとえば、表 6-3 に続く図では、「filter input」手順が「mangle input」の後にのみ実行され、その前に実行されないのはなぜでしょうか。また、前と後の両方に実行されないのはなぜでしょうか。などなど。
答え1
もっと良い本やオンラインリソースはありますか?
可能でしょうか?おそらく?Linuxとiptablesを学ぶためのオンラインとオフラインのリソースは山ほどあります。ウィキ素晴らしい概要があります。別の使用方法と管理ガイド。こちら別のFrozenTux と同じ情報を含むガイドですが、若干書き直されています。
さまざまな手順を暗記する必要があるのでしょうか
それは状況によります。そもそもなぜ勉強しているのですか?
あなたは必要iptablesを使うためにすべてを記憶する必要があるでしょうか?いいえ。フィルター他のテーブルを定義しない場合はデフォルトになります。iptables を最大限に活用したい場合に役立ちますか? もちろんです。
まだ有効?
はい。
なぜ「入力のフィルタリング」ステップは「入力のマングル」の後にのみ実行され、その前に実行されないのでしょうか? また、なぜ前後両方に実行されないのでしょうか?
鍵となるのは、表 6.1 の 8 行目と 9 行目の記述です。本質的には、実際にパケットをフィルタリングする前に、パケットを変更する (つまり、マングリングする) かどうかを決定する必要があります。
そのため、マングル入力チェーンが最初にヒットし、次にフィルター入力チェーンがヒットします。
同様に、パケットはマシン (iptables を実行しているマシン) に着信するため、手順の順序が重要です。パケットがすでにルーティングされて送信中になった後は、パケットに対して「入力」または着信の決定を行うことはできません。
表 6.3 は表 6.2 の続きではないことに気づくでしょう。代わりに、7 行目 (ルーティングの決定) までは似ていますが、8 行目は異なるパスまたは分岐です。表 6.2 は、同じネットワーク内のパケット用です。表 6.3 は、ネットワーク外のパケット用です。
7 層の OSI モデルを覚えておくことが重要です。データのすべてのビットは、さまざまなセグメント、パケット、およびフレームにパッケージ化され、再パッケージ化されます。ネットワークの「ホップ」ごとに、特定のセグメント、パケット、またはフレームが操作され、書き換えられる機会が生まれます。
iptables は、その再パッケージ化を非常に細かく制御できます。着信パケット、発信パケット、自分のネットワーク専用で他のネットワークには適用しないパケット、またはその逆、自分のデバイス専用、自分のデバイス以外など、ルールを記述できます。また、これらすべてのフレームのさまざまなヘッダーを変更できます。**
** 私は「フレーム」、「セグメント」、「パケット」を自由に混ぜ合わせていることに気づいています。申し訳ありませんが、そうすべきではありません。主張したい場合や特定のネットワーク分析を行う場合を除いて、私は常にそうしています。