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