FTPのアクティブモードとパッシブモードの違いは、データ転送の接続方向
普段あまり意識することはないかもしれませんが、FTPには2つのモードがあります。アクティブモードとパッシブモードです。パッシブモードはPASVモードと言えば、馴染みがある人が多いかもしれません。
今回は、FTPのアクティブモードとパッシブモードの違いについて簡単に説明してみます。
FTPで利用する21番ポートと20番ポートの違い
一般的に、FTPでは21番ポートと20番ポートを利用します。
21番ポートでは、制御用のコントロールコネクションを張ります。コントロールコネクションでは、ログインやファイル転送方法などのやり取りを行います。
20番ポートでは、データ転送用のデータコネクションを張ります。データコネクションでは、伝送されるデータの送受信を行います。
21番で指示を出して、20番でデータのやり取りを行っているのです。
アクティブモードとパッシブモードの違い
アクティブとパッシブの違いは何でしょうか?違いは、データ転送用のデータコネクションを確立する方向の違いです。
- アクティブモード:サーバからクライアントに対してデータコネクション確立
- パッシブモード:クライアントからサーバに対してコネクション確立
下の図を見ればイメージがわくのではないでしょうか。
クライアントから見たポイント
開発環境などからFTPサーバへ接続する場合は、パッシブ(PASV)モードを利用することが多いかと思います。
理由としては、ファイアウォールの存在が考えられます。一般的なファイアウォールポリシーとしては、外部からのアクセスは細かく制御しますが、内部から外部へのアクセスは緩いことが多いです。
アクティブモードで利用する場合、1024/TCP以上の大きなレンジでクライアント側のファイアウォールを開放する必要があります。
それに対してパッシブモードであれば、内部から外部へのアクセスのみなのでファイアウォールの影響を受ける可能性が減ることになります。
サーバから見たポイント
FTPサーバを提供する場合は、アクティブモードのみで運用することが好ましいです。
こちらも理由は、ファイアウォールの存在です。パッシブモードを利用する場合は、データコネクションを受け付けるために1024/TCP以上の大きなレンジでファイアウォールを開放する必要があります。
アクティブモードであれば、21/TCPと20/TCPのみの解放で済みますので、セキュリティ的に好ましい状態になります。
まとめ
アクティブモードとパッシブモードの違いは、データコネクションを確立するための方向の違いでした。
それぞれセキュリティ的にメリットデメリットがありますので、状況に合わせて上手に使えるといいですね。
なおべりー様
写真を見ますとクライアント側は、アクティブモード、パッシブモードともランダムなポートを使用するのでしょうか。何か良く分かりませんでした。