FTP是僅基于TCP的服務(wù),不支持UDP,與眾不同的是FTP使用2個(gè)端口,一個(gè)是數(shù)據(jù)端口和一個(gè)命令端口【也可叫做控制端口】。通常來說這兩個(gè)端口是21命令端口和20的數(shù)據(jù)端口,F(xiàn)TP分主動(dòng)FTP和被動(dòng)FTP。
主動(dòng)FTP:
客戶端從一個(gè)任意的非特權(quán)端口N(N>1024)連接到FTP服務(wù)器的命令端口,也就是21端口。然后客戶端開始監(jiān)聽端口N+1,并發(fā)送FTP命令“port N+1”到FTP服務(wù)器。接著服務(wù)器會(huì)從它自己的數(shù)據(jù)端口20連接到客戶端制定的數(shù)據(jù)端口(N+1).
被動(dòng)FTP【PASV】
在被動(dòng)方式的FTP中,命令連接和數(shù)據(jù)連接都是由客戶端主動(dòng)發(fā)起。當(dāng)打開一個(gè)FTP連接時(shí),客戶端打開兩個(gè)任意的非特權(quán)本地端口N ,N+1(N>1024)第一個(gè)端口連接服務(wù)器的21端口,但與主動(dòng)方式FTP方式不同的是客戶端不會(huì)提交POST命令并允許服務(wù)器來回連它的數(shù)據(jù)端口,而是提交PASV命令。這樣做的結(jié)果是服務(wù)器開啟一個(gè)任意的非特權(quán)端口P(P>1024)并發(fā)送POST P命令給客戶端,然后由客戶端發(fā)起從本地端口N+1到服務(wù)器的端口P的連接來傳送數(shù)據(jù)。
配置文件:
主配置文件:vsftpd.conf
鎖定用戶家目錄的用戶列表文件:chroot_list
限制用戶列表文件:user_list
FTP用戶列表文件:ftpusers
VSFTP參數(shù)詳解:
#是否使用服務(wù)器本地時(shí)間YES為是 NO為否
use_localtime=YES
#用戶是否有寫權(quán)限
write_enable=YES
#用戶是否可以下載⑸柚夢(mèng)猋ES即允許用戶下載
download_enable=YES
是否顯示目錄下的.message文件
dirmessage_enable=YES
#用戶可以使用的ftp命令cmds_allowed=
ABOR,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RETR,RMD,RNFR,RNTO,SIZE,STOR,TYPE,
USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST,DELE
#是否開啟上傳下載日志
xferlog_enable=YES
#日志文件路徑
xferlog_file=http://www.3lian.com/var/log/vsftpd.log
設(shè)置用戶空閑會(huì)話中斷時(shí)間
#idle_session_timeout=600
設(shè)置空閑的數(shù)據(jù)連接中斷時(shí)間
#data_connection_timeout=60
#服務(wù)器最大用戶連接數(shù)
max_clients=50
#每個(gè)ip最大連接數(shù)
max_per_ip=5
是否允許用戶ASCII模式上傳、下載
ascii_upload_enable=NO
ascii_download_enable=NO
connect_from_port_20=YES
是否允許被動(dòng)連接
pasv_enable=YES
設(shè)置被動(dòng)連接的最小端口
pasv_min_port=65400
設(shè)置被動(dòng)連接的最大端口
pasv_max_port=65420
設(shè)置PAM認(rèn)證服務(wù)器的配置,該文件放在/etc/pam.d目錄下,
pam_service_name=vsftpd
使用/etc/hosts.allow和/etc/hosts.deny兩個(gè)文件實(shí)現(xiàn)訪問控制
tcp_wrappers=YES
監(jiān)聽端口
listen_port=21
是否監(jiān)聽
listen=YES
#是否開啟匿名用戶
anonymous_enable=NO
#是否開啟本地用戶
local_enable=YES
#文件上傳后的權(quán)限 022相當(dāng)于 -rw-r--r—
local_umask=022
#是否將用戶鎖定在用戶家目錄下
chroot_list_enable=YES
#需要鎖定家目錄的用戶列表文件
chroot_list_file=http://www.3lian.com/etc/vsftpd/chroot_list
#是否使用用戶限制列表
userlist_deny=YES
#用戶限制列表文件
userlist_file=http://www.3lian.com/etc/vsftpd/user_list
#文件傳輸最大速度
local_max_rate=900000