查看是否安裝了FTP:rpm -qa|grep vsftpd
安裝:yum -y install vsftpd
chkconfig vsftpd on安全
啓動vsftpd: systemctl start vsftpd.service服務器
vsftpd幾種用戶:本地用戶、虛擬用戶、匿名用戶。app
主動模式、被動模式:異步
PORT主動 FTP模式:
命令鏈接:客戶端>1024端口 -> 服務器21端口
數據鏈接:客戶端>1024端口 <- 服務器20端口async
PASV被動 FTP模式:
命令鏈接:客戶端>1024端口 -> 服務器21端口
數據鏈接:客戶端>1024端口 <- 服務器>1024端口tcp
文件說明:
ll /etc/vsftpd/ftpusers:指定哪些用戶帳號不能訪問FTP服務器,如root等。
ll /etc/vsftpd/user_list:該文件裏用戶帳號默認狀況下不能訪問FTP服務器,僅當vsftpd.conf配置文件裏啓用userlist_enabled=NO選項時才容許訪問。ide
vsftpd 虛擬用戶配置說明。性能
cat /etc/vsftpd/vsftpd.conf測試
anonymousenable=NO #設定不容許匿名訪問 localenable=YES #設定本地用戶能夠訪問。注意:主要是爲虛擬宿主用戶,若是該項目設定爲NO,全部虛擬用戶將沒法訪問。 writeenable=YES #設定能夠進行寫操做。 localumask=022 #設定上傳後文件的權限掩碼。 anonuploadenable=NO #禁止匿名用戶上傳。 anonmkdirwriteenable=NO #禁止匿名用戶創建目錄。 dirmessageenable=YES #設定開啓目錄標語功能。 xferlogenable=YES #設定開啓日誌記錄功能。 connectfromport20=YES #設定端口20進行數據鏈接。 chownuploads=NO #設定禁止上傳文件更改宿主。 xferlogfile=/var/log/vsftpd.log #設定Vsftpd的服務日誌保存路徑。 xferlogstdformat=YES #設定日誌使用標準的記錄格式。 asyncaborenable=YES #設定支持異步傳輸功能。 asciiuploadenable=YES asciidownloadenable=YES #設定支持ASCII模式的上傳和下載功能。 ftpdbanner=This Vsftp server supports virtual users ^^ #設定Vsftpd的登錄標語。 chrootlistenable=NO #禁止用戶登出本身的FTP主目錄。 lsrecurseenable=NO #禁止用戶登錄FTP後使用"ls -R"的命令。該命令會對服務器性能形成巨大開銷。若是該項被容許,那麼當多用戶同時使用該命令時將會對該服務器形成威脅。 listen=YES #設定該Vsftpd服務工做在StandAlone模式下。 pamservicename=vsftpd #設定PAM服務下Vsftpd的驗證配置文件名。所以,PAM驗證將參考/etc/pam.d/下的vsftpd文件配置。 userlistenable=YES #設定userlistfile中的用戶將不得使用FTP。 tcpwrappers=YES #設定支持TCP Wrappers #pasvpromiscuous=yes #關閉ftp被動模式PASV的安全檢查。 chrootlocaluser=yes #將全部用戶限制在主目錄。ftp用戶不能夠向上切換到其餘目錄以外 chrootlistenable #是否啓動限制用戶的名單/etc/vsftpd/chrootlist 。 YES爲啓用,則/etc/vsftpd/chrootlist文件用戶不受限制。 NO禁用(包括註釋掉也爲禁用) chrootlistfile=/etc/vsftpd/chrootlist #是否限制在主目錄下的用戶名單,至因而限制名單仍是排除名單,這取決於chrootlocaluser的值。 allowwriteablechroot=YES #vsftpd在2.3.5以後,vsftpd爲真強安全檢查,若是用戶被限制在其主目錄下,則該用戶的主目錄下再也不具備寫權限。如發現寫權限,就會報錯誤。修復錯誤一個方法是增長vsftpd.conf配置文件加allowwriteablechroot=YES。 #如下關於Vsftpd虛擬用戶支持的重要配置項目,須要本身手動添加配置 guestenable=YES #設定啓用虛擬用戶功能。 guestusername=ftpuser #指定虛擬用戶的宿主用戶。 virtualuselocalprivs=YES #設定虛擬用戶權限與本都用戶同樣權限。 #pamservicename=vsftpd #虛擬用戶啓用pam認證 userconfigdir=/etc/vsftpd/vuserconf #設定虛擬用戶配置文件所在目錄*
useradd ftpuser -d /home/vsftpd -s /sbin/nologin chown ftpuser:ftpuser /data/vsftpd -R
建虛擬用戶文件:ui
cat /etc/vsftpd/vftpuser test test@123
生成虛擬用戶數據文件:
db_load -T -t hash -f /etc/vsftpd/vftpuser /etc/vsftpd/vftpuser.db chmod 600 /etc/vsftpd/vftpuser.db
配置pam認證文件:
cat /etc/pam.d/vsftpd #%PAM-1.0 auth required pam_userdb.so db=/etc/vsftpd/vftpuser account required pam_userdb.so db=/etc/vsftpd/vftpuser
建立用戶配置:
ll /data/vsftpd/
drwxrwxrwx 3 ftpuser ftpuser 4096 2月 1 17:26 test
編輯每一個虛擬用戶配置文件:
cat /etc/vsftpd/vuser_conf/test local_root=/data/vsftpd/test anon_world_readable_only=no write_enable=yes anon_upload_enable=yes anon_mkdir_write_enable=yes anon_other_write_enable=yes
建立用戶目錄
mkdir -p /data/vsftpd/test
重啓vsftpd: systemctl start vsftpd.service
本地ftp測試:
ftp 127.0.0.1 Connected to 127.0.0.1 (127.0.0.1). 220 (vsFTPd 3.0.2) Name (127.0.0.1:root): test 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp>