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デッドロック問題の詳細な分析

推薦する

CSS3で跳ねるボールのアニメーションを実現

私は通常、大手ウェブサイトの特別ページや製品リリースページを訪問するのが好きです。なぜなら、たくさん...

ドメイン名を指定されたポートに転送するようにNginxを設定する方法

/usr/local/nginx/conf と入力する sudo cd /usr/local/ngi...

フロントエンドでよく使われるjs関数メソッド

目次1. メール2. 携帯電話番号3. 電話番号4. URLアドレスですか? 5. 文字列ですか? ...

アプレットにおけるwx.getUserProfileインターフェースの具体的な使用

最近、WeChatミニプログラムは、監査ミニプログラムのwx.loginおよびwx.getUserI...

MySQL でデータをクエリし、条件に基づいて別のテーブルに更新する方法の例

この記事では、MySQL が条件に基づいてデータをクエリし、別のテーブルに更新する方法を例を使用して...

JavaScript ドラッグタイム ドラッグケースの詳細な説明

目次DragEvent インターフェースデータ転送インターフェースの概要DataTransfer の...

Vueルーティング相対パスジャンプメソッド

目次Vueルーティング相対パスジャンプ1. 属性の追加2.router.resolveメソッドVue...

純粋な CSS を使用して脈動するローダー効果のソースコードを作成する

効果プレビュー右側の「クリックしてプレビュー」ボタンを押すと現在のページでプレビューが表示され、リン...

jwtを使用してノードによって生成されたトークンをどこに保存するかについての簡単な説明

A: 通常はクライアントに保存されます。 jwt または JSON Web Token は、リクエス...

js を使用してファイルが UTF-8 でエンコードされているかどうかを判断する方法

従来の解決策FileReader を使用して UTF-8 形式のファイルを読み取り、ファイルの内容に...

win10 mysql 5.6.35 winx64 無料インストールバージョン設定チュートリアル

mysql 5.6.35 winx64無料インストールバージョン構成チュートリアルwin10、具体的...

jsはタイトルと説明のキーワードを検出し、見つかった場合は置換するか他のページにジャンプします。

キーワード 一般タイトルには、クラック、キー、シリアル番号、キージェネレータなどの単語を含めることは...

Linux でシステム ディスクを初期化した後にデータ ディスクを再マウントする方法

Linuxインスタンスでシステムディスクを初期化した後、データディスクを再マウントするLinux イ...

ウェブページ作成時のHTMLタグの使用に注意してください

この記事では、Web ページの作成を学習するときに注意すべき HTML タグに関するいくつかの問題を...

Echart Bar の 2 列チャート スタイルの最も完全な詳細な説明

目次序文インストールと設定1. Echartsをインストールする2. Echartsをグローバルに導...