パッシブモード
Passive Mode
FTP通信などで、クライアント側からデータ転送用の接続を開始する設定のこと。ファイアウォールなどのセキュリティ制限がある環境でも、外部からの接続を待たずに通信を確立できる仕組みです。
🐾 猫で例えると?
ハンモックで待つアメショを、今回はFTPサーバーに見立てます。クライアントが「受け取る準備をして」と頼むと、サーバーが接続を受け付ける番号(ポート)を知らせ、クライアントのほうからつなぎに来ます。「受け身」なのはデータ接続を待つサーバー側です。どちらの立場の言葉かを決めると混乱しません。
💻 IT現場における「パッシブモード」とは?
FTPは、制御用の接続とデータ転送用の接続の2つを使い分けます。通常の「アクティブモード」ではサーバー側からクライアントに接続しに行きますが、これだとクライアント側のファイアウォールにブロックされてしまうことが多々あります。
パッシブモードでは、クライアントがPASVやEPSVでデータ接続の宛先を尋ね、サーバーが示すポートへ接続します。クライアント側で外部からの新規接続を受ける必要を減らせますが、それ自体が暗号化や安全性を追加する機能ではありません。
⚠️ パッシブモードの仕組みと注意点
FTPを使う環境では、NATやファイアウォールとの関係からパッシブモードが適することがあります。ただし、サーバー側の待受ポート、外部へ通知するアドレス、経路の設定が合わなければ通信できません。ログインできるのに一覧取得だけ止まるときは、制御接続とデータ接続を分けて確認します。
接続先のポート制限に注意
注意点としては、パッシブモードではサーバー側がデータ転送用にランダムなポートを使用するため、サーバー側のファイアウォールでそのポート範囲を開放しておく必要があります。
# FTPコマンド例(パッシブモードへの切り替え)
ftp> passive
Passive mode on. passive という切替コマンドはクライアント実装に依存し、すべてのOSで使えるわけではありません。利用ソフトの設定を確認しましょう。なお、FTPSはFTPをTLSで保護する方式、SFTPはSSHを使う別のプロトコルで、SFTPにはこのアクティブ/パッシブの区別はありません。
🛠️ パッシブモードを賢く使うためのポイント
- ファイアウォールの理解: なぜ接続が失敗するのか、相手側と自分側のどちらがアクセスを拒否しているかをパッシブモードの概念で判断しましょう。
- 設定の統一: サーバーとクライアントの両方がパッシブモードを許可していないと通信できないため、環境構築時の構成を確認しましょう。
- Passive Port Range: サーバー側で使うパッシブモード用のポート範囲を決め、ファイアウォールやNATの設定と一致させます。制御接続とは別に、データ接続が通るかも確認します。
じっと待つアメショは受け身のイメージですが、FTPのパッシブモードではデータ接続を始めるのはクライアント側です。名前から動きを推測するだけでなく、どちらがどの接続を開始するかを図にすると、ファイアウォールの設定も整理しやすくなります。