ウェブサイト検索

Linux で iptables を使用してポートを転送する方法?


導入

ポート フォワーディングは、特定のポートを転送することによって、ネットワーク システムがネットワークの外部からリソースにアクセスできるようにする技術です。これは、中間デバイス (ルーターなど) が指定されたポートで受信接続を受け入れ、トラフィックをネットワーク上の内部デバイスにリダイレクトするプロセスです。その結果、リモート デバイスがローカル ネットワーク内のデバイスで実行されているサービスに接続して通信できるようになります。

実際には、自宅のコンピュータから Web サーバーを実行したい場合、ホーム ネットワークの外部から接続しようとする人は、あなたのパブリック IP アドレスを知っていて、ポート 80 (HTTP) またはポート 443 経由でリクエストを送信する必要があることを意味します。 (HTTPS)。ただし、ポート転送が適切に構成されていないと、受信接続要求はルーターのファイアウォール保護によってブロックされるため、自宅のコンピューターに届きません。

Iptables の概要

iptables は、Linux システムで利用できるいくつかのファイアウォール ソリューションの 1 つです。カーネル レベルで動作し、ステートフル パケット インスペクション、NAT (ネットワーク アドレス変換)、接続追跡などの高度な機能を備えた堅牢なパケット フィルタリング機能を提供します。

iptables は主に、特定のプロトコル、ポート、または IP アドレスのブロックまたは許可など、送受信ネットワーク トラフィックを制御するために使用されます。 iptables ツールは、事前定義された一連のチェーンを使用して、一連のルールに照らして受信トラフィックを評価します。各ルールは、トラフィックを許可または拒否するために満たす必要がある特定の条件を定義します。

チェーンは、ルールで指定された基準に基づいて、パケットのフィルタリングや転送のためのパケットの変更など、さまざまなアクションを実行するさまざまなテーブルを含む階層的な方法で編成されています。次のセクションでは、Linux システムで iptables を使用してポート転送を構成する方法を説明します。

Iptables を理解する

iptablesとは何ですか?

iptables は、ほとんどの Linux ディストリビューションにプレインストールされている強力なファイアウォール ユーティリティです。これは、ネットワーク インターフェイスを通過するデータのパケットを検査し、ユーザーが定義したルールに基づいて決定を下すことによって機能します。

これらのルールは、トラフィックを許可するかブロックするか、または受信トラフィックを特定のポートまたはアドレスに転送するかを決定するために使用されます。簡単に言うと、iptables はコンピューターとネットワークの残りの部分の間のフィルターとして機能します。

特定の種類のトラフィックのみをシステムに許可し、その他の不要なトラフィックをすべてブロックするように構成できます。これは、パブリックにアクセスできる必要があると同時に、悪意のある攻撃から保護する必要があるサーバーにとって特に重要です。

どのように機能するのでしょうか?

iptables は、受信トラフィックと送信トラフィックの処理方法を定義するルールのチェーンをいくつか作成することによって機能します。これらのチェーンは基本的に、送信元 IP アドレス、宛先 IP アドレス、プロトコル タイプ、ポート番号などの属性に応じてパケットを処理する方法を決定する一連のルールです。

受信パケットがネットワーク インターフェイスに到着すると、iptables は一致するものが見つかるまで、各チェーンの各ルールに対してその属性を順番にチェックします。一致するものが見つからない場合、iptables の構成に応じてパケットはドロップまたは拒否されます。

iptables の基本コマンド

iptables の使用を開始するには、ルールを構成するための基本的なコマンドをいくつか知っておく必要があります-

  • iptables -L - 現在定義されているすべてのチェーンをリストします。

  • iptables -F - すべてのチェーンからすべてのルールをフラッシュ (削除) します。

  • iptables - チェーン ルール - 既存のチェーンの最後に新しいルールを追加します。

  • iptables -D チェーン ルール - 既存のチェーンからルールを削除します。

  • iptables -P チェーン ターゲット - 特定のチェーンのデフォルト ポリシー (受け入れ、ドロップ、または拒否) を設定します。

