溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

FTP 文件共享服務(wù)

發(fā)布時間:2020-05-25 14:14:43 來源:網(wǎng)絡(luò) 閱讀:452 作者:何燾 欄目:建站服務(wù)器

FTP 文件共享服務(wù) 基于tcp協(xié)議  端口:tcp 21(三次握手建立連接);tcp 20(數(shù)據(jù)傳輸)

工作模式  應(yīng)用層

根據(jù)客戶端的角度劃分的:

[主動模式]

客戶端開啟一個1024以上的動態(tài)端口如:(2000)

--》連接服務(wù)器21號端口進(jìn)行三次握手建立連接,三次握手的過程中會有延遲,延遲過程中:

客戶端再次開啟一個比上一個端口大1的端口(2001),監(jiān)聽

--》客戶端給服務(wù)器發(fā)送命令Port2001,告知服務(wù)器,客戶端的數(shù)據(jù)傳輸端口的2001

--》服務(wù)器端開啟20端口與客戶端的2001號端口建立連接進(jìn)行數(shù)據(jù)通信


[被動模式]

客戶端開啟一個動態(tài)端口(2000)

--》連接服務(wù)器21號端口進(jìn)行三次握手建立連接,三次握手的過程中會有延遲,延遲過程中:

客戶端再次開啟一個比上一個端口大1的端口(2001),監(jiān)聽

--》客服端給服務(wù)器端發(fā)送pasv命令,告知服務(wù)器,客戶端現(xiàn)在處于被動模式,等待服務(wù)器端主動連接客戶端

--》服務(wù)器端給客戶端發(fā)送Port3000命令,告知給客戶端,服務(wù)器端的數(shù)據(jù)傳輸端口的3000

--》客戶端拿著2001號端口與服務(wù)器端的3000號端口建立連接進(jìn)行數(shù)據(jù)通信


實驗準(zhǔn)備

兩臺服務(wù)器linux系統(tǒng) centos 7.1

關(guān)閉防火墻

systemctl stop firewalld 臨時關(guān)閉 

systemctl disable firewalld 永久關(guān)閉

關(guān)閉selinux 

setenforce 0 臨時關(guān)閉

sed -i '/SELINUX/s/enforcing/disabled/g' /etc/selinux/config 永久關(guān)閉

yum -y install ftp    客戶端安裝FTP服務(wù)

yum -y install vsftpd  服務(wù)端安裝vsftp服務(wù) 

啟動服務(wù)

systemctl enable vsftpd  開啟自動啟動服務(wù)

systemctl restart vsftpd 重啟服務(wù)

systemctl stop vsftpd   停止服務(wù)



主配置文件 /etc/vsftpd/vsftpd.conf


#12 開啟匿名訪問

#16 允許本地的實體賬戶登陸

#19 允許實體賬戶有寫權(quán)限

#23 創(chuàng)建文件的權(quán)限644(實體用戶)

#29 允許匿名用戶上傳(只能上傳文件不能上傳目錄)

#33 匿名創(chuàng)建目錄的權(quán)限

#37 記錄訪問開啟

#40 開啟日志記錄功能

#43 開啟20號端口數(shù)據(jù)傳輸

#48、49  改變上傳文件的屬主

#53 日志所在的路徑及文件名

#57 日志記錄時是否采用標(biāo)準(zhǔn)格式

#60 會話連接超時時間600s

#63 數(shù)據(jù)傳輸超時時間120s

#82 上傳數(shù)據(jù)傳輸模式

#90 不允許匿名用戶的郵箱地址作為其密碼

#92 記錄文件的郵箱地址

#100 實體賬戶只讓其在默認(rèn)登錄的位置活動

#101 開啟其列表功能

#103 列表的存放位置及路徑

#114 拒絕監(jiān)聽(ipv4)

#123 ipv6監(jiān)聽,能幫助監(jiān)聽ipv4

#125 用戶認(rèn)證  映射認(rèn)證列表

#126 只要在用戶列表中的用戶都不能登錄ftp


實驗一

在配置文件中的特殊設(shè)置(實體用戶切換目錄限制)

【不允許實體用戶切換路徑,只能在默認(rèn)訪問位置活動】

vim /etc/vsftpd/vsftpd.conf


