FTPって一体何?と疑問を抱いている方は少なくないはず。FTP(File Transfer Protocol)は、HTTPSほど頻繁に聞く用語ではなく、ふと耳にしたときに困惑してしまうこともあるでしょう。
実は、FTPクライアントソフトは、オペレーティングシステムがグラフィカルユーザインターフェース(GUI)を実装するようになるはるか前から存在しています。では、なぜ1970年代前半に生まれた古いプロトコルがなぜ今も必要なのでしょうか。
FTPは、ウェブ開発者やシステム管理者だけでなく、さまざまな分野のプロフェッショナルの間でも使用されており、個人や法人問わず、サイト管理を行なっていれば、いずれ堅牢なファイル転送ソリューションが必要になります。今回は、FTPとは何か、そしてどのような用途に使用されるかを見ていきましょう。
File Transfer Protocol(FTP)について動画での解説もご用意しています。
FTPとは
FTPは、File Transfer Protocolの略。この通信プロトコルは、サーバーとクライアント間のファイル交換に使用されます。FTPは、リモートまたはローカルネットワーク内のコンピュータ間でファイルを転送するのに役立ち、お使いのコンピュータをFTPサーバーとして動作させることも可能です。また、コンピュータからホスティングアカウントにファイルをアップロードするのにも利用されます。
FTPは、1971年に当時マサチューセッツ工科大学の学生だったAbhay Bhushan Pandey氏が開発しました。誕生以来、高い安全性を確保するため、改訂が繰り返されています。今日、FTPは主に3種類あります。各種類については、後ほど詳しくご説明していきます。
FTPは決して開発者向けのニッチな技術ではなく、世界中のサイト所有者が日常的に使用しているものです。例えば、WordPressサイトを更新する際、FTPを使用すれば、ウェブサーバーにファイルを直接アップロードすることができて効率的です。
FTPの仕組み
FTPの概要がわかったところで、続いてその仕組みに迫りましょう。
FTPは、すべてのデータパケットの適切な宛先への送信に、TCP(Transmission Control Protocol)を使用しています。TCPは2つのデバイス間の接続を確立し、データをセグメントに分割し、セグメントを宛先のデバイスに送信。そこで元のデータストリームに再構成します。
FTPは、クライアントサーバーモデルのアーキテクチャで構築されており、クライアントとサーバー間で、制御(コマンド)接続とデータ接続を別々に行います。
制御接続は、FTPサーバーとの間で最初に確立されるもので、クライアントがサーバーに接続してコマンドを送信し、サーバーの応答を受信できるようにすることが目的です。
2つ目のデータ接続は、FTPサーバーがファイルリストを交換し、ファイルを転送するための接続です。クライアントが制御接続を使って、FTPサーバーにファイルの転送を「依頼」すると、この接続によって当該ファイルが送信されます。
FTPのデフォルトポート(制御接続用のポート21、およびデータ接続用のポート20)は標準化され、広く普及しているため、基本的にはデフォルトポートの使用が推奨されています。
ただし、必要に応じて使用するポートを変更することは可能です。例えば、同じマシンで複数のFTPサーバーを運用していて、ポートの競合を避けたい場合、またはセキュリティなどの理由でポート番号を変更したい場合など。
FTPの仕組みは、次の通りです。
- クライアントがサーバーのIPアドレスとポート番号を要求し、FTPサーバーへの接続を確立。サーバーは、接続が確立されたことを示すメッセージを返す。
- クライアントがユーザー名とパスワードによるをサーバーを認証行う。認証に成功すると、サーバーがクライアントにアクセスを許可する(場合によっては匿名でのアクセスも可)。
- クライアントがサーバーに対して、ファイルのアップロード、ダウンロード、削除、リストアップなどのFTPコマンドを実行。
- ファイル転送のため、クライアントがサーバーとの間に別のデータ接続を確立。データ接続によって、クライアントとサーバー間でファイルコンテンツを転送。
- ファイル転送が完了すると、データ接続が終了。クライアントは次のFTPコマンドを実行するか、サーバーとの接続を終了する。
また、「アクティブモード」という言葉を耳にしたことがある人もいるはず。FTPの「アクティブ」と「パッシブ」は、FTPクライアントとサーバー間でデータ接続が確立される転送モードを意味します。
アクティブモードでは、クライアントがデータ接続に使用する宛先ポートをサーバーに伝えます。一方のパッシブモードでは、サーバーからクライアントに接続すべきポートを伝えて、クライアントが接続を開始します。
ほとんどのFTPクライアントは、デフォルトでアクティブモードを使用していますが、一般的にはパッシブモードも選択できるようになっています。パッシブモードを使用すると、クライアント側のファイアウォールによって引き起こされる接続エラーを回避して、データ接続を確立することができます。
アクティブモードとパッシブモードのどちらを選択するかは、ネットワーク構成と設置しているファイアウォールルールに依存しますが、どちらのモードもコンピュータ間のファイル転送に使用可能です。
FTPサーバーの中には、ユーザー名とパスワードを設定したユーザーアカウントが求められるものと、匿名で使用できるものがあります。後者は安全性に欠け、第三者がファイルを操作したり、違法なコンテンツをアップロードしたり、ストレージの空き容量を無駄に消費したりすることができてしまうため、注意が必要です。
FTPでファイルを転送する方法
FTPでファイルを転送する方法は、コマンドプロンプト、インターネットブラウザ、またはFTPクライアントを使用するなど、いくつかあります。
コマンドプロンプト(コマンドライン)でFTPサーバーにアクセスするには、ほぼすべてのOSに組み込まれている「ftp」コマンドを使用します。接続が確立されると、FTPコマンドをサーバーに送信して、ファイルを取得、アップロード、編集、管理することができます。
また、Google Chrome、Mozilla Firefox、Microsoft Edgeなどの主要なブラウザを使用して、FTPでコンピュータ間のファイル転送を行うことも。手順は以下の通りです。
- インターネットブラウザを開き、アドレスバーに「ftp://」とFTPサーバーのIPアドレスまたはドメイン名を貼り付けます(例: ftp://ftp.example.com)。
- プロンプトが表示されたら、ユーザー名やパスワードなどのFTPログインの認証情報を入力します。
- FTPサーバーに接続され、サーバー上のディレクトリとファイル一覧が表示されます(通常のファイルエクスプローラ同様、ディレクトリを移動したり、ファイルの内容を表示したりすることが可能)。
- サーバーからファイルをダウンロードするには、ファイルをクリックし、コンテキストメニューから「名前を付けて保存」を選択。ファイルを保存するコンピュータの場所を指定し、「保存」をクリックします。
- サーバーにファイルをアップロードするには、「アップロード」をクリックし、ファイルを選択。サーバー上の保存場所を選択して、「開く」をクリックします。
なお、Chromeなどの一部ブラウザでは、FTPサポートがデフォルトで無効になっています。FTPを有効化することもできますが、この場合は専用のFTPクライアントを使用する方が得策です。
FTPクライアントを使用するメリット
FTPクライアントは、FTPサーバーに接続し、コンピュータとサーバー間でファイルを転送するためのソフトウェアプログラム。ファイルを転送するためのユーザーフレンドリーなインターフェースを持ち、サーバー上のファイルのアップロード、ダウンロード、削除、リストアップなど、さまざまなことを実行できます。
優れたFTPクライアントは、言うなれば車のダッシュボードのようなもの。取り外して手作業で必要なワイヤーハーネスを接続することもできますが、手間がかかりリスクも高くなります。その点、ダッシュボードがあれば、直感的に運転操作を行うことができます。FTPクライアントは、まさにそんな存在です。
FTPクライアントを使用する主なメリットは以下の通り。
- 自分のファイルや、リモートFTPサーバーに保存されているファイルの概要を素早く把握できる。
- コンピュータからサーバーに移動したいファイルをドラッグ&ドロップすることができる(その逆も然り)。
- 転送の一時停止や再開、複数のファイルを一度に転送するなど、転送をより柔軟に制御可能。
- ディレクトリの作成と削除、ファイル名の変更と削除が可能。
- SFTPやFTPSなどのより安全なファイル転送プロトコルに切り替えることができ、機密データ転送時のセキュリティ層を強化することができる。
FTPクライアントソフトには、数えきれないほどの選択肢があります。迷っている方は、特に人気の高いFileZillaを利用すれば間違いないでしょう。インターフェースは時代遅れと言えますが、意外にも直感的で、さまざまなオペレーティングシステムと互換性があります。
FTPクライアントは、FTPサーバー上のファイルの管理を容易にし、機密データを安全に転送することができるソフトです。経験豊富なシステム管理者でない限りは、ダウンロードを監視し、データの安全性を確保するため、ファイル転送にはFTPクライアントを使用しましょう。
FTPとHTTPの違い
File Transfer Protocol(FTP)とHyperText Transfer Protocol(HTTP)は、どちらもインターネット上でデータを転送するために使用されるプロトコルですが、以下のような大きな違いがあります。
- FTPはコンピュータ間でファイルを転送することに特化して開発されたプロトコル。一方のHTTPは、サーバーとクライアント間でウェブページのようなデータを転送するために使用される汎用プロトコル。
- FTPは、クライアントとサーバー間の制御とデータ転送に別々の接続を確立するのに対し、HTTPは制御とデータ転送に同じ接続を使用する。
- FTPは安全なプロトコルではなく、ネットワーク上のデータを暗号化することはないが、HTTPは、SSL/TLSなどのセキュリティプロトコルと併用することで、ネットワーク上のデータを暗号化して転送することができる。
サイト所有者には、より安全なHTTP拡張機能であるHTTPSへの移行が推奨されます。サイトと訪問者をサイバー攻撃から保護するのに役立ち、すでに78%以上のページがHTTPSに移行しています。
FTPとSMTPの違い
FTPは、コンピュータ間でファイルを転送するために使用される特殊なプロトコルであるのに対し、SMTPはサーバー間で電子メールメッセージを転送するために使用されるプロトコルです。
FTPは、クライアントとサーバー間の制御とデータ転送に個別の接続を確立することはご存知の通り。SMTPの場合、制御とデータ転送には1つの接続が使用されます。
FTPは本来の形式でファイルを転送するのに対し、SMTPは標準化されたMIMEで電子メールメッセージを転送します。また、SMTPはSSL/TLS プロトコル上で使用することができるため、ネットワーク上で送信されるデータを暗号化することができますが、FTPは暗号化をサポートしていない点も大きな違いです。
FTPとSFTPの違い
Secure File Transfer Protocol(SFTP)は、SSH(セキュアシェル)を使用して接続を暗号化する、FTPのセキュアバージョンです。その名の通り、SFTPではより安全にファイル転送を行うことができ、一般的にFTPよりも好まれます。
SFTPは、個別の接続を確立するFTPとは異なり、制御とデータの両方を1つの接続で転送します。SFTPのデフォルトポートは22です。SFTPは、FTPと同じコマンドセットを使用するため、一方のプロトコルをサポートするクライアントソフトであれば、最小限の変更でもう一方のプロトコルも使用できるのが通例です。
両者を以下の観点から比較してみましょう。
- セキュリティ─SFTPはパスワードの盗聴や中間者攻撃を回避し、暗号化およびハッシュ関数により、データの完全性を保護することができる。したがって、機密性の高いデータの転送にはSFTPを使用するのが賢明。
- チャネル─FTPはクライアントとサーバー間の制御とデータ転送に個別の接続を使用するのに対し、SFTPは1つの接続を確立するため、SFTPはFTPよりも効率的かつスケーラブル。
- 普及率─FTPはほぼすべてのOSとFTPクライアントでサポートされていて、定評のあるプロトコル。SFTPも広くサポートされているが、FTPと比べるとやや劣る。
総合的に見て、コンピュータ間でファイルを転送するには、SFTPの方が、より安全でモダン、そして効率的な選択肢と言えます。
安全面を考慮したFTPの別の代替手段は、FTPS(File Transfer Protocol over SSL/TLS)。
FTPSは、FTPのセキュアバージョンで、SSL(セキュアロケッツレイヤー)またはTLS(Transport Layer Security)を使ってネットワーク上で転送されるデータを暗号化することができます。
FTPSは、コンピュータ間でファイルを転送するという点ではFTPと似ていますが、データを暗号化することで、セキュリティ層が強化されるため、ログイン認証や機密情報の転送に理想的です。
人気FTPクライアントのFileZillaでは、数回のクリックでFTPSを有効化することができます。
FTPSには、Explicit(明示的)とImplicit(暗黙的)の2つのモードがあります。
Explicitモードでは、ファイルを転送する前にクライアントがSSL/TLSセッションを確立し、Implicitモードでは、FTP接続で転送されるすべてのデータが暗号化されることを前提としています。
FTPSは、多くのFTPクライアントとサーバーでサポートされており、Secure File Transfer Protocol(SFTP)の代替手段として一般的に使用されています。ただし、すべてのプラットフォームで利用できるわけではありません。
FTPのメリットとデメリット
以上すべてを踏まえ、FTPを使用するメリットを見てみましょう。
- 専門知識が不要。セットアップも操作も簡単でわかりやすい。FileZillaのような、ユーザーフレンドリーなインターフェースを持つ便利なFTPクライアントも。
- 何十年も前から存在する、普及率に定評のあるプロトコル。ほとんどのオペレーティングシステムとFTPクライアントでサポートされている。
- ローカルネットワーク/イントラネットに適している。
- 大容量ファイルの転送に最適化されており、データの転送が高速。大容量ファイルを一度にアップロードすることもでき、技術的にファイルサイズに制限がない。
- 機密性の高くないデータの転送に適している。
- システム間のファイル転送を自動化するためのスクリプトやスケジュールされたタスクで使用できる。転送を一時停止したり、再開したりすることも可能。
その一方で、FTPには以下のようなデメリットも。
- ネットワークを介して送信されるデータが暗号化されないため、第三者による傍受の危険性がある。
- FTPクライアントなしでは、ファイル転送の追跡が困難になることがある。
- クライアントとサーバー間で制御接続とデータ接続を別々に確立するため、非効率で、複数の同時接続にうまく対応できないことがある。
- PCI DSSの要件により、セキュリティ上の懸念から使用できない可能性がある。
- 転送されたファイルを運用するための専用サーバーが必要になり、経済的な負担が増える可能性がある。
FTPの一般的な使用事例
FTPとは何か、そしてそのメリットとデメリットが分かったところで、最後に一般的な使用事例をご紹介します。用途によっては、FTPを使用する方が適切な場合もあります。
- 大きなファイルを転送する─メールなどで送信するには大きすぎるファイルを転送することができる。
- サーバー間でファイルを転送する─ウェブサーバーからファイルを一括して、アップロードまたはダウンロードすることができる。
- 複数のユーザーでファイルを共有する─FTPサーバー上のフォルダに複数のユーザーがアクセスできるようにすれば、共有ファイルに簡単にアクセス、ダウンロードできる。
- ファイルの転送を自動化する─スクリプトやスケジュールされたタスクに使用すれば、システム間のファイル転送を自動化することができる。
- ファイルのバックアップ─バックアップを作成する目的で、あるシステムから別のシステムへファイルを転送することができる。
FTPは、さまざまなB2Bアプリケーションのバックエンドでファイルを転送するために、今日でも一般的に使用されています。商用のWordPressサイトを管理している場合は、ほぼ間違いなくFTPを使用することになります。Kinstaでは、安全なFTPバージョンであるSFTPをサポートしています。
FTPは、WordPressサイトの管理にも活用することができます。
- WordPressの管理画面にアクセスせずに、WordPressのテーマ、プラグイン、メディアファイルをアップロードできる。
- WordPressサイトが破損したり、データを紛失した場合、バックアップファイルをサーバーに転送することで、サイトをバックアップから復元するのに便利。
- WordPressのファイルを直接編集することができ、サイトのトラブルシューティングやデバッグを行うことができる。
WordPressサイト管理にFTPを活用するには、FileZillaやCyberduckなどのFTPクライアントソフトと、サイトのFTPログイン認証情報が必要になります。FTPクライアントとログイン認証情報さえあれば、サイトのサーバーに接続し、必要に応じてファイルを転送することができます。
また、FileZillaをはじめとする、多くのFTPクライアントでSFTPも使用することができるため、使い慣れたツールでより安全にファイルを転送することも可能です。
まとめ
FTPの概要、仕組み、 FTP クライアントを使用したファイル転送方法を詳しくご紹介しました。
Kinstaでは、SFTP接続のみをサポートしています。Kinstaのホスティングサービスに移行して、データを安全に保管しましょう。すでにKinstaをご利用の場合、SFTP接続を利用する方法はこちらをご覧ください。
Kinstaの業界トップクラスのカスタマーサポート、ハイエンドCPU、および高可用性は、120,000+のお客様にご満足いただいています。低速な読み込み、予期せぬサイトのダウン、そしてDDoS攻撃にはもうお別れ。サーバー周りの管理は、Kinstaにお任せください。