centos7安裝配置vsftpd

  • 1.安裝

查看是否安裝了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

  • 2.配置

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    #設定虛擬用戶配置文件所在目錄*
  • 3.添加FTP帳號用戶,建立宿主用戶
    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

  • 4.測試

本地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>
相關文章
相關標籤/搜索