FTP

FTP ポート ガイド: ポート 20 および 21 でのファイル転送

FTP 制御とデータ接続がどのように機能するか、パッシブ ポート範囲が重要な理由、および新しいファイル転送ワークフローでは SFTP または FTPS が通常より安全である理由を理解します。

既定ポート
20/21
プロトコル
TCP
主な用途
レガシーファイル転送

FTPポートとは何ですか?

FTP (ファイル転送プロトコル) は、ファイルをアップロードおよびダウンロードするための従来のプロトコルです。 FTP は通常、制御接続に TCP ポート 21 を使用します。アクティブな FTP では、サーバーからのデータに TCP ポート 20 が使用される場合があります。パッシブ FTP では、サーバーは設定されたパッシブ データ ポート範囲を開きます。

  • ポート 21 は FTP 制御ポートです

    クライアントは TCP 21 に接続して、認証、ディレクトリの一覧表示、アップロードの要求、ダウンロードの要求、およびデータ接続を開く方法のネゴシエーションを行います。

  • データ ポートはアクティブ モードかパッシブ モードに依存します

    FTP は、ファイル データがコマンドとは別の接続を介して送信されることが多いため、最新のプロトコルよりもファイアウォールの適用が困難です。

FTP の仕組み

FTP はコマンドをファイル データから分離します。クライアントは TCP 21 でサーバーに接続し、ログインして、リスト、取得、保存、名前変更、削除などのコマンドを送信します。ファイルのリストと転送には別のデータ接続が使用されます。

この設計は古いネットワークでは理にかなっていましたが、NAT、ファイアウォール、クラウド セキュリティ グループで問題が発生します。ポート チェッカーはポート 21 が到達可能かどうかを示しますが、ファイル転送が成功するかどうかは、許可されているデータ チャネルにも依存します。

アクティブ FTP とパッシブ FTP の比較

アクティブな FTP では、クライアントはサーバーの制御ポートに接続し、サーバーはクライアントへのデータ接続を開きます。その逆接続は、多くの場合、NAT または厳格なクライアント ファイアウォールを通過して失敗します。

パッシブ FTP では、クライアントはサーバーへの制御接続とデータ接続の両方を開きます。パッシブ モードはインターネットに接続された FTP でより一般的ですが、サーバーは定義されたパッシブ ポート範囲を公開する必要があり、ファイアウォールはその範囲を許可する必要があります。

FTP 対 FTPS 対 SFTP

プレーン FTP は、ユーザー名、パスワード、コマンド、またはファイルの内容を暗号化しません。 FTPS は FTP に TLS を追加しますが、FTP 制御とデータ チャネル モデルは引き続き維持されます。 SFTP は異なります。SFTP は SSH 経由 (通常は TCP 22 上) で実行され、FTP ポートを使用しません。

新しい展開の場合、多くの場合、SFTP の方がファイアウォールと操作が簡単です。パートナーの互換性のために FTPS が必要になる場合があります。プレーン FTP は、分離されたレガシー ワークフローに限定するか、可能であれば置き換える必要があります。

FTP を開く必要がある場合

従来のパートナー、デバイス、アプリケーション、またはワークフローが SFTP、FTPS、HTTPS アップロード、オブジェクト ストレージ、またはマネージド ファイル転送サービスを使用できない場合にのみ、FTP を開きます。一般的な例には、古い EDI フィード、スキャナ、組み込みデバイス、ベンダー統合などがあります。

意図的に公開ファイルを提供し、アップロード制御が厳格でない限り、公開匿名 FTP は避けてください。インターネットに公開された書き込み可能な FTP は、マルウェアのステージング、データの盗難、ストレージの悪用に頻繁に悪用されます。

FTPを開く前に

FTP を許可する前に、サーバーがアクティブ モード、パッシブ モード、またはその両方を使用するかどうかを決定します。パッシブ ポート範囲、外部 IP アドレス、ユーザー分離モデル、chroot またはjail の動作、ロギング、クォータ、および TLS が必要かどうかを定義します。

ポート 21 に対する TCP チェックでは、制御パスのみが確認されます。パッシブ範囲、NAT、TLS インスペクション、ファイルシステムのアクセス許可によって転送が中断される可能性があるため、ネットワークの外側から実際のアップロードとダウンロードをテストしてください。

Windows、Linux、クラウドサーバーで FTP を有効にする方法

