企業間や社内でのファイルのやり取りに欠かせない技術の一つとしてFTPがあります。
いまでは、日常的なファイル転送にFTPを使用することは一般的ですが、具体的な仕組みについて詳しく知っている方は少ないのではないでしょうか?
この記事では、ファイル転送の基本となるFTPに焦点を当て、その概要や仕組みをわかりやすく説明しています。
FTPについて理解を深められる内容となっておりますので、ぜひ最後までご覧ください。
FTPとは?
それではさっそく FTP について説明していきます。
FTPの概要
書き方 | FTP |
読み方 | エフティーピー |
英語名 | File Transfer Protocol |
FTP(File Transfer Protocol)とは…
サーバとクライアント間でファイルの転送をするときに使用されるプロトコルのこと。
リモートまたはローカルネットワーク内のコンピュータ間でファイルのアップロードやダウンロードを行うのに役立ち、自分のパソコンをFTPサーバとして動作させることも可能です。
つまり簡単にいうとインターネットを使ってファイルを他のコンピュータへ送ったり、受け取ったりする仕組みのことです。
FTPの特徴
FTPは様々なOSやデバイス上で誰でも簡単に使用できます。
大量のファイルを一括ドラッグ&ドロップで簡単にアップロード・ダウンロードできますが、ファイルを転送する際、データが暗号化されません。
また、FTPではファイルを送るための接続と、その指示を出すための接続という2つの接続を使用しますが、その接続をランダムな入り口を使用して行ってしまうとファイアウォールはコンピュータを守るため、不正な接続と勘違いしブロックすることがあります。
これにより、次のようなメリットとデメリットがあります。
メリット
- 操作が簡単なので誰でも簡単に扱うことができる
- 大量のファイルや大きなファイルを効率よく転送できる
デメリット
- セキュリティに問題がある
- ファイアウォールと相性が悪い
FTPの歴史
FTPは1971年にAbhay Bhushan氏によってアーパネットというインターネットの前身となるネットワーク上でコンピュータ間のファイル転送を可能にするために開発されました。
1973年に最初のFTPの仕様が公開され、何度かの改良ののち1985年に、現在のTCP/IPの対応がされたFTPの仕様が公開されました。
その後、インターネット上で広く利用されるファイル転送の標準プロトコルになりましたが、セキュリティ上の問題が多く指摘され新たなプロトコルが開発されるきっかけにもなりました。
FTPサーバとクライアントの構成と機能
FTPでファイルのやりとりを行う場合、FTPサーバとFTPクライアントの間で接続を行いファイルのやりとりを行います。
ここでは、FTPサーバとFTPクライアントの構成と機能を説明していきます。
FTPサーバの構成と機能
FPTサーバは、次のような構成と機能になっています。
機能名 | 役割 |
---|---|
サーバPI (Protocol Interpreter) | クライアントから送られてくる「ファイルを送ってください」などのコマンドを理解し処理を行うプログラムです。 |
サーバDTP (Data Transfer Process) | 実際にファイルの転送をするためのプログラムです。クライアントからのリクエストによりファイルの送受信を行います。 |
ファイルシステム | 実際にファイルを保存する場所になります。 通常はハードディスクなどのストレージのことをいいます。 |
FTPクライアントの構成と機能
FTPクライアントは、次のような構成と機能になっています。
機能名 | 役割 |
---|---|
クライアントUI (User Interface) | ユーザが実際に操作する画面やインターフェースです。ファイルの送受信ボタンやサーバやクライアントにあるファイルなどが表示されます。 |
クライアントPI (Protocol Interpreter) | FTPクライアント側にあるプログラムで、ユーザの操作や指示をコマンドに変換しFTPサーバに送ります。 |
クライアントDTP (Data Transfer Process) | 実際にデータを送受信するためのプログラムです。FTPサーバとの間でファイルの転送を行います。 |
ファイルシステム | FTPサーバと同様にファイルを保存する場所です。 |
FTPの接続の手順
ここでは実際にどのような手順でサーバーとクライアントが接続を行い、ファイルのやりとりをしているかを説明します。
①サーバに接続
ユーザがFTPクライアントを使用しユーザインターフェースからFTPサーバのアドレス、ユーザ名、パスワードを入力し接続します。ここでいうユーザインターフェースがクライアントUIです。
クライアントPIが命令やログイン情報をやりとりするためにコントロールコネクションを確立しサーバPIにログイン情報を送ります。
※コントロールコネクションとは、サーバとクライアントが命令やログイン情報をやり取りするためにポート21番を使用する接続のこと
※ポートとは、コンピュータネットワーク上でデータの送受信を行うための扉のようなもの
②データコネクションの確立
ユーザインターフェースからアップロードやダウンロードしたいファイルを選択し、送受信ボタンなどを押すとクライアントPIが命令を作成し、コントロールコネクションを通じてサーバPIに送信します。
そして、下記のいずれかのモードでデータコネクションが確立されます。
モード名 | 役割 |
---|---|
アクティブモード | サーバDTPがポート20番を使用してデータコネクションを開きクライアントのポートに接続します。 |
パッシブモード | クライアントDTPがデータコネクションを開き、サーバがその接続を使用し、サーバ側はランダムなポートを使用します。 |
③ファイルの転送
データコネクション確立後、クライアントとサーバ間でファイルの転送が行われます。
④接続の終了
ファイル転送が終わったら、クライアントPIがコントロールコネクションを通じてサーバPIに「接続を終了します」という命令を送り、接続を閉じます。
FTPのセキュリティ
ここではFTPのデメリットでもあるセキュリティの課題と対策について説明します。
FTPのセキュリティの課題
FTPでは、データを暗号化せずにファイルの送受信するため、ファイルの盗聴や、パスワードが盗まれ不正アクセスされる危険があります。
パスワードを盗まれることによりサーバへの不正にアクセスされデータ漏洩やデータ改ざんが発生する恐れもあります。
また、全てのパスワードの組み合わせを試し、正しいパスワードを見つける総当たり攻撃や、Dos攻撃という大量リクエストによる過負荷攻撃の対象になりやすいです。
そのため、FTPを使用する際には、このような攻撃に対する対策が必須となっています。
FTPのセキュリティ対策
実際にFTPのセキュリティの課題に対処するためにはFTPS(FTP over SSL/TLS)やSFTP(SSH File Transfer Protocol)などを使用し、通信の安全性を確保することが大切です。
FTPSとは
FTPSは、FTPにSSL/TLS暗号化を追加したものでデータとパスワードが暗号化されて送信されるため、盗聴や改ざんのリスクが大幅に低減します。
SSL/TLS(Secure Sockets Layer / Transport Layer Security)とは、インターネット上でデータを安全に送受信するための暗号化プロトコルです。
FTPSは、既存のFTPクライアントやサーバと互換性があり、設定も比較的簡単です。
SFTPとは
SSH(Secure Shell)プロトコルを使用したファイル転送プロトコルです。SSHは、ネットワークを介して安全に通信するためのプロトコルです。
特にリモートログインやファイル転送に使用されます。
SFTPでは、すべてのデータと認証情報が暗号化されて送信されるため、非常に高いセキュリティを提供します。
まとめ
本記事では、FTPの概要や仕組み、そしてFTPの課題であるセキュリティとその対策について解説しました。
光回線の普及などにより、ファイルの共有や転送が非常に高速に行えるようになりましたが、そこにはFTPのような通信プロトコルの存在があります。
FTPは多くのシステムで採用されており、FTPSやSFTPとの連携により安全なファイル転送をおこなうことが可能です。
情シスの担当者の方は、通信プロトコルの一部を理解することでより安全なネットワーク環境を構築することができるため、本記事で学んだFTPの知識をぜひ活用してください。