Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

PASVモード(パッシブモード)とは | 意味や読み方など丁寧でわかりやすい用語解説

PASVモード(パッシブモード)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

読み方

日本語表記

パッシブモード (パッシブモード)

英語表記

PASV mode (パッシブモード)

用語解説

PASVモードは、ファイル転送プロトコル(FTP)において、実際のファイルデータやディレクトリリストなどのデータを転送する際に使用されるデータコネクションの確立方式の一つである。FTPは制御コネクションとデータコネクションの二つの独立した接続を使用するが、PASVモードはこのデータコネクションの確立方法を定義する。制御コネクションはコマンドの送受信や認証のために利用され、通常はFTPの標準ポートである21番ポートを使う。一方、データコネクションは、ファイルのアップロードやダウンロード、ディレクトリリストの取得など、実際のデータ転送のために使われる。現代のインターネット環境では、多くのネットワークがセキュリティのためにファイアウォールを導入しており、またネットワークアドレス変換(NAT)が利用されていることも一般的である。このような環境下で従来のFTPのデータ転送方式であるアクティブモード(PORTモード)では問題が発生しやすいため、それを解決するためにPASVモードが広く採用されているのだ。PASVモードは、データコネクションの確立をクライアント側からサーバに対して行うことで、ファイアウォールやNATによる接続障害を回避し、FTPをより安定して利用できるようにする仕組みである。

FTPにおけるデータ転送方式には、アクティブモード(PORTモード)とパッシブモード(PASVモード)の二種類が存在する。まず、アクティブモードの動作と、それが現代のネットワーク環境で抱える課題について説明する。アクティブモードでは、クライアントがFTPサーバに対して制御コネクションを確立した後、データ転送が必要になると、クライアントはPORTコマンドをサーバに送信する。このPORTコマンドには、クライアント自身のIPアドレスと、データ転送用にクライアント側で待ち受けているポート番号が含まれる。サーバはこの情報を受け取ると、そのIPアドレスとポート番号に対して、自身から能動的にデータコネクションを確立しようとする。つまり、データコネクションはサーバからクライアントへ向けて開始される形となる。この方式は、サーバ側とクライアント側の間にファイアウォールやNATが存在しないシンプルなネットワーク構成では問題なく機能する。しかし、多くのクライアント環境では、セキュリティ保護のためにファイアウォールが稼働している。クライアント側のファイアウォールは、外部からの予期せぬ接続要求をブロックするように設定されていることが一般的であり、サーバからクライアントへのデータコネクションの接続要求は「外部からの新しい接続」として認識され、しばしば遮断されてしまう。これにより、データ転送が開始できないという問題が発生するのだ。さらに、クライアントがNATの内側にいる場合、クライアントのローカルIPアドレスをサーバに伝えても、サーバ側からはNATによって変換されたグローバルIPアドレスしか見えず、データコネクションを確立すべき正確な宛先がサーバに伝わらないため、接続に失敗する原因となる。

これらのアクティブモードが抱える問題を解決するために開発されたのがPASVモードである。PASVモードは、データコネクションの確立方法を根本的に変更する。PASVモードの動作は以下の通りだ。まず、クライアントは通常通りFTPサーバに対して制御コネクションを確立し、コマンドのやり取りを開始する。ファイル転送やディレクトリリストの取得が必要になると、クライアントはPORTコマンドの代わりにPASVコマンドをサーバに送信する。このPASVコマンドは、クライアントが「パッシブモードでのデータ転送を希望する」という意思をサーバに伝えるものだ。サーバはPASVコマンドを受け取ると、パッシブモードに入ったことをクライアントに通知するとともに、データ転送用に自身が待ち受けているIPアドレスとポート番号をクライアントに伝える。このとき通知されるIPアドレスは、通常はサーバのグローバルIPアドレスである。クライアントはこのサーバから提供されたIPアドレスとポート番号を利用して、サーバに対して能動的にデータコネクションを確立する。つまり、制御コネクションと同様に、データコネクションの確立もクライアント側からサーバへ向けて開始される形となるのだ。

PASVモードの最大の利点は、ファイアウォールとNATに対する高い親和性である。クライアント側のファイアウォールから見ると、PASVモードにおけるデータコネクションは「内部ネットワークから外部のサーバへの接続」として認識される。これは、ウェブブラウザでウェブサイトを閲覧する際や、電子メールクライアントでメールを送信する際などと同様に、一般的なアウトバウンド(外向き)の接続であり、通常はファイアウォールによって特別な設定なしに許可されるケースが多い。これにより、クライアント側のファイアウォール設定を変更することなく、FTPを利用したデータ転送が可能になる。また、クライアントがNATの内側にいる場合でも、クライアントからサーバへの発信接続はNATによって適切にIPアドレスとポート番号が変換されるため、問題なくデータコネクションを確立できる。サーバ側はクライアントのグローバルIPアドレスからの接続を受け入れればよく、クライアントのネットワーク構成を意識する必要がない。これらの特性により、PASVモードは多様なネットワーク環境下において、FTPによる安定したデータ転送を実現するための標準的な方式として広く普及している。

一方で、PASVモードにはサーバ側の運用において注意すべき点も存在する。PASVモードでは、サーバ側がデータコネクション用に複数のポートを開放して待ち受ける必要がある。FTPサーバソフトウェアは、PASVモード用に特定のポート範囲(例として、49152番から65535番までなど、一時的な利用を想定したエフェメラルポートの範囲)を指定し、その範囲内のいずれかのポートでクライアントからのデータコネクションの接続を待ち受けるように設定されることが一般的だ。そのため、サーバ側のファイアウォールでは、これらの指定されたポート範囲からのインバウンド(内向き)接続を許可する設定が必要となる。これは、不必要なポートを開放しておくことがセキュリティリスクにつながる可能性をはらんでいるため、サーバの管理者には、パッシブポートの範囲を適切に設定し、不要なポートの開放を避けることで、セキュリティリスクを最小限に抑える運用が求められる。しかし、これらの考慮事項を踏まえても、PASVモードが提供する柔軟性と利便性は大きく、現代のインターネット環境におけるファイル転送の重要な基盤技術であることに変わりはない。システムエンジニアを目指す者にとって、このPASVモードの仕組みとそれが解決するネットワーク上の課題を理解することは、非常に重要な基礎知識となる。

関連コンテンツ

PASVモード(パッシブモード)とは | 意味や読み方など丁寧でわかりやすい用語解説 | いっしー@Webエンジニア