FTPの解説(基本情報技術者シラバス用語)

目次

FTPとは

FTP(File Transfer Protocol)とは、インターネットなどのネットワークを介して、コンピュータ間で「ファイルを転送する(送受信する)」ための通信プロトコル(ルール)のことです。Webサイトのデータをサーバーへアップロードしたり、大容量のデータをダウンロードしたりする際によく使われます。

FTPを使った通信では、ファイルを管理する「FTPサーバー」と、ファイルを操作する側の「FTPクライアント」というソフトを使用します。IDとパスワードで認証を行い、サーバー内のフォルダ階層を自分のパソコンのように操作してファイルをやり取りできます。ただし、FTPはパスワードやデータそのものを暗号化せずに送信するため、現在ではセキュリティを高め、データを暗号化して通信する「SFTP」や「FTPS」といった技術が推奨されています。

具体例

あなたが自分のホームページを新しく作成し、世界中に公開する場面を考えてみましょう。

  • あなたのパソコンの中で、HTMLファイルやデザイン用の画像を何十枚も作成します。これらはまだあなたのパソコンの中にしかありません。
  • FTPクライアントソフトを起動し、レンタルサーバー(FTPサーバー)へ接続します。
  • 自分のパソコンのフォルダから、サーバー側のフォルダへ、ドラッグ&ドロップで一括してファイルを「アップロード(送信)」します。これで、世界中の人があなたのホームページにアクセスできるようになります。

もう少し詳しく

FTPは、TCP/IPモデルのアプリケーション層で動作し、トランスポート層には信頼性の高いTCPを使用します。FTPの最大の特徴は、1つのセッションにおいて役割の異なる「2つのTCPコネクション(通信路)」を同時に確立して動作する点です。

  • 制御用コネクション(ポート番号21):ログイン用のIDやパスワード、ファイルの取得命令(GETなど)、フォルダ移動などの「コマンド」をやり取りする専用の通信路です。終始接続が維持されます。
  • データ転送用コネクション(ポート番号20):実際のファイルデータや、ファイル一覧のリストなどを転送する瞬間にのみ確立され、転送が終わると即座に切断される通信路です。

また、データ転送コネクションを確立する際の接続方向により、「アクティブモード」と「パッシブモード」という2つの動作モードがあります。初期のアクティブモードでは、サーバー側からクライアントに向けて接続を開始するため、クライアント側のファイアウォールやルータ(NAT)によって接続が遮断されてしまうという問題がありました。これを解決するため、データ接続もクライアント側からサーバーに向けて開始するように工夫されたのが「パッシブモード(PASV)」であり、現在多くの環境で標準的に利用されています。

従来のFTPは、ID・パスワードやファイルデータ本体を平文のままで流すため、ネットワーク盗聴による情報の流出リスクがありました。現在では、SSH(Secure Shell)の暗号化技術を利用してファイルを安全に送信する「SFTP(SSH File Transfer Protocol)」や、Webサーバーと同様にSSL/TLSの暗号化技術を適用した「FTPS(FTP over SSL/TLS)」への移行が進んでいます。

試験でのポイント

試験対策としては、まずFTPがファイル転送のためのプロトコルであること、そして「制御用(ポート21)」と「データ転送用(ポート20)」の2つのポート番号を使い分けて通信するという特徴が非常に出題されやすいです。この2つの数字は確実に覚えておきましょう。

また、安全なファイル転送のためのプロトコルである「SFTP」と「FTPS」の違いも問われます。それぞれが基盤としている暗号化プロトコル(SFTPはSSH、FTPSはSSL/TLS)の組み合わせが問われるため、混同しないように整理が必要です。さらに、セキュリティ機器(ファイアウォール)を通過しやすくするためにクライアント主導で接続を行う「パッシブモード(PASVモード)」の役割と設定方法についても出題範囲となっています。

関連する用語

FTPに関連する用語には、制御用の「ポート21」、データ用の「ポート20」、SSHで安全に転送する「SFTP」、SSL/TLSで安全に転送する「FTPS」、クライアントから接続を開始する「パッシブモード」、コンピュータ間でのファイル操作ソフトウェアである「FTPクライアント」などがあります。

読んだ内容を10問練習と実技で確認

記事で理解した用語を、StudyQuestの演習とクラウド実技ラボで定着させます。

10問練習 実技ラボ