【linux】vsftpd 導入手順(バーチャルユーザー版)
概要
OSのユーザーを使わないで、バーチャルなユーザーでFTPできるようにする。
手順
1、vsftpdのインストール
# yum install vsftpd
2、後でこれも必要
# yum install db4-utils
3、FTPユーザーのデータベースを作成
テキストで書いて
# vi /etc/vsftpd/vsftpd.txt user1 password1 user2 password2 ...... ......
dbファイルにする
# db_load -T -t hash -f /etc/vsftpd/vsftpd.txt /etc/vsftpd/vsftpd.db
4、実ユーザーを作成
バーチャルなユーザーはOSのいずれかのユーザーに対応させる必要がある。
既存のユーザーに割り当てるなら新規作成は不要。
新しいユーザーに割り当てるならここで作成。
# useradd -m -d /home/ftp_user -s /bin/bash ftp_user
例えば、Webサーバーの実行ユーザーと一致させると、WebのソースをFTPで触っても、Webサーバーの実行ユーザーと喧嘩することがない。
5、vsftpdの設定
/etc/vsftpd/vsftpd.conf
# 匿名ユーザーのFTPは不可 anonymous_enable=NO local_enable=YES #書き込みを可能にする。 write_enable=YES # バーチャルなユーザーのみで運用する。 guest_enable=YES # 仮想ユーザーがアクセスできるのはホームディレクトリのみに制限する chroot_local_user=YES # バーチャルユーザーに対応するOSのユーザー guest_username=ftp_user # バーチャルユーザー個別に設定ができるように user_config_dir=/etc/vsftpd/vsftpd_user_conf/ # バーチャルユーザーにいろいろ許可 anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES anon_world_readable_only=NO # umask anon_umask=022 # chmodできるようにする virtual_use_local_privs=YES
6、PAMの設定
/etc/pam.d/vsftpd に書かれているデフォルトの認証方式を全部コメントアウトして、3で作ったデータベースを見てもらうように設定する。
#%PAM-1.0 #session optional pam_keyinit.so force revoke #auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed #auth required pam_shells.so #auth include system-auth #account include system-auth #session include system-auth #session required pam_loginuid.so auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd
7、ログインするバーチャルユーザーに応じてホームディレクトリを変更する
guest_usernameのユーザーのホームディレクトリしか使えなかったら意味がない。
バーチャルユーザーごとに以下のようにファイルを作り、local_rootの設定を書く。
/etc/vsftpd/vsftpd_user_conf/アカウント名
local_root=/home/どこか/どこか
8、FTPサーバー再起動
# /etc/init.d/vsftpd restart
コメント