vsftp virtual user 教學與應用
首先說一下基本的環境:
OS: debian unstable
kernel: 2.6.0-1i386
vsftpd 1.2.1-1
libdb3-util 3.2.9-19 (Berkeley v3 Database Utilities)
1.首先請先編輯virtual user的名單,格式如下:
代碼: [選擇]
使用者名稱1
使用者密碼1
使用者名稱2
使用者密碼2
……
我們把他命名為 logins.txt
2.將使用者名單轉成資料庫格式
db3_load -T -t hash -f logins.txt /etc/vsftpd_login.db
(這邊依系統的不同會有不同的檔名,在debian unstable下是db3_load,您的系統有可能是 db_load…)
3.轉換 vsftpd_login.db 的權限
chmod 600 vsftpd_login.db
4.修改pam modules,將/etc/pam.d/vsftpd修改成只有以下兩行
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login
5.增加一個名為 virtual 的使用者
debian
adduser –home /home/ftpsite -disabled-password virtual
RedHat
useradd -d /home/ftpsite virtual
6.增加一個檔案給等會測試使用
touch /home/ftpsite/test_vuser
7.修改 /etc/vsftpd.conf 如下
anonymous_enable=NO
local_enable=YES
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
chroot_local_user=YES
guest_enable=YES
guest_username=virtual
listen=YES
pasv_min_port=30000
pasv_max_port=30999
8.重新啟動 vsftpd
debian
/etc/init.d/vsftpd restart
RedHat
service vsftpd restart
9.測試 (這邊我使用的帳號是 acc , 密碼是 1234)
mail:~# ftp 127.0.0.1
Connected to 127.0.0.1.
220 (vsFTPd 1.2.1)
Name (127.0.0.1:root): acc
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 “/"
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r–r– 1 0 0 0 Jan 14 22:22 test_vuser
226 Directory send OK.
ftp> quit
221 Goodbye.
大功告成