FTPSとそれが利用するポートについて、それが何であるか、どのように利用されるか、どのようなリスクがあるか、さらに代替プロトコルがあるかについて、本記事で見ていきましょう。
ワイン愛好家の皆さん、よろしいですか。がっかりさせて申し訳ありませんが、今回は美味しいポートワインについては触れません。本記事は、コンピュータネットワークとデータ転送プロトコルに関するものです。もし、コンピューターに興味があるのなら、まさにうってつけの場所ですよ。
ポートとは
ポートとは、TCP(Transmission Control Protocol)および UDP(User Datagram Protocol)ベースのネットワークにおいて、コンピュータとサーバーを接続し、その間のデータ転送を可能にする仮想通信のエンドポイントのことです。特定のサーバーへの接続には、【そのサーバーの IP アドレス】と【接続先のポート】が必要であり、IPアドレスは、特定のサーバーを識別して接続するのに必要ですが、ポート番号は、通信しようとしているサーバー上のどのアプリケーションやサービスかを示すのに使われます。
各ポートには、特定のサービスを示す異なる番号が割り当てられており、ホストは IP アドレスごとに0~65,535のポートをリッスンすることができます。アプリケーションによっては、ポート番号を変更するものもありますが、通常は変更されないデフォルトのポートがいくつかあり、例えば、HTTPの80番ポート、SMTPの25番ポート、FTPの21番ポートなどが挙げられます。
FTPSとは
FTPSは、「FTP over SSL」や「セキュリティ付 FTP」とも呼ばれ、元のプロトコルには変更せず、古いFTPにセキュリティ層を付与して実現した安全なファイル転送プロトコルです。例えるなら、HTTPSがHTTPに当てはまるように、FTPSもFTPになります。
FTPS を使う場合、データは「TLS(Transport Layer Security)プロトコル」または現在では廃止されている「SSL(Secure Sockets Layer)プロトコル」を使ってネットワークを通過し、どちらのプロトコルも、サーバーとクライアントの間を行き来するデータを暗号化する役割を担っています。
FTPS ポート
FTPSは、FTP セッションに暗号化を適用する方法を2つ提供し、その方法には別々のポートが使われます。
最初の方法は『暗黙的方法』と呼ばれ、クライアントは暗号化されたセッションのみを提供するサーバーの990番ポートに接続し、ログイン後に、サーバーのモードに応じて他のポートでデータのための別のチャネルが開かれます。
一方、『明示的方法』を使う場合、クライアントは通常のFTPポート(21番ポート)に接続し、このチャネルでの通信を暗号化するためにSSLを有効にするよう求め、認証プロセスを継続し、データチャネルの開設も進めます。
より詳しく知りたい場合は、こちらをご覧ください。
データのアップロードやダウンロードにどのポートが使われるかについては、サーバーのモードによって異なります。アクティブモードを使用する場合、暗黙的方法ではサーバーの989番ポートから、明示的方法では20番ポートからクライアントの制御ポート+1 への接続がサーバーによって開始されます。ファイアウォールとの相性が悪く、NAT(Network Address Translation)の内側にいるクライアントへのアクセスが必要になるため、アクティブモードはほとんど使われません。パッシブモードでは、サーバは広い範囲内のランダムなポートを割り当て、クライアントにそれに接続するように指示します。
複数ポート開放のリスクと代替案
複数のポートを開くのは、ファイアウォールや NAT を設定する際にセキュリティ上のリスクとなるため、よりシンプルで安全なファイル転送プロトコルである SFTP を選ぶことをお勧めします。
SFTPは、大小さまざまな組織から支持を得ている安全な FTP であり、その最も望ましい特性である安全性が証明されています。SFTPは認証に SSH プロトコルが使われ、ファイル転送とリモートファイルアクセスサービスを実装し、クライアントとサーバーの間で1つのポートのみを使用します。
FTPS経由でサーバーに接続するように要求するユーザーがいても、心配はいりません。どちらか一方を選ぶ必要はないですからね。SFTP To Go は、プロトコルの柔軟性とそれ以上のものを提供しており、SFTPとFTPSの両方でファイルを管理し、Amazon S3 のエンドポイントや HTTPS を使って選択したファイルにアクセスできる、完全に管理された「サービスとしてのSFTP」なのです。