各種サーバー機器は、ほとんどの場合、操作をする人から離れた場所、データセンターに存在します。この場合、リモートログインをしてサーバーを遠隔操作することになります。そうした時に、サーバーにファイルを送ったり、ダウンロードしたりするときに使用する、FTP(ファイル・トランスファー・プロトコル)についてご説明しましょう。
目次
FTPサーバーについて
FTPの仕組みやFTPサーバーの役割は?
FTPを使う際の注意点
最後に
FTPサーバーについて
FTPサーバーは、ファイル交換サービスを可能にするアプリケーション(ソフトウェア)が作動するコンピュータ(ハードウェア)のことを意味します。一般的に「FTPサーバー」と表現されるシステムは、ほとんどの場合、コンピュータネットワーク上に存在するデータセンターにあるFTPサーバー(ソフトウェアとハードウェア)を指しています。
そもそもFTPとは?
FTPとはFile Transfer Protocol(ファイル・トランスファー・プロトコル)の略語。これは、サーバーへファイルを送信したり、受信したりする際に、正確にデータをやり取りするために定められた通信手順(プロトコル)のことです。
FTPの仕組みやFTPサーバーの役割は?
では、FTPサーバーの仕組みについて具体的に説明しましょう。
FTPの仕組み
不特定多数の利用者がアクセスしても、FTPサーバーとして充分な能力を有するハードウェア環境下のもと、FTPサーバー用プログラムが稼働しているファイル交換システムを「FTPサーバー」と呼びます。
この「FTPサーバー」を利用する場合、FTP専用アプリケーション、もしくはWEBブラウザが必要になります。実際に、ファイルの送受信をするためには、予め「FTPサーバー」の住所にあたるIPアドレス(もしくはドメインネーム)とID、パスワードを入手しておかなければなりません。
FTPはファイル送受信のためのプロトコルなので、通信途中でデータ化けなどがあっても自動で検出し再送したり、通信経路が安定していると転送時間を短縮することなどもやってくれます。
「FTPサーバー」を運営する側では、不特定の利用者へ公開するか否か、あるいは特定利用者のみに公開するディレクトリ、領域などを細かく設定してFTPサーバーサービスの提供を行うことができます。
具体的に、FTPサーバーを利用する際の「FTPクライアント・ソフトウェア」をご紹介しておきましょう。日常的に、WEBの閲覧に使用しているGoogleが無償で提供している「Google Chrome」などのWEBブラウザも使用できますが、専用アプリケーションを使用するのが便利だと思います。
Windowsユーザーでしたら「FFFTP3.3」「WinSCP」「TeraTerm」、Macを利用者している方でしたら「Cyberduck」「FileZilla」がお勧めです。Linux環境でftpサーバーを利用する場合、ベースコマンドとしてディストリビューションに含まれています。
FTPサーバーの役割
WEBサーバーで使われるHTTPなどは、TCP/IPやUDP/IPと呼ばれるプロトコル(通信手順)が使用されています。これらのプロトコルの特徴として、待ち秒数の長いパケットは破棄して通信の利便性と効率を高める仕組みになっています。ですから、データの正確性が求められるFTPのようなファイル交換システムは不向きなわけです。
しかし、近年では光回線の普及により、インターネットの通信速度は高速化してきました。そのことで、これまでファイル交換には不向きとされたWEBブラウザ(HTTP)でのクラウド型ファイル転送サービスも多くなっています。クラウドサービスの中には、未だにFTPを使用しているものもあります。そうしたサービスの場合、HTTPで接続した後に、FTPクライアントアプリケーションをダウンロードさせて、FTPでのファイルのダウンロードをしなければなりません。利用者にとっては、少々面倒な感じがするでしょう。
近年、ファイル交換の方法として、インターネットを経由してパソコン同士をダイレクトに接続してファイル交換を行うことも多くなっています。しかし、そうした方法はパソコンへの負荷も大きく、セキュリティー上の安全性に不安があります。ですから、データサイズの大きいファイルを送受信する場合には、FTPを使用すると速くて安全、しかも確実といえるでしょう。
FTPを使う際の注意点
FTPサーバを使用する際に、いくつか注意しなければならない点がありますので紹介します。
1)ポート20番と21番
ファイヤーウォールやNATルータを経由してFTPを使用する場合、ポート番号の20番と21番を開けておく必要があります。この場合、外部から不正アクセスなどの攻撃を受ける可能性がありますので、FTPを利用後は閉めておきましょう。
2)パッシブモード
FTPのクライアント・ソフトウェアの設定をする際、アクティブモードとパッシブモードの2種類があります。通常はパッシブモードを使います。しかし、利用するサーバーによって異なる場合がありますので、レンタルサーバー会社の指示に従って設定してください。
3)ディレクトリアクセス設定
ディレクトリへのアクセス権を許可する場合、設定を間違えてしまうと、重要なデータがインターネット上に公開されてしまい漏洩してしまうことになります。注意が必要です。
4)FTPとSFTP
SFTP(SSH File Transfer Protocol)はSSH接続(SSHとは、Secure Shell<セキュアシェル>の略称。リモートコンピュータと通信するためのプロトコル)で暗号化された伝送路を用いてファイル送受信をします。FTPによく似ていますが、鍵交換の必要性や、詳細な仕様、実装はFTPと異なります。通信経路に盗聴などの不安がある場合には、SFTPを使用します。
5)OSによる改行コードの違い
キーボードでEnterを押したときに、OSごとに異なるコードを使っています。Windowsは<CR><LF>、MacOSは<CR>、UNIX(Linux)は<LF>です。FTPクライアント・ソフトウェアでは、これらを設定で統一することができます。
6)漢字コード
WEBアプリケーションなどのプログラミング開発をする際は、漢字コードの扱いを理解しておく必要があります。関係者の長年の努力によりUnicode(UTF-16BE)が出現して、多くの漢字が扱いやすくなりました。漢字コードの種類としては、シフトJIS、EUC、JIS、Unicode(UTF-16BE)などがあります。
7)ファイルネームの漢字
WindowsやMacOSで作成したファイル名に漢字を使用した時、LinuxベースのWEBサーバーであると文字化けしてしまう場合があります。
最後に
インターネットの回線速度が高速になったおかげで、HTTPだけで大きなサイズのファイル交換が可能になっています。従って、サーバーへリモートログインをして、サーバー上でプログラム開発することもできるようになりました。ですから、FTPを使用する機会はすっかり減ってしまいました。
しかしながら、FTPはインターネット上で、確実かつ正確にファイル交換を行うことのできる基本的な通信手順であることに変わりはありません。WEBブラウザなどでファイル交換した際に、エラーが出るなど困ったことがあれば、FTP利用を検討することをお勧めいたします。
杉田正
インターネットハンドルはsugipooh。アマチュア無線、TK-80BS、PC-8001、APPLEII、MacintoshPlusからのアップル信者。大型ストレージ、RAIDやNAS開発からWebサーバー開発、データセンターにおけるセキュリティ規格ISO27001(ISMS)を日本で最初に取得。現在はクラウド用省エネデータセンター研究開発や省エネデータセンター構築コンサルタントを行っている。
構成・編集/貝阿彌俊彦(京都メディアライン・https://kyotomedialine.com FB)