Windows Server では、IIS FTP は FTP または FTPS を提供できます。サーバーが NAT の背後にある場合は、ユーザー分離、TLS ポリシー、パッシブ ポート範囲、ファイアウォール ルール、および外部 IP 設定を構成します。

Linux では、vsftpd、ProFTPD、Pure-FTPd などのサーバーが一般的です。ローカル ユーザーまたは仮想ユーザー、chroot 動作、パッシブ ポート範囲、FTPS を使用する場合の TLS 証明書、TCP 21 とデータ ポートのホスト ファイアウォール ルールを構成します。

クラウド サーバーでは、可能な限り必要なソースのみを許可します。クラウド セキュリティ グループとホスト ファイアウォールの TCP 21 とパッシブ範囲を開きます。狭いパッシブ範囲を定義できない場合、FTP をきれいに保護することは困難になります。

  • 制御パス: クライアントは TCP 21 に到達する必要があります。
  • データ パス: パッシブ FTP にはサーバー側のパッシブ ポート範囲が必要です。アクティブな FTP では、サーバーからクライアントへの接続が必要になる場合があります。
  • ID レイヤー: 名前付きアカウント、最小権限、chroot またはユーザー分離、および強力な資格情報を使用します。
  • 移行層: FTP が残る理由を文書化し、SFTP、FTPS、HTTPS アップロード、またはマネージド転送への移行を計画します。

FTP ポートをテストする方法

TCP 21 の外部ポート チェックから開始します。制御ポートが開いている場合は、ネットワークの外側から実際の FTP クライアントを使用してテストします。必要に応じて、ログイン、ディレクトリのリスト、アップロード、ダウンロード、名前変更、および削除の動作を確認します。

ログインは機能するが、ディレクトリのリストまたは転送がハングする場合は、パッシブ モード設定、パッシブ ポート範囲、外部 IP アドバタイズメント、NAT、クラウド セキュリティ グループ、および TLS 設定を調べてください。 FTP 障害の多くは、ポート 21 の障害ではなく、データ チャネルの障害です。

FTP 用のテスト ポート 21

一般的な FTP トラブルシューティングのケース

ポート 21 が閉じられている場合、FTP サービスが停止するか、プライベート インターフェイスにバインドされるか、ホスト ファイアウォールによってブロックされるか、クラウド セキュリティ グループによって拒否される可能性があります。ポート 21 が開いているのに転送が失敗する場合は、最初にパッシブ ポートまたは NAT を確認してください。

認証が失敗した場合は、ユーザー名の形式、パスワード ポリシー、アカウントのロックアウト、chroot 権限、ファイル システムの所有権、TLS 要件、およびサーバー ログを検査します。一部のクライアントのみが失敗する場合は、アクティブ モードとパッシブ モード、およびクライアントが制限的 NAT の背後にあるかどうかを比較します。

FTP のセキュリティ チェックリスト

認証情報やプライベート ファイルにはプレーン FTP を使用しないでください。可能であれば FTPS または SFTP を使用し、匿名アップロードを無効にし、ソース IP を制限し、ユーザーを隔離し、クォータを設定し、詳細な転送ログを保存します。

FTP をパブリックにしておく必要がある場合は、サーバーにパッチを適用し、パッシブ ポートを制限し、失敗したログインとアップロード ボリュームを監視し、アップロードされたファイルをスキャンし、古いアカウントを削除します。 FTP を、所有者と移行計画を持つ従来の例外として扱います。

よくある質問

FTP はどのポートを使用しますか?

FTP は制御接続に TCP ポート 21 を使用します。アクティブ FTP はサーバー側のデータ接続に TCP 20 を使用できますが、パッシブ FTP は設定されたサーバー側のパッシブ ポート範囲を使用します。

FTP は安全ですか?

プレーン FTP は認証情報やファイルの内容を暗号化しないため、安全ではありません。機密性の高い転送には SFTP または FTPS を使用します。

FTP ポート 21 が開いているのに転送が失敗するのはなぜですか?

データ接続がブロックされている間も、制御接続は機能する可能性があります。パッシブ モード、パッシブ ポート範囲、NAT、外部 IP 設定、ファイアウォール、および TLS ポリシーを確認します。

SFTP は FTP と同じですか?

いいえ。SFTP は、SSH (通常は TCP 22) 上で実行される別のプロトコルです。FTP はポート 21 と個別のデータ接続を使用します。