10 February 2008

vsftpd設定 (TLS無し) on CentOS 5.1

CentOSの標準リポジトリにはProFTPDが無いので、vsftpdを利用することになる。
内部LANからのみのサーバ保守目的しか利用しないので、不正アクセスされない最低限の設定を行う。

設定ファイルの編集

/etc/vsftpd/vsftpd.conf

anonymous_enable=NO ← Anonymousを無効化

local_enable=YES ← ローカルユーザ許可 (当初からこの設定なので、念のため確認)

ascii_upload_enable=YES ← Windowsで編集したスクリプト(CR+LF)を転送する場合など、YESにする
ascii_download_enable=YES

chroot_local_user=YES ← ホームディレクトリより上に移動させない
chroot_list_enable=YES ← なぜか、この設定をしなくても動くが…

userlist_enable=YES ← ログインできるユーザを限定する
userlist_deny=NO

use_localtime=YES ← GMTでなく、ローカルタイムを利用する

force_dot_files=YES ← ls に -a オプションを付けなくても、ドットファイルも全て表示

アクセスを許可するユーザリストを編集

userlist_enable=YES、userlist_deny=NO の設定を行うと、リストに存在するユーザのみがログオンを許可される動作となる (man vsftpd.conf に詳しく説明されている)

/etc/vsftpd/user_list (デフォルトのユーザリストファイル)

#root ← ログオンの必要が無いユーザを全てコメントアウト
#bin
#daemon
#adm
#lp
#sync
#shutdown
#halt
#mail
#news
#uucp
#operator
#games
#nobody

www_user ← ログオンを許可するユーザ

ユーザのホームディレクトリより上も見せるユーザ一覧 (chroot_list_enable=YESを記述すると、空でもこのファイルが必要)

/etc/vsftpd/chroot_list (無いなら、新規作成)

# ディレクトリの制限撤廃するユーザを記述する。無いなら、何も書かない


ProFTPDなら、デーモンの設定ファイルでアクセス可能なIPアドレス範囲や、グループも設定できるのだが…

IPアドレスの制限は iptables の方のみで対応する (内部LAN発のコネクションしか受け付けない)

/etc/sysconfig/iptables

-A INPUT -s 192.168.1.0/255.255.255.0 -p tcp -m tcp --dport 20 -j ACCEPT
-A INPUT -s 192.168.1.0/255.255.255.0 -p tcp -m tcp --dport 21 -j ACCEPT