100行 解注釋(即將#號去掉) 開啟實體用戶切換目錄功能

chroot_local_user = yes

手動添加

allow_writeable_chroot = yes 允許用戶進(jìn)行登陸


101行 解注釋

chroot_list_enable = YES 開啟用戶列表功能,在該列表中的用戶可以切換路徑


103行 解注釋

chroot_list_file = /etc/vsftpd/chroot_list 

指定用戶列表所在路徑及文件名,手動創(chuàng)建 

vim /etc/vsftpd/chroot_list 

加入到列表中的用戶可以切換路徑,列表外的用戶不可以


重啟服務(wù)驗證



實驗二

vim  etc/vsftpd/vsftpd.conf

在配置文件中特殊權(quán)限設(shè)置 (允許匿名用戶使用權(quán)限)

【實現(xiàn)匿名用戶上傳、創(chuàng)建目錄、刪除等權(quán)限】

29行 解注釋

anon_upload_enable = YES 開啟匿名用戶上傳功能,只能上傳文件


33行 解注釋

anon_mkdir_write_enable = YES 創(chuàng)建目錄權(quán)限


34行 解注釋

anon_other_write_enable = YES 手動添加,開啟匿名用戶的其他寫權(quán)限


重啟服務(wù)驗證


客戶端驗證

用戶名:ftp

密碼:任意


修改匿名用戶默認(rèn)登陸位置的安全權(quán)限(屬主、屬組)

chown -R ftp.ftp /var/ftp/pub


重啟服務(wù)驗證

客戶端:可以上傳、創(chuàng)建目錄、刪除等




實驗三

用戶限制配置文件 /etc/vsftpd

【限制實體系統(tǒng)用戶的登陸】

用戶列表文件:ftpusers、user_list


ftpusers:

只要在給列表中的用戶都拒絕訪問


user_list:

在主配置文件中設(shè)置

userlist_enable = yes/no

若該項值為YES -》 開啟用戶列表功能,在user_list中用戶拒絕登錄

若該項值為NO -》 user_list列表失效


userlist_enable = yes

若userlist_deny = YES 表示列表內(nèi)用戶不允許登陸,列表外用戶只能命令行登陸

若userlist_deny = NO  只有在列表中用戶可以登錄



實驗四

虛擬用戶:w


思想:客戶端需要通過賬號和密碼登錄,但是該賬戶不是系統(tǒng)中的實體賬號,而是一個虛擬賬號

在服務(wù)器端創(chuàng)建一個實體賬戶,將該賬戶映射到多個虛擬賬號上


1.新創(chuàng)建虛擬賬號文本文件 /etc/vsftpd

vim vftpuser (奇數(shù)行寫用戶名,偶數(shù)行寫密碼)

snow

123

lisa

321

不能有多余的空行

保存退出


2.將文本文件制作數(shù)據(jù)庫文件

命令:db_load -T -t hash -f /vftpuser  /etc/vsftpd/vftpuser.db

-T :將文本文件中內(nèi)容導(dǎo)入到數(shù)據(jù)庫文件中

-t :指定加密算法為hash

-f :指定文本文件,生成的庫文件所在路徑及文件名


3.配置驗證文件  /etc/pam.d/vsftpd  

將原驗證文件備份

cp /usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/vsftpd.pam  /etc/pam.d/vsftpd 拷貝模板驗證文件


vim /etc/pam.d/vsftpd

auth required pam_userdb.so db = /etc/vsftpd/vftpuser

account required pam_userdb.so db = /etc/vsftpd/vftpuser

執(zhí)行數(shù)據(jù)庫文件的位置及文件名,注意不需要加.db


4.創(chuàng)建實體賬戶,將其映射到多個虛擬賬戶

#useradd -d /var/ftp/vftp test  創(chuàng)建新賬戶test  并指定家目錄路徑

#chmod 777 /var/ftp/vftp


修改主配置文件 vim /etc/vsftpd/vsftpd.conf  

在最下面一行添加

guest_enable = yes 開啟虛擬用戶

guest_username = test 映射的實體賬號



5.重啟服務(wù)驗證

[注]開啟虛擬用戶功能后,所有實體賬戶都不能登錄

若要實體賬戶登錄,需將實體用戶加入到~/vftpuser中

systemctl status vsftpd -l 顯示詳細(xì)狀態(tài)


實驗五:


限制虛擬用戶的權(quán)限

vim /etc/vsftpd/vsftpd.conf

【將所有的匿名功能關(guān)閉】

在最下一行添加 

user_config_dir = /etc/vsftpd/vftp


【設(shè)置所有虛擬用戶的權(quán)限限制文件的路徑】

#cd /etc/vsftpd/vftp

vim snow

anon_world_readable_only = yes 開啟讀權(quán)限

write_enable = yes 開啟寫權(quán)限

anon_upload_enable = yes 上傳

anon_mkdir_write_enable = yes 創(chuàng)建目錄

anon_other_write_enable = yes 其它寫權(quán)限

保存退出,重啟服務(wù)驗證










向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI