目錄
一、FTP協(xié)議兩種工作模式
二、FTP數(shù)據(jù)兩種傳輸模式
三、FTP用戶分類
四、VSFTP配置案例
4.1匿名開放模式
4.2本地用戶模式
4.3虛擬用戶模式
五、實(shí)驗(yàn)總結(jié)
一、FTP協(xié)議兩種工作模式
主動(dòng)模式:
1、客戶端主動(dòng)向ftp服務(wù)器發(fā)送控制連接,三次握手控制連接建立成功(密碼認(rèn)證)。
源端口:隨機(jī)端口1026???? 目的端口:21
2、用于傳輸控制命令的控制連接建立成功之后,客戶端向ftp服務(wù)器發(fā)送port消息來告訴ftp服務(wù)器接下來要與其傳輸數(shù)據(jù)所使用的端口號(hào)。
如:隨機(jī)端口號(hào)1027
3、若要彼此傳輸數(shù)據(jù),ftp服務(wù)器主動(dòng)與客戶端建立數(shù)據(jù)連接。
源端口號(hào):20?????? 目的端口號(hào):1027(客戶端通過控制連接發(fā)送過來的port消息攜帶的 )
說明:我們知道防火墻是根據(jù)報(bào)文五元組建立會(huì)話,來對(duì)外部流量進(jìn)行篩選是否允許其訪問內(nèi)網(wǎng)。如果ftp客戶端位于防火墻的內(nèi)網(wǎng),此時(shí)防火墻只緩存的有客戶端與ftp服務(wù)器之間控制會(huì)話。如果采用主動(dòng)模式,當(dāng)ftp服務(wù)器要向客戶端發(fā)送數(shù)據(jù)連接請(qǐng)求時(shí),在經(jīng)過防火墻時(shí)由于會(huì)話表里保存的沒有此五元組端口號(hào)的記錄,因此防火墻就會(huì)禁止ftp請(qǐng)求數(shù)據(jù)連接報(bào)文的通過,因此彼此之間無法進(jìn)行ftp文件的傳輸。
被動(dòng)模式:
1、客戶端主動(dòng)向ftp服務(wù)器建立控制連接,三次握手控制連接建立成功(密碼認(rèn)證)。
源端口: 隨機(jī)端口1025??? 目的端口: 21
2、控制連接建立成功后,客戶端向ftp服務(wù)器發(fā)送PASV被動(dòng)消息,告訴ftp服務(wù)器在接下來傳輸數(shù)據(jù)時(shí)其處于被動(dòng)模式,由客戶端向ftp服務(wù)器建立數(shù)據(jù)連接。
3、ftp服務(wù)器收到PASV消息后,自己開放個(gè)用于傳輸數(shù)據(jù)的隨機(jī)端口號(hào)如:m,并將其端口號(hào)告訴給客戶端。
4、要傳輸數(shù)據(jù)時(shí)由客戶端發(fā)送數(shù)據(jù)連接。
源端口:1026隨機(jī)端口??? 目的端口:m
說明:被動(dòng)連接解決了在防火墻的環(huán)境下處于內(nèi)外區(qū)域的c/s之間無法通過ftp傳輸數(shù)據(jù)的問題。因?yàn)椴还苁强刂七B接還是數(shù)據(jù)連接都是先由客戶端主動(dòng)發(fā)起的,因此防火墻會(huì)話表里就含有彼此報(bào)文交互的五元組會(huì)話記錄,當(dāng)ftp要向客戶端回復(fù)數(shù)據(jù)連接建立成功經(jīng)過防火墻時(shí),報(bào)文匹配會(huì)話五元組放行流量。
二、FTP數(shù)據(jù)兩種傳輸模式
1、ASCLL傳輸方式:用于傳輸文本文件。如果用戶使用的是windows系統(tǒng),需要從unix系統(tǒng)搭建的服務(wù)器上下載一個(gè)文本文件。由于不同操作系統(tǒng)之間對(duì)文本內(nèi)容文件的換行符表示的字符不同(如:win /r/n ,unix? /n)如果直接將unix的文本文件原樣下載到win系統(tǒng)上,在win系統(tǒng)上查看文本內(nèi)容時(shí),文本之間將沒有換行,在換行處會(huì)出現(xiàn)無法解析的亂碼。因此ASCLL文本傳輸模式會(huì)自動(dòng)將不同主機(jī)之間傳輸?shù)奈谋疚募械膿Q行符轉(zhuǎn)換成本地的表示形式在存到本機(jī)。這樣在向ftp服務(wù)器上傳或下載文本文件后就不會(huì)出現(xiàn)換行處不換行,亂碼的情況了。
2、Binary二進(jìn)制傳輸形式:用于傳輸二進(jìn)制文件。在此模式下不會(huì)對(duì)文件進(jìn)行任何處理即保存文件的位序。因此如果下載的是二進(jìn)制非文本文件,如果使用ASLL數(shù)據(jù)傳輸模式無疑會(huì)把二進(jìn)制文件中原本的字符當(dāng)換行符轉(zhuǎn)換后破壞其整個(gè)二進(jìn)制文件。
三、FTP用戶分類
1、匿名用戶:即anonymous用戶。當(dāng)客戶端要訪問ftp服務(wù)器時(shí),可以在沒有服務(wù)器用戶名和密碼的前提下,通過匿名用戶訪問ftp服務(wù)器的共享資源。
2、實(shí)體用戶:指在ftp服務(wù)器上創(chuàng)建注冊(cè)的本地賬戶。其用戶在登錄到ftp服務(wù)器后默認(rèn)的當(dāng)前工作目錄為以自己命名的工作目錄,可以修改。不僅可以訪問ftp的共享資源,還可以訪問其系統(tǒng)下該用戶的其它資源。
3、虛擬用戶:為了保證FTP服務(wù)器的安全性,由vsftpd服務(wù)器提供的非系統(tǒng)用戶賬號(hào)。虛擬用戶FTP登錄后將把指定的目錄作為FTP根目錄。虛擬用戶與本地用戶具有類似的功能,由于虛擬用戶相對(duì)安全,因此正逐步替代本地用戶賬號(hào)的使用。
四、VSFTP配置案例
實(shí)驗(yàn)環(huán)境
VSFTP-Server |
IP:192.168.200.254/24 |
VSFTP-Client |
IP:192.168.200.28/24 |
4.1匿名開放模式
FTP-Server:
1、安裝vsftp服務(wù)
2、查看vsftp服務(wù)相關(guān)配置文件
3、在客戶機(jī)上安裝ftp客戶端工具,用于登錄到ftp服務(wù)器
4、備份/etc/vsftpd/vsftpd.conf主配置文件、生成vsftp主配置文件、修改并添加匿名用戶的配置參數(shù)
5、防火墻放行ftp服務(wù),否則ftp拒絕用戶登錄;匿名用戶默認(rèn)登錄到ftp服務(wù)器的主目錄為/var/ftp/pub目錄,授予匿名用戶映射服務(wù)器的真實(shí)用戶ftp的寫權(quán)限,并設(shè)置selinux的布爾值參數(shù),否則匿名用戶無法創(chuàng)建上傳文件。
6、開啟vsftpd服務(wù)
7、客戶端登錄ftp服務(wù)器,下載并上傳文件測試
4.2本地用戶模式
FTP-Server:
1、安裝vsftpd服務(wù)程序、備份主配置文件/etc/vsftpd/vsftpd.conf。前面已有做過,再此略過。
2、修改并添加主配置文件中本地用戶相關(guān)配置參數(shù),將之前實(shí)驗(yàn)的匿名用戶登錄關(guān)閉。與本地用戶配置相關(guān)的主要參數(shù)local_enable=YES,write_enable=YES,local_umask=022其它可選。
3、創(chuàng)建用于客戶端登錄測試的ftp本地賬戶
4、防火墻放行ftp服務(wù)流量、設(shè)置selinux的布爾值策略、因?yàn)楸镜赜脩裟J(rèn)登錄到ftp服務(wù)器工作主目錄為自己的家目錄,因此在自己的家目錄擁有寫入的權(quán)限。由于上面演示過了此處不在表述。
5、重啟ftp服務(wù)
6、客戶端使用測試本地賬戶ftpclient,登錄ftp服務(wù)器進(jìn)行測試。
7、客戶端使用ftp系統(tǒng)的root用戶登錄到ftp服務(wù)器進(jìn)行測試。
8、從ftp服務(wù)器黑名單中刪除root用戶,來允許其登錄到ftp服務(wù)器
9、重啟ftp服務(wù)、客戶端使用root用戶重新登錄ftp測試。
10、去除ftp主配置文件中的chroot_local_user=YES根鎖定參數(shù),在用客戶端登錄測試。
4.3虛擬用戶模式
VSFTP-Server:
1、在ftp服務(wù)器的/etc/vsftpd目錄下創(chuàng)建包含有虛擬賬戶和其密碼的文件。
2、使用db-load命令將創(chuàng)建的虛擬用戶信息文件轉(zhuǎn)化成vsftpd服務(wù)可以直接加載的數(shù)據(jù)庫文件。
3、創(chuàng)建用于虛擬用戶權(quán)限身份驗(yàn)證的PAM文件(文件名任意),將剛才生成的虛擬用戶信息數(shù)據(jù)庫文件關(guān)聯(lián)到PAM認(rèn)證文件內(nèi)。
4、創(chuàng)建虛擬用戶映射到ftp服務(wù)器的真實(shí)賬戶,并通過指定真實(shí)用戶的家目錄來映射虛擬目錄登錄到服務(wù)器的主目錄。并修改權(quán)限允許其它人查看,但不能修改其虛擬用戶的文件。
5、在vsftp主配置文件中配置虛擬用戶的相關(guān)參數(shù)。指定之前創(chuàng)建的PAM認(rèn)證文件以及與虛擬用戶關(guān)聯(lián)的本地用戶。
6、給虛擬用戶配置不同的權(quán)限,如:只允許vuser1查看文件,而允許vuser2上傳、創(chuàng)建、修改、查看、刪除文件。這種需求在企業(yè)真實(shí)環(huán)境中是常見的,我們可以通過vsftpd服務(wù)器程序來實(shí)現(xiàn)。
6.1、修改vsftpd主配置文件,過添加 user_config_dir參數(shù)來定義這兩個(gè)虛擬用戶不同權(quán)限的配置文件所存放的路徑。
*標(biāo)注下滑線是配置虛擬用戶所使用到的配置參數(shù)。
6.2、在/etc/vsftpd/respective目錄下創(chuàng)建分別以虛擬用戶名命名的配置文件(使vsftp通過虛擬用戶名來找到各自的權(quán)限配置文件),并寫入相應(yīng)的權(quán)限。
7、重啟vsftpd服務(wù),使配置文件立即生效。
VSFTP-Client:
1、使用vuser1登錄測試驗(yàn)證其是否具有創(chuàng)建目錄權(quán)限。
2、使用vuser2登錄測試其是否具有創(chuàng)建、刪除、修改、上傳文件權(quán)限。
五、實(shí)驗(yàn)總結(jié)
(1)配置了虛擬用戶登錄后,本地用戶登錄就會(huì)失效??梢酝ㄟ^修改PAM認(rèn)證文件調(diào)用的模塊函數(shù)庫可以解決。
(2)vsftpd主配置文件中必須要開啟本地登錄模式。如果不開,將報(bào)錯(cuò),提示本地模式和匿名模式必須開啟一個(gè),顯然虛擬用戶模式就是為了提高安全,因此我們不開匿名模式而開啟本地模式。
(3)2.6.4節(jié)中的主配置文件參數(shù)allow_writeable_chroot=YES必須開啟如果不開將報(bào)錯(cuò)。
(4)防火墻影響ftp登錄,默認(rèn)情況防火墻策略阻止了ftp端口,ftp客戶端登錄將得到“無法路由到主機(jī)”的報(bào)錯(cuò)。
(5)SELinux阻止文件創(chuàng)建,本來vuser2是有創(chuàng)建文件權(quán)限的,但是由于受到默認(rèn)SELinux策略影響,將不能創(chuàng)建文件。此時(shí)需要在ftp服務(wù)器執(zhí)行:setsebool -P ftpd_full_access=off命令即可。文章來源:http://www.zghlxwxcb.cn/news/detail-686579.html
@聲明:“山月潤無聲”博主知識(shí)水平有限,以上文章如有不妥之處,歡迎廣大IT愛好者指正,小弟定當(dāng)虛心受教!文章來源地址http://www.zghlxwxcb.cn/news/detail-686579.html
到了這里,關(guān)于FTP文件傳輸服務(wù)器的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!