現在網上關於vsftpd的資料不少,但是版本已經比較老,配置起來各種錯誤,耽誤不少時間,現將配置步驟更新如下,配置環境版本:Debian 9 + vsftpd: version 3.0.3
1.apt install vsftpd
2.安裝完成后,vsftpd自動添加了ftp用戶和ftp用戶組
3.mkdir /ftp,添加ftp根目錄
4.vi /etc/passwd || usermod -d /ftp ftp
修改ftp主目錄 原:/srv/ftp 新 /ftp
5.修改/ftp目錄所屬組為ftp
chgrp ftp /ftp
6.創建vsftp用戶目錄
mkdir /ftp/vsftp
7.添加vsftp用戶
useradd -g ftp -d /ftp/vsftp -s /sbin/nologin vsftp
passwd vsftp
******
8.添加FTP配置文件目錄
mkdir /etc/vsftpd/
mkdir /etc/vsftpd/vconf
9.創建用戶和密碼文件
創建用戶和密碼文件,然后用db4工具把用戶名和密碼轉換成系統識別的格式。
vi vftpuser.txt //新建文件寫入用戶名和密碼
注:第一行寫用戶名,第二行寫密碼,以此類推,要創建多少虛擬用戶,依次寫下去。
例如:
abcd ***** dcba *****
創建了兩個用戶abc和cba密碼分別為****和*****
接着使用工具將其轉換,並且存放在適當的位置,如:、
db5.3_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/vsftpd_login.db
命名為vsftpd_login.db。
注意:此時如果沒有安裝db4工具會出現錯誤。
解決方法:
apt install db5.3-util
db5.3_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/vsftpd_login.db
10.設置PAM驗證文件,並制定虛擬用戶數據庫文件進行讀取
使用find / -name 'pam_userdb.so'查找
結果:/lib/x86_64-linux-gnu/security/pam_userdb.so
修改/etc/pam.d/vsftpd
添加:
auth sufficient /lib/x86_64-linux-gnu/security/pam_userdb.so db=/opt/vsftp/vsftpd_login account sufficient /lib/x86_64-linux-gnu/security/pam_userdb.so db=/opt/vsftp/vsftpd_login auth include system-auth account include system-auth session include system-auth session required pam_loginuid.so
11.創建虛擬用戶配置文件:
12.配置vsftpd參數 ,vi /etc/vsftpd.conf
vconf/default文件內容:
local_root=/home/ftp/ftpdir #指定虛擬用戶倉庫的具路徑 anonymous_enable=NO #設定不允許匿名訪問 write_enable=YES #允許寫的操作 local_umask=022 #上傳文件的權限掩碼 anon_upload_enable=YES #不允許匿名上傳 anon_mkdir_write_enable=YES #不允許匿名用戶建立目錄 idle_session_timeout=300 #設定空閑鏈接超時時間 data_connection_timeout=1000 #設定單次傳輸最大時間 max_clients=0 #設定並發客戶端的訪問數量 max_per_ip=0 #設定客戶端的最大線程數 local_max_rate=0 #設定用戶的最大傳輸速率,單位b/s cmds_allowed=ABOR,CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,RETR,REST,SIZE,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST #這里是你給他設的權限,我這里給的權限符合上頭所說的要求,可以上傳下載,但不能刪除文件,也不能創建文件夾 #完整權限:cmds_allowed=ABOR,CWD,LIST,DELE,RMD,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RETR,REST,RNFR,RNTO,SIZE,STOR,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST
新用戶配置文件通過默認直接復制(注意復制完修改local_root參數):
cp default abc
cp default cba
mkdir /ftp/abc
mkdir /ftp/cba
修改屬主/組信息
chown abc:ftp /ftp/abc
13.配置vsftpd參數:
vi /etc/vsftpd
write_enable=YES local_umask=022 # 手動添加以下項目 #啟用虛擬用戶功能 guest_enable=YES #指定虛擬的宿主用戶 guest_username=vsftp #設定虛擬用戶的權限符合他們的宿主用戶 virtual_use_local_privs=YES #設定虛擬用戶個人vsftp的配置文件存放路勁。這個被指定的目錄里,將被存放每個虛擬用戶個性的配置文件,注意的地方是:配置文件名必須和虛擬用戶名相同。 user_config_dir=/etc/vsftpd/vconf listen_port=21 pasv_enable=YES pasv_min_port=13031 pasv_max_port=13051 pasv_promiscuous=YES ftpd_banner=FTP service
vsftpd配置附件:vsftpd.rar
vsftpd參數參考:http://www.cnblogs.com/9426yu/p/4835443.html