Linux網絡服務04——FTP文件傳輸服務
Linux網絡服務04——FTP文件傳輸服務
一、FTP連接及傳輸模式
1、控制連接:TCP 21,用於發送FTP命令信息
2、數據連接:TCP 20,用於上傳、下載數據
3、數據連接的建立類型:
(1)主動模式:服務器主動發起數據連接
首先由客戶端向服務端的21端口建立FTP控制連接。當需要傳輸數據時,客戶端以PORT命令告知服務器“我打開了某端口,你過來連接我”,預算服務器從20端口向客戶端的該端口發送請求並建立數據連接。
(2)被動模式:服務器被動等待數據連接
如果客戶端所在網絡的防火墻禁止主動模式連接,通常會使用被動模式。
首先由客戶端想服務器的21端口建立FTP控制連接。當需要傳輸數據時,服務器以
4、傳輸模式
在傳輸文件時,根據是否進行字符轉換,分為文本模式和二進制模式。
(1)文本模式:又稱ASCII(American Standard Code for Information Interchange)美國信息交換標準碼模式,這種模式在傳輸文件時使用ASCII標準字符序列,一般只用於純文本文件的傳輸。
(2)二進制模式:又稱Binary模式,這種模式不會轉換文件中的字符序列,更適合傳輸程序、圖片等非純文本字符的文件。
使用二進制模式比文本模式更有效率,大多數FTP客戶端工具可以根據文件類型自動選擇文件傳輸模式。
二、FTP用戶類型
1、匿名用戶:用戶名為ftp或anonymous,提供任意密碼(包括空密碼)都可以通過服務器的驗證。一般用於公共文件的下載,如提供一些免費的軟件、學習資料下載的站點。
2、本地用戶:直接使用本地的系統用戶賬號進行驗證。
3、虛擬用戶:通過一份獨立的用戶數據庫文件進行登錄驗證,將FTP賬戶與Linux系統賬戶的關聯性將至最低,為系統提供更好的安全性。
三、FTP服務器軟件的種類
1、Windows系統:FileZilla Server、Serv-U等
2、Linux/Unix系統:vsftpd(Very Secure FTP Daemon)
四、FTP客戶端工具的種類
1、Windows
2、Linux/Unix系統:ftp命令
五、搭建匿名訪問的FTP服務
1、安裝FTP服務軟件
2、準備匿名FTP訪問的目錄
3、開放匿名用戶配置並啟動vsftpd服務
4、測試匿名FTP服務器
在客戶端安裝FTP客戶端
測試小結:匿名用戶具有新建目錄、上傳文件、刪除文件的權限,新建目錄默認權限755,上傳文件默認權限644。
六、搭建本地用戶驗證的FTP服務
1、創建本地用戶
2、修改配置文件,重啟FTP服務。
客戶端測試
測試小結:本地用戶具有新建目錄、上傳文件的權限,新建目錄默認權限700,上傳文件默認權限600。
3、ftpusers與user_list用戶列表的使用
(1)ftpusers文件:FTP服務器中的黑名單,優先級高於user_list文件
(2)user_list文件:此用戶列表默認情況下也是黑名單,即在此用戶列表中的用戶不可訪問FTP服務器,但可以通過vsftpd.conf主配置文件的修改將此名單改為白名單,且僅此名單中的用戶可以訪問。
(3)示例:
1>將test1用戶放入ftpusers文件中,其他配置文件不修改,嘗試用test1用戶登錄
客戶測試
2>將test1移除出ftpusers文件,將test2放入user_list用戶列表中,先用默認的配 置文件,在客戶端嘗試用test2訪問FTP服務器。在修改配置文件,將user_list改為白 名單,再在客戶端分別用test1、test2嘗試訪問。
客戶端測試
服務器修改主配置文件,重啟服務
[[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文件傳輸服務