Linux netfilter/iptables の知識ポイントの詳細な説明

Linux netfilter/iptables の知識ポイントの詳細な説明

ネットフィルター

Netfilter は、パケット フィルタリング、転送、およびアドレス変換 NAT 機能を提供できる Linux カーネルのパケット処理モジュールです。 Iptables は、Netfilter でパケット処理ルールを追加、変更、削除するために使用できるツールです。

Netfilter は、ネットワーク カードとカーネル プロトコル スタック間の壁であり、無料のソフトウェア ファイアウォールです。

Netfilter には、ルール、テーブル、チェーンという 3 つの主要な概念があり、レベルが上がるにつれて概念も増えていきます。

  • ルールとは、一致するフィールドやアクションなど、特定のメッセージを処理する方法を説明したものです。
  • チェーンはルールの集合です。
  • テーブルは、チェーン内で同じ機能を持つルールの集合です。

ルール

チェーンは、ネットワーク カードとカーネル プロトコル スタック間の複数のチェックポイントと見なすことができます。異なる種類のメッセージの場合、通過できないチェックポイント、つまり到達不能チェーンに一致するチェックポイントによって処理されます。

  • ネットワーク カードからカーネル プロトコル スタックに送信されたメッセージ: PREROUTING -> INPUT
  • カーネル プロトコル スタックに送信できないネットワーク カードからのメッセージ: PREROUTING -> FORWARD -> POSTROUTING
  • カーネル プロトコル スタックからネットワーク カードに送信されるメッセージ: OUTPUT -> POSTROUTING

表面

管理を容易にするために、チェーン内の同じ機能を持つルールはテーブルに整理されます。iptables では 4 つのテーブルが定義されています。

テーブルの優先順位(高から低の順):raw -> mangle -> nat -> filter

テーブルチェーン関係

チェーンには複数のテーブルを含めることができますが、必ずしもすべてのテーブルが含まれているわけではありません。

データパケットはチェーンに基づいて処理されますが、実際の使用では、ルールを定義するための操作エントリとしてテーブルが使用されます。

iptables

iptables の紹介

Linux のパケット フィルタリング機能、つまり Linux ファイアウォールは、netfilter と iptables という 2 つのコンポーネントで構成されています。

netfilter コンポーネント (カーネル スペースとも呼ばれる) は、カーネルがパケット フィルタリング処理を制御するために使用するルール セットを含むパケット フィルタリング テーブルで構成されるカーネルの一部です。

iptables コンポーネントは、パケット フィルタリング テーブルへのルールの挿入、変更、削除を簡単に行うことができるツール (ユーザー スペースとも呼ばれます) です。

Iptables の基礎

iptables はルールに従って動作することがわかっています。ルールは実際にはネットワーク管理者によって事前に定義された条件です。ルールは通常、「パケット ヘッダーがこのような条件を満たす場合は、パケットをこのように処理する」と定義されます。ルールはカーネル空間のパケット フィルタ テーブルに保存されます。これらのルールは、送信元アドレス、宛先アドレス、トランスポート プロトコル (TCP、UDP、ICMP など)、およびサービス タイプ (HTTP、FTP、SMTP など) を指定します。データ パケットがルールに一致すると、iptables は受け入れ、拒否、ドロップなど、ルールで定義された方法に従ってパケットを処理します。ファイアウォールを構成する主なタスクは、これらのルールを追加、変更、および削除することです。

クライアントがサーバーの Web サービスにアクセスすると、クライアントはネットワーク カードにメッセージを送信します。TCP/IP プロトコル スタックはカーネルの一部です。そのため、クライアントの情報はカーネルの TCP プロトコルを介してユーザー空間の Web サービスに送信されます。このとき、クライアント メッセージのターゲット宛先は、Web サービスが監視するソケット (IP: ポート) です。Web サービスがクライアントの要求に応答する必要がある場合、Web サービスが送信する応答メッセージのターゲット宛先はクライアントです。このとき、Web サービスが監視する IP とポートが発信元になります。netfilter は実際のファイアウォールであると述べました。これはカーネルの一部です。したがって、ファイアウォールで「防火」の目的を達成するには、カーネルにレベルを設定する必要があります。すべての受信メッセージと送信メッセージは、これらのレベルを通過する必要があります。検査後、リリース条件を満たすものだけがリリースされ、ブロック条件を満たすものはブロックする必要があります。その結果、入力レベルと出力レベルが表示されますが、これらのレベルは iptables では「レベル」ではなく「チェーン」と呼ばれます。

Linux netfilter/iptables の知識ポイントの詳細な説明に関するこの記事はこれで終わりです。Linux - netfilter/iptables の関連コンテンツの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

<<:  Vueタイムラインコンポーネントの使い方

>>:  MySQLデッドロック問題の詳細な分析

推薦する

Vueプロジェクトでパラメータジャンプ機能を実装する

ページの説明:​ メインページ: 名前 —> shishengzuotanhuichaxun ...

インタラクティブな視覚化 JS ライブラリ gojs の使い方の紹介とヒント

目次1. gojsの紹介2. Gojsのアプリケーションシナリオ3. gojs を選ぶ理由: 4. ...

Vue はスクロール可能なポップアップウィンドウ効果を実装します

この記事では、スクロール可能なポップアップウィンドウ効果を実現するためのVueの具体的なコードを参考...

Vueはシンプルな虫眼鏡効果を実装します

この記事では、参考までに、簡単な虫眼鏡効果を実現するためのVueの具体的なコードを紹介します。具体的...

jQueryカルーセル機能を実装する方法

この記事では、jQueryカルーセル機能の実装コードを参考までに共有します。具体的な内容は次のとおり...

CocosCreatorプロジェクト構造の仕組みの詳細な説明

目次1. プロジェクトフォルダ構造1. アセットフォルダ2. 図書館3. ローカル設定(ローカル) ...

Linux DHCPサービスの詳細な説明

目次1. DHCP サービス (動的ホスト構成プロトコル) 1. 背景2. 概要3. 利点4.DHC...

Vueのライブ放送機能の詳しい説明

最近、会社でたまたま生放送をしていたのですが、今日は私が遭遇した落とし穴を記録します。会社のサーバー...

ブラウザのURLの前に小さなアイコンを表示する方法

多くのウェブサイトを閲覧すると、ブラウザのアドレスバーの前に小さなアイコンがあり、ブラウザのタブの位...

Samba を使用して Linux サーバー上で共有ファイル サービスを構築する方法

最近、私たちの小さなチームは、サーバー上の共有フォルダーを共有して、全員がパブリックリソースドキュメ...

MySQLデータベースのストアドプロシージャとトランザクションの違い

トランザクションは、複数の SQL ステートメントの原子性、つまり、それらが一緒に完了するか、一緒に...

HTML 文法百科事典_HTML 言語文法百科事典 (必読)

ボリュームラベル、プロパティ名、説明002 <! - - ... - -> コメント00...

アニメーションとトランジションの違い

CSS3アニメーションとJSアニメーションの違いJSはフレームアニメーションを実装しますCSS3はト...

MySQL におけるユニーク制約と NULL の詳細な説明

序文説明を簡略化するために以前に設定した要件は、他のグループから MQ メッセージを受信し、データベ...

VueとElementUIを組み合わせたスキン変更ソリューション

目次前面に書かれた解決策 1: グローバル スタイル オーバーライドを使用する (フロントエンドに共...