Product SiteDocumentation Site

11.3. FTP ファイルサーバ

FTP (File Transfer Protocol) is one of the first protocols of the Internet (RFC 959 was issued in 1985!). It was used to distribute files before the Web was even born (the HTTP protocol was created in 1990, and formally defined in its 1.0 version by RFC 1945, issued in 1996).
FTP を使うことで、ファイルのアップロードとダウンロードが可能です。そしてこの理由から、現在でもインターネットサービスプロバイダによってホストされているウェブサイトの更新 (およびウェブサイトを構成する要素) を配置するために広く使われています。この場合、ユーザ識別子とパスワードを使って安全なアクセスが強制されます。そして認証に成功したら、FTP サーバはそのユーザのホームディレクトリに対する読み書きアクセスを許可します。
他の FTP サーバは主に、一般のユーザがダウンロードできる、ファイルを配布するために使われます。そしてこれの良い例が Debian パッケージです。サーバの内容は別の、地理的に離れている、サーバから取得されます。そしてサーバの近郊にいるユーザに向けて内容を提供します。これはクライアント認証が不要になることを意味します。結果的に、この挙動は「匿名 FTP」として知られています。完全に正しく言えば、クライアントは匿名のユーザ名で認証します。そしてパスワードは、慣例的に、ユーザの電子メールアドレスですが、サーバはこれを無視します。
Debian では、多くの FTP サーバ (ftpdproftpd-basicpyftpd など) が利用できます。Falcot Corp の管理者は vsftpd を選びました。なぜなら、管理者だけがいくつかのファイルを配布する (Debian パッケージリポジトリ用) ために FTP サーバを使うからです。さらに、管理者は高度な機能を必要としておらず、セキュリティの観点を重視しているからです。
vsftpd パッケージをインストールすると、ftp システムユーザが作成されます。このアカウントは匿名 FTP 接続の際に常に使われるものです。FTP サービスに接続するユーザは ftp システムユーザアカウントのホームディレクトリ (/srv/ftp/) を利用できます。巨大なファイルを公開ダウンロード可能にするという単純な要求を満足させるにはデフォルト設定 (/etc/vsftpd.conf) に変更を加える必要があります。つまり、匿名アクセスを有効化し (anonymous_enable=YES)、ローカルユーザの読み込み専用アクセスを無効化する (local_enable=NO) 必要があります。ローカルユーザの読み込み専用アクセスを無効化するのは特に重要です。なぜなら FTP プロトコルはいかなる種類の暗号化も行わないため、デフォルト設定のままではネットワーク越しにユーザパスワードを横取りされる可能性があるからです。