今回からはFTPサーバーを構築していきます。構築する前にまずは前提となる基礎知識から見ていきます。

FTPとは

FTPとは、File Transfer Protocol(ファイル・トランスファー・プロトコル)の略で、その何のとおり、ファイル転送用のアプリケーションプロトコルです。

FTPを使用してファイルをサーバーにアップロードしたり、サーバーからダウンロードすることができます。

FTPサーバー、FTPクライアントの二種類のソフトウェアを使用し、両ソフトウェアの間で接続を確立してファイルを送受信します。
その際、FTPサーバー側ではユーザー名とパスワードによる利用者の認証を行い、それぞれの利用者に許可された権限や領域でファイルの送受信が行われることになります。暗号化機能を備えていないためセキュアとはいえませんが、まだまだ現役で活躍しているプロトコルです。

anonymous FTP

ファイル送受信の際、ユーザー名とパスワードによる利用者認証を行うと上述しましたが、不特定多数の利用者にファイルを配布するなどの目的のため、利用者登録を行っていない者でも自由に接続できる「anonymous」(匿名)と呼ばれる特殊なユーザーを作成することができます。

そのようなユーザーを「匿名ユーザー(anonymous user)」などと呼ばれ、認証を必要とせず、誰でもアクセス可能となります。

匿名ユーザーでアクセスするときは、ユーザ名に「anonymous」、パスワードは任意(空欄でもよい)を指定します。ただし、マナーとしてメールアドレスを入力することが多いです。

このような利用形態を「anonymous FTP」と呼び、不特定多数の人へファイルを公開する場合などで使われます。

バイナリモードとASCIIモード

FTPにはバイナリモードとASCIIモードの2つのモードがあります。FTPクライアントはどちらのモードを使用するかを指定して送信します。

バイナリモードは送信側から送ったファイルをまったくそのまま転送することを目的としていますが、ACSIIモードの場合はOS側で異なる改行コードを自動的に修正してくれる機能を持っています。

2つのモードの使い分けとして、zipやexeファイルなどのバイナリファイルを送信する場合はバイナリモード、テキストファイルはASCIIモードを選びます。

よくやるミスとして、バイナリファイルをASCIIモードで送信してしまい、受信側ではそのバイナリファイルが破損してしまっており、開けないといったことです。例えばExcelのファイルはバイナリファイルになりますが、ASCIIモードで送信して、受信側では開けないとなどといったケースです。

vsftpdとは

vsftpd(Very Secure Ftp Daemon)は、その名のとおり、セキュリティが高く、安定性に優れているFTPサーバーです。

Redhat Linux、FedoraやCentOSには、vsftpdが標準で付属しています。

FTPサーバー(ソフトウェア)は無償で使えるものから有償なものまで数多く存在します。それらと比較して、vsftpdは高機能とは言えませんが、軽くて高速なのが特徴です。

また、設定、保守も比較的容易であることなどから商用のサイトでもよく使われています。