環(huán)境
測試主機:亞馬遜AWS EC2
系統(tǒng):Ubuntu 16.04
主動模式和被動模式
FTP是基于TCP的服務(wù),使用2個端口,一個數(shù)據(jù)端口和一個命令端口(也可叫做控制端口)。通常來說這兩個端口是21(命令端口)和20(數(shù)據(jù)端口)。但FTP工作方式的不同,數(shù)據(jù)端口并不總是20。這就是主動與被動FTP的最大不同之處。
主動模式:數(shù)據(jù)連接上,服務(wù)端從20端口去連接客戶端大于1024的端口
命令連接:客戶端 (>1024端口) ─> 服務(wù)器 21端口
數(shù)據(jù)連接:客戶端 (>1024端口)<─ 服務(wù)器 20端口
優(yōu)勢:主動FTP對FTP服務(wù)器的管理有利,但對客戶端的管理不利。因為FTP服務(wù)器企圖與客戶端的高位隨機端口建立連接,而這個端口很有可能被客戶端的防火墻阻塞掉。
被動模式:數(shù)據(jù)連接上,客戶端從大于1024端口去連接服務(wù)端大于1024的端口
命令連接:客戶端 (>1024端口) ─> 服務(wù)器 21端
數(shù)據(jù)連接:客戶端 (>1024端口) ─> 服務(wù)器 (>1024端口)
優(yōu)勢:被動FTP對FTP客戶端的管理有利,但對服務(wù)器端的管理不利。因為客戶端要與服務(wù)器端建立兩個連接,其中一個連到一個高位隨機端口,而這個端口很有可能被服務(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處于獨立啟動模式
anonymous_enable=YES //是否允許匿名訪問,匿名帳戶為 ftp和 anonymous
local_enable=YES //是否允許本地用戶訪問
write_enable=YES //允許本地用戶訪問時,是否允許他們有寫入的權(quán)限
local_umask=022 //本地用戶在寫入文件時,這些文件默認的權(quán)限
anon_upload_enable=YES //是否允許匿名用戶上傳
anon_mkdir_write_enable=YES //是否允許匿名用戶創(chuàng)建目錄
dirmessage_enable=YES //使用者進入某個目錄時是否顯示由message_file指定的文件內(nèi)容
xferlog_enable=YES //是否啟用日志
connected_from_port_20=YES //是否允許從20的連接請求
xferlog_file=/var/log/vsftpd.log //日志文件的位置
xferlog_std_format=YES //是否用標準格式存儲日志
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd //設(shè)置PAM認證服務(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ù)有沒有啟動
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
如果看到以上信息,證明ftp服務(wù)已經(jīng)開啟
啟動停止重啟FTP服務(wù)
service vsftpd status //查看ftp 服務(wù)器狀態(tài)
service vsftpd start //啟動ftp服務(wù)器
service vsftpd restart //重啟ftp服務(wù)器