すべてのプロダクト
Search
ドキュメントセンター

:FTPの仕組み

最終更新日:Feb 22, 2024

概要

このトピックでは、ファイル転送プロトコル (FTP) の仕組みとFTPの使用方法について説明します。

詳細

1. FTPの概要

FTPはファイル転送プロトコルです。 これは、インターネット上の伝送制御プロトコル /インターネットプロトコル (TCP/IP) 接続を介してコンピュータ間でファイルを送信するために使用される最も初期のプロトコルの1つです。

2. FTPの仕組み

FTPは2つのモードで動作します。

  • アクティブモード

  • パッシブモード

次の図は、FTPの仕組みを示しています。

                                            -------------
                                            |/---------\|
                                            | | ユーザー | | -------
                                            | | インタフェース |<--->| ユーザー |
                                            |\----^----/|    --------
                  ----------                |     |     |
                  |/-----\| FTPコマンド |/---- V ----\|
                  | | サーバー |<---------------->| ユーザー |
                  | | PI | | FTP返信 | | PI | |
                  |\--^---/|                |\----^----/|
                  |   |    |                |     |     |
      ------- |/-- V ---\| データ |/---- V ----\| ---------
      | ファイル |<--->| サーバー |<---------------->| ユーザー |<--->| ファイル |
      | システム | | | DTP | | 接続 | | DTP | | | システム |
      --------    |\------/|                |\---------/|    --------
                  ----------                -------------

                  サーバー-FTP USER-FTP
説明
  • 接続は任意の方向で開始できます。

  • 接続を存続させる必要はありません。

3。 ポート

  • ポート21: FTPサーバーで使用されるリスナーとコントロールポート。

  • ポート20: パッシブモードでは、FTPサーバーはポート20を使用してデータを送信します。

4。 アクティブモード

次の図は、FTPがアクティブモードでどのように動作するかを示します。

ステップ1において、クライアント制御ポートとサーバ制御ポートとの間に接続が確立される。 クライアントはPORT 1027コマンドを送信します。

ステップ2では、サーバは、クライアントの制御ポートにACKメッセージを返す。

ステップ3において、サーバは、サーバ上のポート20からクライアント上のポート1027への接続を開始する。

ステップ4において、クライアントは、ACKメッセージをサーバに返す。

  1. サーバーはポート21でリッスンします。 クライアントは、番号が1024より大きいポートを使用して、サーバ上のポート21にアクセスし、IDを検証し、FTP制御コマンドを送信します。 クライアントは、PORTコマンドを送信して、アクティブモードが使用されることをサーバに通知する。 PORTコマンドには、次の例に示すように、クライアントのIPアドレスとポートが含まれます。

    ポートA1、A2、A3、A4、a1、a2
  2. Wiresharkを使用してパケットをスニフする場合、PORTに続く最初の4セットの10進数はIPアドレスを表し、最後の2セットはポート番号を表します。

    説明

    この例では、ポート番号=193 × 256 + 84である。

  3. サーバは、ポート20を使用して、クライアントがサーバに送信するportコマンドに含まれるクライアントのデータポートに接続し、データを送信する。

  4. アクティブモードでは、クライアントはポート20へのインバウンドパケットを許可する必要があります。 次の表に示すように、サーバーはポート20へのアウトバウンドパケットを許可する必要があります。

    パラメーター

    ポート

    FTP

    ポート21

    ポート20

    サーバー

    受信パケットを許可する

    送信パケットを許可する

    クライアント

    ポート21への送信パケットを許可する

    ポート20へのインバウンドパケットを許可する

5。 パッシブモード

次の図は、パッシブモードでのFTPの動作を示しています。

ステップ1では、クライアントポートとサーバポートとの間に接続が確立される。 クライアントはPASVコマンドを送信します。

ステップ2において、サーバは、パッシブモードA1、A2、A3、A4、a1、aというメッセージを返し、接続をリッスンするために使用されるポートをクライアントに通知する。

ステップ3において、クライアントは、そのデータポートからサーバによって指定されたサーバポートへの接続を開始する。 ステップ4において、サーバは、ACKメッセージをクライアントのデータポートに返す。

  1. サーバーはポート21でリッスンします。 クライアントは、番号が1024より大きいポートを使用して、サーバ上のポート21にアクセスし、IDを検証し、FTP制御コマンドを送信します。 クライアントは、PASVコマンドを送信して、パッシブモードが使用されることをサーバに通知する。

  2. サーバーはコマンドを受信し、次のメッセージを返します。

    227 パッシブモードA1、A2、A3、A4、a1、a2
    に入る
  3. Wiresharkを使用してパケットをスニフする場合、[パッシブモードに入る] に続く最初の4セットの10進数はIPアドレスを表し、最後の2セットはポート番号を表します。 ポート番号の算出方法は、アクティブモードにおける算出式と同様である。

  4. クライアントは、1024より大きい番号のポートを使用して、サーバによって指定されたサーバポートにアクセスし、データを送信する。

  5. パッシブモードでは、サーバーはランダムポートまたはPASVポートへのインバウンドパケットを許可する必要があります。 次の表に示すように、仮想プライベートクラウド (VPC) で、PASVポートのIPアドレスをサーバーのパブリックIPアドレスに設定します。

    パラメーター

    ポート

    FTP

    ポート21

    ポート20

    PASVポート

    サーバー

    受信パケットを許可する

    /

    受信パケットを許可する

    クライアント

    ポート21への送信パケットを許可する

    /

    送信パケットを許可する

6. パッシブモードでのVSFTPD設定

次のコードブロックは、パッシブモードでのVSFTPD設定を示しています。

# パッシブモードを有効にする
pasv_enable=YES
# パッシブモードで使用するポートを指定する
pasv_min_port=4000
pasv_max_port=4002
# パッシブモードで使用するパブリックIPアドレスを指定する
pasv_address=x.x.x.x 

適用範囲

  • VPC