1. 安裝CentOS release 6.9 (Final)操作系統,用yum安裝vsftpd
2. 查看系統中是否存在db4。如果沒有則進行安裝。
#rpm -qa | grep db4
db4-devel-4.7.25-19.el6_6.x86_64
db4-4.7.25-19.el6_6.x86_64
db4-utils-4.7.25-19.el6_6.x86_64
db4-cxx-4.7.25-19.el6_6.x86_64
3. 添加虛擬用戶口令文件
#vi /etc/vsftpd/login.txt
test password0 test1 password1 test2 password2
4. 生成虛擬用戶口令認證文件
#db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/vsftpd_login.db
#chmod 600 /etc/vsftpd/vsftpd_login.db
5. 編輯vsftpd的PAM認證文件
#vi /etc/pam.d/vsftpd
將裏面其他的都註釋掉,添加下面這兩行:
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
6. 建立本地映射用戶並設置宿主目錄權限
#useradd vsftpd -s /sbin/nologin
#useradd virtusers -s /sbin/nologin
7. 配置vsftpd.conf(設置虛擬用戶配置項)
#vi /etc/vsftpd/vsftpd.conf
#設置爲NO代表不允許匿名 anonymous_enable=YES #設定本地用戶可以訪問,主要是虛擬宿主用戶,如果設爲NO那麼所欲虛擬用戶將無法訪問。 local_enable=YES #可以進行寫的操作 write_enable=YES #設定上傳文件的權限掩碼 local_umask=022 #禁止匿名用戶上傳 anon_upload_enable=NO #禁止匿名用戶建立目錄 anon_mkdir_write_enable=NO # 設定開啓目錄標語功能 dirmessage_enable=YES # 設定開啓日誌記錄功能 xferlog_enable=YES #設定端口20進行數據連接 connect_from_port_20=YES #設定禁止上傳文件更改宿主 chown_uploads=NO #設定vsftpd服務日誌保存路勁。注意:改文件默認不純在,需手動touch,且由於這裏更改了vsftpd服務的宿主用戶爲手動建立的vsftpd,則必 須注意給予該用戶對日誌的讀取權限否則服務啓動失敗。 xferlog_file=/var/log/vsftpd.log #設定日誌使用標準的記錄格式 xferlog_std_format=YES #設定空閒鏈接超時時間,這裏使用默認/秒。 #idle_session_timeout=600 #設定最大連接傳輸時間,這裏使用默認,將具體數值留給每個用戶具體制定,默認120/秒 data_connection_timeout=3600 #設定支撐vsftpd服務的宿主用戶爲手動建立的vsftpd用戶。注意:一旦更改宿主用戶,需一起與該服務相關的讀寫文件的讀寫賦權問題. nopriv_user=vsftpd #設定支持異步傳輸的功能 #async_abor_enable=YES #設置vsftpd的登陸標語 ftpd_banner=hello 歡迎登陸 #禁止用戶登出自己的ftp主目錄 chroot_list_enable=NO #禁止用戶登陸ftp後使用ls -R 命令。該命令會對服務器性能造成巨大開銷,如果該項運行當多個用戶使用該命令會對服務器造成威脅。 ls_recurse_enable=NO #設定vsftpd服務工作在standalone模式下。所謂standalone模式就是該服務擁有自己的守護進程,在ps -A可以看出vsftpd的守護進程名。如果 不想工作在standalone模式下,可以選擇SuperDaemon模式,註釋掉即可,在該模式下vsftpd將沒有自己的守護進程,而是由超級守護進程Xinetd全權代理,>與此同時,vsftpd服務的許多功能,將得不到實現。 listen=YES #設定userlist_file中的用戶將不能使用ftp userlist_enable=YES #設定pam服務下的vsftpd驗證配置文件名。因此,PAM驗證將參考/etc/pam.d/下的vsftpd文件配置。 pam_service_name=vsftpd #設定支持TCPwrappers tcp_wrappers=YES #################################################以下是關於虛擬用戶支持的重要配置項目,默認.conf配置文件中是不包含這些項目的,需手動添加。 #啓用虛擬用戶功能 guest_enable=YES #指定虛擬的宿主用戶 guest_username=virtusers #設定虛擬用戶的權限符合他們的宿主用戶 virtual_use_local_privs=YES #設定虛擬用戶個人vsftp的配置文件存放路勁。這個被指定的目錄裏,將被存放每個虛擬用戶個性的配置文件,注意的地方是:配置文件名必須 和虛擬用戶名相同。 user_config_dir=/etc/vsftpd/vconf #禁止反向域名解析,若是沒有添加這個參數可能會出現用戶登陸較慢,或則客戶鏈接不上ftp的現象 reverse_lookup_enable=NO
8. 重啓vsftpd服務
9. 測試虛擬用戶登錄FTP
虛擬用戶的配置
1.)定製虛擬用戶模板配置文件
vim /etc/vsftpd/vconf/test
local_root=/opt/vsftp/file #指定虛擬用戶倉庫的具路徑 anonymous_enable=NO #設定不允許匿名訪問 write_enable=YES #允許寫的操作 virtual_use_local_privs=NO anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES #允許上傳 anon_other_write_enable=YES local_umask=022 #上傳文件的權限掩碼 chroot_list_enable=NO idle_session_timeout=300 #設定空閒鏈接超時時間 data_connection_timeout=1000 #設定單次傳輸最大時間 max_clients=0 #設定併發客戶端的訪問數量 max_per_ip=0 #設定客戶端的最大線程數 local_max_rate=0 #設定用戶的最大傳輸速率,單位b/s
2.)建立虛擬用戶的倉庫目錄並更改相應屬主/組且賦予相應權限
mkdir -p /opt/vsftpd/file
chown virtusers.virtusers /opt/vsftpd/file
chmod 755 /opt/vsftpd/file
===================以上操作完成虛擬用戶的設置========================