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.

大功告成