iptablesのチェーンとは何ですか?

iptablesのチェーンとは何ですか?

Iptables は、Linux カーネルで IPv4 パケットフィルタリングルールテーブルを設定、保守、確認するために使用されます。さまざまなテーブルを定義できます。各テーブルには複数の組み込みチェーンが含まれており、カスタムチェーンも含めることができます。

チェーンパケットセットに一致できるルールのリスト。各ルールは、一致するパケットの処理方法を指定します。これは「ターゲット」と呼ばれ、同じテーブルのカスタムチェーンへのジャンプです。

チェーンの概念をどのように理解しますか?

チェーンは固定ルールのリストですか?

チェーンをどのように定義/指定して使用しますか?例えば、

-A, --append chain rule-specification

選択したチェーンの最後に1つ以上のルールを追加します。送信元名および宛先名が複数のアドレスで解決されると、可能な各アドレスの組み合わせのルールが追加されます。

次のコマンドにチェーン名がありますかINPUT?この名前は私が呼びたいとおりに呼ぶことができる名前ですか?このチェーンには正確に2つのルールがありますか?ありがとうございます。

iptables -A INPUT -p tcp -s localhost --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -j DROP

答え1

iptables チェーンは、単に順次処理されるルールのリストです。固定された組み込み機能(基本テーブルにあるものINPUTOUTPUTテーブルにある他のもの)のいずれか、ユーザーが定義してから別のテーブルから呼び出すこともできます。FORWARDfilternat

-A(追加)、-I(挿入)、および(削除)コマンドでわかるように、チェーンのルール-Dは自由に編集でき、固定されません。

以下のコマンドにチェーン名がありますかINPUT

はい。

この名前は私が呼びたいとおりに呼ぶことができる名前ですか?

そうではなく、システムに着信するパケットのルールを含む組み込みチェーンです(ターゲットはホスト上で実行されるプロセスです)。基本テーブルの他の2つは(明らかにシステムからの着信パケット)と(ルーティングされたパケット)filterです。OUTPUTFORWARD

これマニュアルページiptables(8)テーブルとその組み込みリンクの説明があります(下記TABLES)。

もちろん、カスタムチェーンに着信パケットのルールを配置してから、INPUTそのチェーンを参照するルールを追加するだけです。 (たとえば、そこにあるすべてのルールはiptables -A INPUT -j mychainジャンプして処理されます。)mychain

このチェーンには正確に2つのルールがありますか?

私たちはこれを知りません。これら2つのコマンド追加チェーンには2つのルールがあります。ただし、これらのコマンドを実行する前に、すでに他のコマンドがある可能性があります。

これら2つのルールの前に最初のコマンドがある場合、iptables -F INPUT結果としてこれら2つのルールだけが残ります。

また見なさい:iptablesテーブルとチェーンを通過する方法これには、次のように知る必要がないすべてのものへのリンクが含まれています。 https://stuffphilwrites.com/2014/09/iptables-processing-flowchart/。 (最初は、rawおよび表が頻繁に必要なので無視してもかまいません。)mangle

関連情報