簡(jiǎn)明直接:
主動(dòng)FTP:
命令連接:客戶(hù)端 >1024端口 —> 服務(wù)器 21端口
數(shù)據(jù)連接:客戶(hù)端 >1024端口 <— 服務(wù)器 20端口
被動(dòng)FTP:
命令連接:客戶(hù)端 >1024端口 —> 服務(wù)器 21端口
數(shù)據(jù)連接:客戶(hù)端 >1024端口 —> 服務(wù)器 >1024端口
具體說(shuō)明:
如圖對(duì)于兩種傳輸模式來(lái)說(shuō),控制連接的建立過(guò)程都是一樣,均為服務(wù)器監(jiān)聽(tīng)21號(hào)端口,客戶(hù)端向服務(wù)器的該端口發(fā)起TCP連接。主動(dòng)模式服務(wù)器通過(guò)控制連接知道客戶(hù)端監(jiān)聽(tīng)的端口后,使用自己的20號(hào)端口作為源端口,“主動(dòng)”發(fā)起TCP數(shù)據(jù)連接。而被動(dòng)模式服務(wù)器監(jiān)聽(tīng)1024-65535的一個(gè)隨機(jī)端口,并通過(guò)控制連接將該端口告訴客戶(hù)端,客戶(hù)端向服務(wù)器的該端口發(fā)起TCP數(shù)據(jù)連接。
兩種模式該選擇哪個(gè)了?選擇被動(dòng)模式。
如果FTP客戶(hù)端在私網(wǎng),F(xiàn)TP服務(wù)器在公網(wǎng)(云主機(jī)的應(yīng)用場(chǎng)景)應(yīng)該使用被動(dòng)模式,因?yàn)檫@種應(yīng)用場(chǎng)景FTP服務(wù)器訪問(wèn)不到在私網(wǎng)的FTP客戶(hù)端,而FTP客戶(hù)端可以訪問(wèn)到FTP服務(wù)器。
那ftp服務(wù)器放開(kāi)大于1024端口,不安全,如何做了?
服務(wù)端配置高點(diǎn)端口,然后防火墻中限制這個(gè)端口段可以被客戶(hù)端連接過(guò)來(lái)。
再者就是限制客戶(hù)端的ip,指定特定的客戶(hù)端地址。(誰(shuí)用誰(shuí)連)
被動(dòng)模式配置
connect_from_port_20=NO
PASV_enable=YES 開(kāi)啟被動(dòng)模式
PASV_min_port=%number% %u88AB動(dòng)模式最低端口
PASV_max_port=%number% %u88AB動(dòng)模式最高端口
2.ftp 創(chuàng)建虛擬用戶(hù)(加強(qiáng)訪問(wèn)安全的措施)
簡(jiǎn)明直接:
我們登錄FTP有三種方式,匿名登錄、本地用戶(hù)登錄和虛擬用戶(hù)登錄。
匿名登錄:在登錄FTP時(shí)使用默認(rèn)的用戶(hù)名,一般是ftp或anonymous。
本地用戶(hù)登錄:使用系統(tǒng)用戶(hù)登錄,在/etc/passwd中。
虛擬用戶(hù)登錄:這是FTP專(zhuān)有用戶(hù),有兩種方式實(shí)現(xiàn)虛擬用戶(hù),本地?cái)?shù)據(jù)文件和數(shù)據(jù)庫(kù)服務(wù)器。
FTP虛擬用戶(hù)是FTP服務(wù)器的專(zhuān)有用戶(hù),使用虛擬用戶(hù)登錄FTP,只能訪問(wèn)FTP服務(wù)器提供的資源,大大增強(qiáng)了系統(tǒng)的安全。
具體實(shí)施:
2.1 搭建
yum -y install vsftpd
添加虛擬用戶(hù)文件,添加虛擬用戶(hù)名和密碼,一行用戶(hù)名,一行密碼,以此類(lèi)推。奇數(shù)行為用戶(hù)名,偶數(shù)行為密碼。
vim /etc/vsftpd/vuser.txt
name #用戶(hù)
passwd #密碼
生成虛擬用戶(hù)認(rèn)證文件
db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db
編輯vsftpd的pam認(rèn)證文件/etc/pam.d/vsftpd
vsftpd的其他行可注釋掉。
添加以下:
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
建立本地映射用戶(hù)并設(shè)置宿主目錄權(quán)限
useradd -d /data -s /sbin/nologin vsftpd
chmod a-w /data
chown -R vsftpd:vsftpd /data
2.2 配置文件vsftpd.conf
#連接相關(guān)
ftpd_banner=welcome to ftp service
#空閑超時(shí)時(shí)間,用戶(hù)超過(guò)這段時(shí)間不動(dòng)作被服務(wù)器提出。
idle_session_timeout=300
#數(shù)據(jù)連接超時(shí)時(shí)間
data_connection_timeout=60
connect_timeout=60
max_clients=100
#允許每個(gè)客戶(hù)端連接3個(gè)
max_per_ip=3
listen_address=192.168.100.100
listen_port=21
#權(quán)限相關(guān)
#不允許匿名用戶(hù)登錄
anonymous_enable=NO
#允許本地用戶(hù)登錄(這里指創(chuàng)建系統(tǒng)用戶(hù)vsftpd)
local_enable=YES
#允許ascii模式的上傳(可以防止上傳腳本等惡意文件),而不會(huì)遭受拒絕服務(wù)的危險(xiǎn)。
ascii_upload_enable=YES
guest_enable=YES
guest_username=vsftpd
#允許匿名用戶(hù)上傳(這里指系統(tǒng)用戶(hù)下的虛擬用戶(hù))
anon_upload_enable=YES
#允許匿名用戶(hù)創(chuàng)建和寫(xiě)入
anon_mkdir_write_enable=YES
#開(kāi)啟全局權(quán)限
write_enable=YES
#設(shè)置這個(gè)之后客戶(hù)端上傳目錄權(quán)限就改為755,文件權(quán)限就為644
anon_umask=022
#以下為系統(tǒng)默認(rèn)設(shè)置
#允許為目錄配置顯示信息,顯示每個(gè)目錄下面的message_file文件的內(nèi)容。
dirmessage_enable=YES
#xferlog_enable=YES,啟用記錄上傳/下載活動(dòng)日志功能。
xferlog_enable=YES
#connect_from_port_20=YES啟用FTP數(shù)據(jù)端口的連接請(qǐng)求
connect_from_port_20=NO
xferlog_std_format=YES
#在VSFTPD中使用TCP_Wrappers遠(yuǎn)程訪問(wèn)控制機(jī)制,默認(rèn)值為YES
tcp_wrappers=YES
特別強(qiáng)調(diào)的配置:
#開(kāi)啟虛擬用戶(hù);虛擬用戶(hù)對(duì)應(yīng)的系統(tǒng)用戶(hù);PAM認(rèn)證文件。
guest_enable=YES
guest_username=vsftpd
pam_service_name=vsftpd
#這種完成后只能上傳文件,及下載文件。但是不能修改ftp 服務(wù)端的文件。
如何才能修改及刪除呢?
anon_other_write_enable=YES #允許虛擬用戶(hù)寫(xiě)入權(quán)限(即修改刪除操作)
2.3 啟動(dòng)vsftpd
systemctl start vsftpd
更多關(guān)于云服務(wù)器,域名注冊(cè),虛擬主機(jī)的問(wèn)題,請(qǐng)?jiān)L問(wèn)西部數(shù)碼官網(wǎng):m.ps-sw.cn