MySQLの設定が完了したら、次はvsftpdのPAM認証用の設定ファイルである/etc/pam.d/vsftpdを設定しよう。以下のような内容を/etc/pam.d/vsftpdに追加する。
auth required /lib/security/pam_mysql.so user=root passwd=1wdv5rdxcvb host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=2 sqllog=1 logtable=logs logmsgcolumn=msg logusercolumn=user logpidcolumn=pid loghostcolumn=host logrhostcolumn=rhost logtimecolumn=logtime account required /lib/security/pam_mysql.so user=root passwd=password host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=2 sqllog=1 logtable=logs logmsgcolumn=msg logusercolumn=user logpidcolumn=pid loghostcolumn=host logrhostcolumn=rhost logtimecolumn=logtime
pam-mysql PAMモジュールの主なパラメータは次の通りだ。
-
host:MySQLデータベースサーバのIPアドレスまたはホスト名。上の例では「localhost」になっているが、これはvsftpdと同じサーバ上にあることを意味する。 -
db:vsftpdサーバのユーザ情報を保存しているデータベース名。例では「vsftpd」となっている。 -
user:vsftpdユーザデータベースにアクセスすることができるユーザ。例では「root」ユーザになっている。 -
passwd:vsftpdデータベースのパスワード。 -
table:vsftpdのユーザ情報を保存しているテーブル名。例では「users」になっている。
MySQL-Adminは、シンプルで設定も簡単な、PHPベースのMySQLデータベース用管理ツールだ。設定は、サーバのURL(例ではhttp://localhost)をウェブブラウザで閲覧して、ブラウザに表示される指示に従って各ステップを完了すれば良いだけだ。それが完了すれば、http://localhostにアクセスすればMySQLデータベースサーバにログインすることができるようになる。ログインすれば、必要に応じてユーザの挿入/削除/更新などの操作をすることができる。
「service vsftpd start」を実行すると、仮想FTPサーバが使用可能になる。仮想FTPサーバを停止/再起動したい場合には「service vsftpd (stop|restart)」を実行する。他のFTPサーバの場合と同様に、ユーザは好きなFTPクライアントを使用してサーバにアクセスすることができる。
以上で、FTPユーザのユーザ情報をMySQLデータベースに一元的に保存できるようになった。FTPユーザを削除したり更新したり一時的に無効にしたりすることも、/etc/passwdに触れることなく簡単に行うことができるようになった。またFTPサーバのユーザ名として電子メールアドレスを使えば、どのユーザが何をダウンロードしたのかを簡単に追跡することができるようになる。これは大企業の管理者などにとっては便利かもしれない。
