FTPパッシブモードで、単一の既知のポートではなく、エフェメラルポートの範囲を使用するのはなぜですか?[閉まっている]


9

FTPパッシブモードで、サーバーがランダムなポート番号をクライアントに送信し、そこでデータチャネルを確立できることを読みました。
次に、クライアントは、ランダムなポート番号からサーバーによって送信されたこのポート番号へのデータチャネルを確立します。

私の質問は、サーバーがランダムなポート番号をクライアントに送信する理由です。クライアントがサーバー側のポート番号20へのデータチャネルを直接確立できないのはなぜですか?


2
これは外れていると思った。

残念ながら、OSIレイヤー4より上のプロトコルに関する質問はここではトピックから外れています。
Ron Maupin

回答:


13

これが、FTPプロトコルがパッシブモードで動作するように設計された方法です。このモデルが他のプロトコルで再び繰り返されたとは思わないので、おそらくそれは良い考えではありませんでした(FTPアクティブモードについてはさらにそうです)。


データ接続ポートには、プロトコルはありません。サーバーが認識しているのは、その接続で情報を運ぶ唯一のものは、接続先のポート番号だけです。

毎回同じポートに接続すると、サーバーは接続先のファイルを判別できなくなります。ポート番号は、制御接続の転送要求とデータ接続の間のリンクとして機能します。ポート番号は、PASVコマンドへの応答に含まれています。

2つのクライアントが同時に転送を要求した場合、サーバーが単一のポートで接続を受け入れると、サーバーは転送するファイルを指定できません。もちろん、サーバーは決定にクライアントIPを使用できます(実際には、多くのFTPサーバーは、クライアントIPがセキュリティのために制御接続で使用されているIPと一致することを検証します)。

しかし、これはうまくいきません:

  • 同じマシンからの複数の接続(ほとんどのFTPクライアントは並列転送/キューをサポートしており、実際に1台のマシンで複数の異なるFTPクライアントを実行できます)。
  • 同じ(企業)ネットワーク内の異なるマシンからの接続。これらは同じ外部IPを持っているため。

なぜFTPパッシブモードでは1つのポートだけではなくポート範囲が必要なのかに対する私の回答から部分的にコピーされましたか?サーバー障害時。


サーバー側で使用するポート番号も20にすることができますよね?すべての回答で、サーバー側のポート番号は20以外です
Zephyr

私の答えは、ポート番号が接続/転送ごとに一意でなければならない理由を説明しています。それは20に固定することができないので
マーティンPrikryl

はい、それは修正することはできませんが、そのうちの1つは20です。
Zephyr

1
はい。ただし、他のすべてのポートは1024を超える必要があります。また、実用的な観点からは、連続するポート範囲の方が適しています。ほとんどのファイアウォール/ NATは、範囲ベースのルールをサポートしています。分離ポート20に特別なルールを追加したくない-また、ほとんどのFTPサーバーは、連続した範囲のポートのみをサポートしています。
Martin Prikryl 2017

1
@ Zac67いいえ、クライアントはパッシブモードでファイルを取得するために(制御接続以外の)新しい接続を開くため、サーバーはソース(クライアント)ポート番号を使用してクライアント接続を区別できません。さらに、NATは多くの場合、クライアントのソースポート(またはIPアドレス、あるいはその両方)を壊し、そのアプローチを実際には使用できなくします。
jjmontes 2017

4

通常、サーバーはランダムなポートを送信しませんが、定義された(インストールによって)範囲/プールから空きポートを送信します-クライアントの場合、これはランダムに見えます。このポートは、範囲を定義する必要があるファイアウォールで転送する必要があります。

残念ながら、FTPは古いものです。おそらく、古代のサーバーは、ポートを除いて、複数のクライアントのデータセッションを区別できませんでした。一般に、すべてが1つのソケットセッション内で適切にパケット化される最新のプロトコルに移行することをお勧めします。


だから、20でもいいの?すべてのウェブサイトでのデータのためのサーバのポート番号が20以外である
ゼファー

20は、アクティブFTPのサーバーからの発信ポートです(これはあまり使用されていません)。
Zac67 2017

古代のサーバーに問題があったのではなく、プロトコル設計者が未だに、プリミティブなリクエスト/レスポンスよりも複雑なことを行うための最良の方法を見つけようとしていたからです。
マーク
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.