Fedoraシリーズには、FTPサーバとしてvsFTPdが用意されている。vsFTPdは「Very Secure FTP Daemon」という名前のとおり安全性・堅牢性に優れている(らしい)。
今までProFTPDをソースからインストールして使っていたが、ProFTPDはバージョンが1.2.10に上がってから使いにくくなったため、vsFTPdに切り替えることにした。
それほどカスタマイズして使うわけではないので、RPMをインストールすることにした(yumを使えばアップデートが楽なので・・・)。作業はrootで行う。
# yum -y install vsftpd
※-yオプションをつけると、y/Nを入力しなくてもインストールしてくれるので楽
RPMでインストールした場合、設定ファイルは/etc/vsftpd/vsftpd.confにある。viで開き、次のように編集する。
anonymousユーザ(匿名ユーザ)の接続を禁止する
anonymous_enable=NO
アスキーモードでの転送を許可する
ascii_upload_enable=YES ←コメントアウトを解除
ascii_download_enable=YES ←コメントアウトを解除メッセージバナーを設定する
ftpd_banner=Welcome to rina.jpn.ph FTP service. ←コメントアウトを解除し、適当に編集
※これを設定しないと、FTP接続時、バージョンが表示されてしまう。
chrootの設定
chroot_list_enable=YES ←コメントアウトを解除
chroot_local_user=YES ←追加
chroot_list_file=/etc/vsftpd.chroot_list ←コメントアウトを解除※vsftpd.chroot_listに登録されていないユーザは、ホームディレクトリより上位のディレクトリに移動させない
ディレクトリごと削除できるように設定する
ls_recurse_enable=YES ←コメントアウトを解除
ユーザディレクトリの設定
local_root=public_html ←追加
※ホームディレクトリをユーザディレクトリのpublic_htmlディレクトリにする。ホームディレクトリのままでよければ不要。
アップロードの時間を日本時間にする
use_localtime=YES ←追加
PASVモードを有効にする
pasv_promiscuous=YES ←追加
設定ファイルの編集以外の設定を行う。
/etc/vsftpd.chroot_listファイルの作成
/etc/vsftpd.chroot_listファイルを作成し、ホームディレクトリより上位のディレクトリへのアクセスを許可するユーザを登録する。このファイルに登録されているユーザは、上位ディレクトリにアクセスできるが、登録されていないユーザは上位ディレクトリにアクセスできない。
設定ファイル(/etc/vsftpd/vsftpd.conf)においてchrootの設定を行った場合、必ず作成しなければならない(空でも可)。/etc/vsftpd.ftpusersファイルの編集
/etc/vsftpd.ftpusersファイルを開き、FTPサーバへのアクセスを禁止するユーザを登録する。vsFTPdインストール時にある程度のユーザが登録済みなので、それ以外でアクセスを禁止したいユーザを登録する。
パッケージをインストールしたため、起動・停止スクリプトは登録済みである。次のように起動・停止を行う。
# /etc/rc.d/init.d/vsftpd start ←起動
# /etc/rc.d/init.d/vsftpd stop ←起動
# chkconfig vsftpd on