環(huán)境
測試主機(jī):亞馬遜AWS EC2
系統(tǒng):Ubuntu 16.04
主動(dòng)模式和被動(dòng)模式
FTP是基于TCP的服務(wù)祝闻,使用2個(gè)端口赏殃,一個(gè)數(shù)據(jù)端口和一個(gè)命令端口(也可叫做控制端口)漾肮。通常來說這兩個(gè)端口是21(命令端口)和20(數(shù)據(jù)端口)路星。但FTP工作方式的不同席镀,數(shù)據(jù)端口并不總是20榴捡。這就是主動(dòng)與被動(dòng)FTP的最大不同之處杈女。
主動(dòng)模式:數(shù)據(jù)連接上,服務(wù)端從20端口去連接客戶端大于1024的端口
命令連接:客戶端 (>1024端口) ─> 服務(wù)器 21端口
數(shù)據(jù)連接:客戶端 (>1024端口)<─ 服務(wù)器 20端口
優(yōu)勢:主動(dòng)FTP對FTP服務(wù)器的管理有利吊圾,但對客戶端的管理不利达椰。因?yàn)镕TP服務(wù)器企圖與客戶端的高位隨機(jī)端口建立連接,而這個(gè)端口很有可能被客戶端的防火墻阻塞掉街夭。
被動(dòng)模式:數(shù)據(jù)連接上砰碴,客戶端從大于1024端口去連接服務(wù)端大于1024的端口
命令連接:客戶端 (>1024端口) ─> 服務(wù)器 21端
數(shù)據(jù)連接:客戶端 (>1024端口) ─> 服務(wù)器 (>1024端口)
優(yōu)勢:被動(dòng)FTP對FTP客戶端的管理有利,但對服務(wù)器端的管理不利板丽。因?yàn)榭蛻舳艘c服務(wù)器端建立兩個(gè)連接呈枉,其中一個(gè)連到一個(gè)高位隨機(jī)端口,而這個(gè)端口很有可能被服務(wù)器端的防火墻阻塞掉埃碱。
查看是否已經(jīng)安裝ftp軟件
which vsftpd //如果看到有vsftpd的目錄說明服務(wù)器已經(jīng)安裝了ftp軟件
sudo apt-get purge vsftpd //為了避免沖突猖辫,先卸載vsftpd
安裝
sudo -s
apt-get update
apt-get install vsftpd
配置
cp /etc/vsftpd.conf /etc/vsftpd.conf.backup //備份配置文件
vim /etc/vsftpd.conf
設(shè)置匿名上傳配置
listen=YES //FTP處于獨(dú)立啟動(dòng)模式
anonymous_enable=YES //是否允許匿名訪問,匿名帳戶為 ftp和 anonymous
local_enable=YES //是否允許本地用戶訪問
write_enable=YES //允許本地用戶訪問時(shí),是否允許他們有寫入的權(quán)限
local_umask=022 //本地用戶在寫入文件時(shí),這些文件默認(rèn)的權(quán)限
anon_upload_enable=YES //是否允許匿名用戶上傳
anon_mkdir_write_enable=YES //是否允許匿名用戶創(chuàng)建目錄
dirmessage_enable=YES //使用者進(jìn)入某個(gè)目錄時(shí)是否顯示由message_file指定的文件內(nèi)容
xferlog_enable=YES //是否啟用日志
connected_from_port_20=YES //是否允許從20的連接請求
xferlog_file=/var/log/vsftpd.log //日志文件的位置
xferlog_std_format=YES //是否用標(biāo)準(zhǔn)格式存儲日志
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd //設(shè)置PAM認(rèn)證服務(wù)的配置文件名,該文件位于/etc/pam.d目錄下
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
utf8_filesystem=YES
端口開放
在安全組中開放相關(guān)端口
netstat -an | grep 21 //查看服務(wù)有沒有啟動(dòng)
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
如果看到以上信息,證明ftp服務(wù)已經(jīng)開啟
啟動(dòng)停止重啟FTP服務(wù)
service vsftpd status //查看ftp 服務(wù)器狀態(tài)
service vsftpd start //啟動(dòng)ftp服務(wù)器
service vsftpd restart //重啟ftp服務(wù)器