1. 程式人生 > >Linux網絡服務04——FTP文件傳輸服務

Linux網絡服務04——FTP文件傳輸服務

日誌文件 技術 用戶 pan 監聽端口 for 主動模式 字符轉換 用戶數

Linux網絡服務04——FTP文件傳輸服務

一、FTP連接及傳輸模式

1、控制連接:TCP 21,用於發送FTP命令信息

2、數據連接:TCP 20,用於上傳、下載數據

3、數據連接的建立類型:

1)主動模式:服務器主動發起數據連接

首先由客戶端向服務端的21端口建立FTP控制連接。當需要傳輸數據時,客戶端以PORT命令告知服務器“我打開了某端口,你過來連接我”,預算服務器從20端口向客戶端的該端口發送請求並建立數據連接。

2)被動模式:服務器被動等待數據連接

如果客戶端所在網絡的防火墻禁止主動模式連接,通常會使用被動模式。

首先由客戶端想服務器的21端口建立FTP控制連接。當需要傳輸數據時,服務器以

PASV命令告知客戶端“我打開了某端口,你過來連接我”,於是客戶端向服務器的該端口(非20)發送請求並建立數據連接。

4、傳輸模式

在傳輸文件時,根據是否進行字符轉換,分為文本模式和二進制模式。

1)文本模式:又稱ASCIIAmerican Standard Code for Information Interchange)美國信息交換標準碼模式,這種模式在傳輸文件時使用ASCII標準字符序列,一般只用於純文本文件的傳輸。

2)二進制模式:又稱Binary模式,這種模式不會轉換文件中的字符序列,更適合傳輸程序、圖片等非純文本字符的文件。

使用二進制模式比文本模式更有效率,大多數FTP客戶端工具可以根據文件類型自動選擇文件傳輸模式。

FTP用戶類型

1、匿名用戶:用戶名為ftpanonymous,提供任意密碼(包括空密碼)都可以通過服務器的驗證。一般用於公共文件的下載,如提供一些免費的軟件、學習資料下載的站點。

2、本地用戶:直接使用本地的系統用戶賬號進行驗證。

3、虛擬用戶:通過一份獨立的用戶數據庫文件進行登錄驗證,將FTP賬戶與Linux系統賬戶的關聯性將至最低,為系統提供更好的安全性。

三、FTP服務器軟件的種類

1Windows系統:FileZilla ServerServ-U

2Linux/Unix系統:vsftpdVery Secure FTP Daemon

FTP客戶端工具的種類

1Windows

系統:ftp命令、CuteFTPFlashFXPLeapFTPFilezilla等。還有一些下載工具軟件,如FlashGetWget等,但不具備上傳功能,通常不稱為FTP客戶端工具。

2Linux/Unix系統:ftp命令

搭建匿名訪問的FTP服務

1、安裝FTP服務軟件

技術分享

2、準備匿名FTP訪問的目錄

技術分享

3、開放匿名用戶配置並啟動vsftpd服務

技術分享

技術分享

技術分享

4、測試匿名FTP服務器

在客戶端安裝FTP客戶端

技術分享

技術分享

技術分享

技術分享

測試小結:匿名用戶具有新建目錄、上傳文件、刪除文件的權限,新建目錄默認權限755,上傳文件默認權限644

搭建本地用戶驗證的FTP服務

1、創建本地用戶

技術分享

2、修改配置文件,重啟FTP服務。

技術分享

技術分享

技術分享

技術分享

客戶端測試

技術分享

技術分享技術分享

測試小結:本地用戶具有新建目錄、上傳文件的權限,新建目錄默認權限700,上傳文件默認權限600

3ftpusersuser_list用戶列表的使用

1ftpusers文件:FTP服務器中的黑名單,優先級高於user_list文件

2user_list文件:此用戶列表默認情況下也是黑名單,即在此用戶列表中的用戶不可訪問FTP服務器,但可以通過vsftpd.conf主配置文件的修改將此名單改為白名單,且僅此名單中的用戶可以訪問。

3)示例:

1>test1用戶放入ftpusers文件中,其他配置文件不修改,嘗試用test1用戶登錄

技術分享

客戶測試

技術分享

2>test1移除出ftpusers文件,將test2放入user_list用戶列表中,先用默認的配 置文件,在客戶端嘗試用test2訪問FTP服務器。在修改配置文件,將user_list改為白 名單,再在客戶端分別用test1test2嘗試訪問。

技術分享

技術分享

技術分享

客戶端測試

技術分享

服務器修改主配置文件,重啟服務

[[email protected] vsftpd]# vim vsftpd.conf

技術分享

技術分享

客戶端再次測試

技術分享

測試小結:配置文件中默認user_list用戶列表為黑名單即默認為userlist_deny=YES,當增加userlist_deny=NO時,user_list用戶列表為白名單,此時僅此名單內用戶可訪問FTP服務器。

搭建虛擬用戶驗證的FTP服務

1、建立虛擬用戶賬號數據庫

vsftpd服務使用Berkeley DB格式的數據庫文件來存放虛擬用戶賬號,使用db_load工具生成數據庫文件。(若未安裝,安裝包在安裝光盤1中,軟件名為db4-utils

技術分享

註:db_load命令

-T:允許非Berkeley的程序使用該數據庫

-t:指定算法 (hash:哈希,散列)

-f:指定源文件

註意:生成的數據庫文件必須為.db”格式

技術分享

2、添加虛擬映射賬號,為FTP根目錄修改權限

技術分享

3、增加PAM認證

技術分享

4、修改vsftpd.conf配置文件,重啟服務

技術分享

技術分享

技術分享

5、客戶端測試

6、實現每個虛擬用戶不同根目錄、不同權限的管控

1)創建用戶控制目錄,並創建虛擬所對應的同名配置文件

技術分享

修改zhangsan的配置文件,使其可以上傳、建立目錄、刪除文件、重命名文件、最大傳輸速率1字節/秒、根目錄為/var/zhangsan技術分享

技術分享

修改lisi的配置文件,使其僅可以下載上傳,不開放其他權限,不限制傳輸速率,根目錄為/var/lisi

技術分享

wangwu的配置文件不做修改,其權限為配置文件中的默認權限,根目錄為/var/ftproot,僅可以下載,無法上傳。

技術分享

2)修改vsftpd.conf主配置文件,重啟服務

[[email protected] vsftpd]# vim vsftpd.conf

技術分享

技術分享

3)客戶端測試

驗證zhangsan

技術分享

技術分享

驗證lisi

技術分享

驗證wangwu

技術分享

【課外知識】建立vsftpd服務的日誌文件。

技術分享

技術分享技術分享

其他配置:

listen=YES

listen_address=192.168.1.108

listen_port=2121 //設置監聽端口

pasv_enable=YES //是否開啟被動模式

pasv_min_port=24500 //被動模式端口下限

pasv_max_port=24600 //被動模式端口上限

max_clients=2000 //最大15000,最大客戶連接數,一般不限制

max_per_ip=2 //每個ip限制最多打開幾個客戶端工具,一般不限制

anon_max_rate=50000 //匿名最大傳輸速率,一般不限制

local_max_rate=20000 //本地用戶最大傳輸速率,一般不限制

Linux網絡服務04——FTP文件傳輸服務