バックエンドにデータベースを持つ仮想FTP(File Transfer Protocol)サーバを構築することには多くの利点がある。例えばデータベースを使用することによって大量のユーザ情報を一箇所にまとめて保存することができるので管理が楽になる。また仮想サーバのユーザはFTPサーバのリソースのみにアクセスすることが可能でOSのリソースにはアクセスできないため、従来のUnix OSのユーザ認証方法よりもセキュリティを高めることもできる。さらにバックエンドのデータベースを簡単にインストール/設定/管理するための数多くのウェブツールを利用することもできる。また仮想FTPサーバはFTP自体がサポートしていない「@」を含むいくつかの特殊文字もサポートするので、例えば社員の電子メールアドレスをユーザ認証に使用する場合などに便利だ。
|
|
pam-mysqlは広く利用されているPAM(Pluggable Authentication Modules)モジュールで、MySQLデータベースを使ってユーザ認証を行うことができる。vsftpdにはMySQLサポートが組み込まれていないのでpam-mysqlを利用する必要がある。以下では、pam-mysqlを使って仮想FTPサーバを構築する方法を紹介する(今回は例としてpam-mysql-0.5-1.i586.rpmを使用した)。必要なのは、Linuxディストリビューション、ウェブサーバ、FTPサーバ、MySQLクライアント/サーバ、PHP、php-mysql(PHPにMySQLのサポートを追加する)だ。
今回、LinuxディストリビューションにはRed HatクローンのCentOS 4を使用した。その他にはApache 2.0、MySQL 4.1、PHP 4.3.9、php-mysql 4.3.9、vsftpd 2.0の各プログラムを、MySQLの管理プログラムにはMySQL-Admin(mysql-admin_3_4_0_full.zip)を使用した。MySQL-Adminは操作が簡単であるうえ、データ/テーブル構造/テーブルの編集機能やコンテンツのインポート/エクスポートを行うことができる機能など、幅広い機能を提供している。