これらは、iptables で使用できる多くのコマンドのうちのほんの一部です。これらの基本を学ぶことで、この強力なファイアウォール ユーティリティをマスターできるようになります。

Iptables によるポート転送

転送するポートの選択

iptables を使用して Linux でポート転送を設定する前に、転送するポートを決定することが重要です。ポート転送により、特定のポート上の受信トラフィックを別の内部ネットワーク アドレスにリダイレクトできます。

これは、ローカル ネットワーク上でサーバーを実行しているかサービスをホストしていて、外部ユーザーがそれにアクセスできるようにする場合に便利です。一般的に転送されるポートには、Web トラフィック用に 80、SSH 用に 22、リモート デスクトップ プロトコル (RDP) 用に 3389 が含まれます。

ポート転送用の iptables ルールの設定

転送するポートを決定したら、ポート転送用の iptables ルールの設定を開始できます。これを行うには、NAT テーブルに新しいチェーンを作成する必要があります。

ポート転送用の新しいチェーンの作成

ポート転送用の新しいチェーンを作成するには、次のコマンドを使用します-

sudo iptables -t nat -N 

これにより、指定された名前で NAT テーブルに新しいチェーンが作成されます。

NATテーブルの構成

新しいチェーンを作成した後、新しいチェーンをチェーンの1つとして追加してNATテーブルを構成する必要があります-

sudo iptables -t nat -A PREROUTING -j 

これにより、新しく作成したチェーンが NAT テーブルの PREROUTING ルールのチェーンの 1 つとして追加されます。

ポートを転送するためのルールの追加

新しいチェーンをセットアップし、それに応じて NAT テーブルを構成したので、実際にポート転送を行うルールを追加できます。これを行うには3つの方法があります-

a) 単一ポートの転送:

1つの特定のポートの受信トラフィックを内部IPアドレスとポートに転送するには、次のコマンドを使用します-

sudo iptables -t nat -A -p --dport -j DNAT --to-destination 

b) ポートの転送範囲:

特定のポート範囲の受信トラフィックの範囲を内部IPアドレスとポートに転送するには、次のコマンドを使用します-

sudo iptables -t nat -A -p --dport : -j DNAT --to-destination 

c) 複数のポートを一度に転送します。

複数の特定のポートの受信トラフィックを内部 IP アドレスとポートに転送するには、転送するポートごとに次のコマンドを使用します-

sudo iptables -t nat -A -p --dport ,,...-j DNAT --to-destination 

Linux で iptables を使用してポート転送を設定することは、ローカル ネットワーク上でサーバーを実行したりサービスをホストしたりする場合に不可欠です。

結論

この記事では、ポート転送の基本と、Linux で iptables を使用してポートを転送する方法について説明しました。 iptables とその基本コマンドの概要を説明し、続いて iptables を使用してポート転送を設定する方法に関する詳細なガイドを提供しました。 iptables でポート転送を設定するときに発生する可能性のある一般的な問題と、それらを解決するためのトラブルシューティングのヒントについて説明しました。

ポート転送は、インターネットからの受信トラフィックがネットワーク上の特定のデバイスまたはサービスに到達できるようにする、ネットワークの重要な側面です。このプロセスは、リモート アクセス、ゲーム、ファイル共有、Web ホスティングなどの多くの重要なアプリケーションにとって重要です。ネットワークを効果的に管理するには、Linux で iptables を使用してポートを転送する方法を理解することが不可欠です。

iptables は、ネットワーク セキュリティの詳細設定を構成できる強力なファイアウォール ツールです。その仕組みと機能を理解することで、ネットワーク内のデバイスまたはサービス間でトラフィックがスムーズに流れるようにしながら、ネットワークのセキュリティ体制を向上させることができます。

さらに、ネットワーク インフラストラクチャまたはアプリケーションの要件に変更があった場合は、必ずポート転送構成を更新する必要があることに注意してください。この記事で概説されているガイドラインに従い、時間をかけて徐々に実践することで、ユーザーは iptables を構成し、ネットワークの安全性と信頼性を高めるために必要なスキルを身に付けることができます。