FTPのポート:ファイル転送で使われるポート番号
FTPとそれに使われるポートにおける内容、使用方法、リスク、回避方法について、知っておくべき内容をご説明します。
船が貨物を積み込むようなあの「ポート」ではなく、コンピュータが直面するネットワークトラフィックを整理するのに役立つ、よりクールでマニアックなバーチャルの「ポート」について、本記事で見ていきましょう。
ポートとは
貨物船とは異なり、コンピューティングの世界では、ポートはコンピュータやサーバーの接続とデータ転送を可能にする仮想通信のエンドポイントであり、それによってデータを正しい方向に推進することができるようになります。インターネットなどのネットワークを利用して通信を行うアプリケーションやプロセスにはすべて、コンピュータ上でネットワークを利用するアプリケーションを識別するためのポート番号が標準的に設定されています。
ポート番号は、主にTCP(Transmission Control Protocol)およびUDP(User Datagram Protocol)ベースのネットワークで使われ、各ポート番号は特定のサービスを示し、各ホストは1つの IP アドレスに関連する65,535個のポートを持つことができます。アプリケーションはポート番号を変更することができますが、例えば Telnet は23番、HTTP は80番、SMTP は25番、FTP は21番というように特定のデフォルト番号があり、これは非常に一般的で、滅多に変更されません。
FTP とは
FTP(ファイル転送プロトコル)は、1970年代初頭に登場したコンピュータ間のファイル転送を目的とした通信プロトコルです。具体的には、クライアントとサーバー間のネットワーク上でのファイルの直接転送をサポートしています。
FTPのポート
FTPは、情報転送のために、コマンドと応答に使う『情報制御ポート』と、ファイルアップロードとダウンロードに使う『データポート』という2つの個別のチャンネルを利用します。デフォルトでは、制御ポートは TCPの21番ポートで、データポートはまあ、複雑なんですよこれが。。。
クライアントからFTPポート接続を実行するには、ユーザーはFTPクライアントの認証フィールドに「サーバー名」も「ログイン認証情報」も入力が必要です。その後、FTPサーバーの21番ポートに対して FTP 接続が確立されます。
その後、FTP セッションモードに応じて、一組のポート間の別の接続がデータ転送に使用されます。アクティブモードでは、サーバーは20番ポートからクライアントの制御ポート+1への接続を開きますが、アクティブモードは、ファイアウォールとの互換性がなく、NAT(Network Address Translation)の背後にあるクライアントへのアクセス要件があるため、ほとんど使われていません。
パッシブモードを使用する場合、クライアントはデータ用にどのサーバーポートに接続するかを尋ね、そのポートに別の接続を作成しますが、パッシブモードでは、サーバーのデータポートがランダムになります。
リスク
先に述べたように、FTPは、ネットワークのセキュリティが重要視されていなかった時代にデザインされました。この故、FTPがファイルのダウンロード前にユーザ認証が不要である匿名サクセスが可能なことや、FTP プロトコルを有線で使用する際に何も暗号化されません。
また、古い FTP は二重チャンネルが発明される前に作られたため、上記で説明したようにポートを2つ利用します。そのため、データチャネルの開放を可能にするためには、ファイアウォールのルールやNATの特殊な方法での設定が必要であり、ネットワークの強化が大変でした。
より安全な方法の選択
今日、ウェブ上で情報を転送する際に、セキュリティはもはや軽視できないものとなっています。顧客情報、財務情報、EDI(電子データ交換)文書など、あらゆる種類のデータを含むファイルであっても、重要な資産はサイバー犯罪から守らなければいけません。そこで、SFTP の出番です。
制御とデータ転送の両方に単一のポート接続(デフォルトでは22番ポート)が使われる SFTP は、クライアントとサーバー間の通信を暗号化することによって、スニッフィングや中間者攻撃からデータや認証情報を保護するように構築されています。さらに暗号化だけでなく、認証処理もSSH(セキュアシェル)に依存し、秘密鍵や公開鍵、ユーザーやパスワード認証のオプションが用意されています。
SFTPや、SFTPとFTPのプロトコルの違いについては、こちらの記事をご覧ください。