FedoraCore2 に標準で採用されている vsFTPDを使ってFTPサーバーを構築します。FedoraCore 2 の rpm ではスタンド アローンで起動するようにセットアップされるようになっています。
vsFTPDは高機能ではありませんが、軽く高速です。また、スタンドアローンの場合でもユーザー権限でプロセスが呼び出されるためセキュアです。設定、保守も容易で不特定多数に公開するサーバーとしては優れていると思います。
設定ファイル、ディレクトリは以下で構成されます。 設定のポイントは、ユーザーリストは
「 vsftpd.conf の設定によって禁止リスト、許可リストに変わる 」 点です。
以下に設定例を示します。 有効にするにはコメントアウトします。
# asciiモードでアップロード、ダウンロードを許可します。
ascii_upload_enable=YES
ascii_download_enable=YES
# ローカルユーザーは全てchroot有効にします。
chroot_local_user=YES (追記)
# chrootに関する設定をlistで行えるようにします。
chroot_list_enable=YES
# chrootを無効にするユーザーリストを指定します。
# chroot_local_user=YES としたのでリストに記述されるユーザーは
# 上位ディレクトリへアクセスできることになります。
# (default follows)
chroot_list_file=/etc/vsftpd.chroot_list
# ディレクトリまるごと削除出来るように指定したい場合はコメントを外します。
#ls_recurse_enable=YES
####### 追加
# タイムスタンプにローカル時間を指定します。(日本時間に変更)
use_localtime=YES
# PASV(パッシブモード)を有向にするかどうか指定します。
pasv_promiscuous=YES (追記)
# 詳細なログを/var/log/vsftpd.log に記録するか指定します。
# 指定しなければFTPデフォルト、/var/log/xferlog に出力します。
xferlog_std_format=NO (追記)
# Chrootされるディレクトリを指定します。指定が無ければ
# ユーザーのトップのホームディレクトリになります。
# 注意 chrootが有効の場合、~/public_html へchroot されます。
# ディレクトリから上へ上がることは出来ません。
local_root=public_html (追記)
vsftpd.chroot_listは、FedoraCore2に付属するvsFTPDのデフォルトでは chrootを有効にするユーザーを記述するようになっています。セキュリティ上、chroot すべきなのでデフォルトを chroot 処理を行い、chroot したくないユーザーは個別に指定するようにします。
vsftpd.conf で、以下の設定(追記)を行った場合、デフォルトは逆になります。
chroot_local_user=YES
vsftpd.conf に上記指定を追加した場合
/etc/vsftpd/vsftpd.chroot_list はchroot 禁止ユーザーリストに変化します。
chroot を無効にしたいLinuxユーザーを記述します。上記の設定例では chroot はデフォルトとしたいので、記述しません。
逆に /etc/vsftpd/vsftpd.chroot_list に chroot_local_user=YES
の記述がない場合は、chroot を有効にしたいユーザーを記述します。
/etc/vsftpd/vsftpd.conf を修正したら、再起動し、設定を有効にします。次にリストファイルを修正します。
これらのユーザーリストファイルは、修正しても再起動の必要はありません。 実際に接続してテストして下さい。実行プロセスがそれぞれのユーザー権限で実行されているか chtoot が設定通りか確認して下さい。
Linux ユーザー、パスワードを使用します。FTPに利用を限定する場合、ログインシェルは与えないようにして下さい。また、ホームディレクトリが必要です。
ここで説明した内容では、ユーザーのホームディレクトリに、chroot させるためのディレクトリ ~/public_html を用意する必要があります。
次はアクセス制限に関する設定を行います。