1、FTP服務的簡介linux
用戶聯網的首要目的就是實現信息共享,文件傳輸是信息共享很是重要的一個內容之一。windows
Internet是一個很是複雜的計算機環境,有PC,有工做站,有MAC,有大型機,據統計鏈接在Internet上的計算機已有上千萬臺,而這些計算機可能運行不一樣的操做系統,有運行Unix的服務器,也有運行DOS以及Windows的PC機,而各類操做系統之間的文件交流問題,須要創建一個統一的文件傳輸協議。
安全
與大多數Internet服務同樣,FTP也是一個客戶機/服務器系統。用戶經過一個支持FTP協議的客戶機程序,鏈接到在遠程主機上的FTP服務器程序。用戶經過客戶機程序向服務器程序發出命令,服務器程序執行用戶所發出的命令,並將執行的結果返回到客戶機。bash
2、FTP服務器的工做模式服務器
1、ftp協議有兩類鏈接:命令鏈接和數據鏈接 ide
FTP是用來在兩臺計算機之間互相傳送文件。相比於HTTP,FTP協議要複雜得多。複雜的緣由,是由於FTP協議要用到兩個TCP鏈接,一個是命令鏈路,用來在FTP客戶端與服務器之間傳遞命令;另外一個是數據鏈路,用來上傳或下載數據。工具
二、ftp 的工做模式有兩種:主動模式和被動模式ui
主動模式:客戶端向服務器的FTP端口(默認是21)發送鏈接請求,服務器接受鏈接,創建一條命令鏈路。當須要傳送數據時,客戶端在命令鏈路上用PORT命令告訴服務器:「我打開了XXXX端口,你過來鏈接我」。因而服務器從20端口向客戶端的XXXX端口發送鏈接請求,創建一條數據鏈路來傳送數據。 spa
被動模式:客戶端向服務器的FTP端口(默認是21)發送鏈接請求,服務器接受鏈接,創建一條命令鏈路。當須要傳送數據時,服務器在命令鏈路上用PASV命令告訴客戶端:「我打開了XXXX端口,你過來鏈接我」。因而客戶端向服務器的XXXX端口發送鏈接請求,創建一條數據鏈路來傳送數據。操作系統
三、數據的傳輸模式有兩種:二進制格式傳輸和文本格式傳輸。
3、實現FTP協議的軟件
一、 linux中經常使用的實現FTP協議的軟件:wuftpd、proftpd、pureftpd、vsftpd(very secure)
二、 windows系統下經常使用的還有 Server-U、Filezilla、IIS等
三、專門訪問ftp客服端工具:ftp、lftp、gftp、filezilla
4、ftp協議的響應碼
1xx:服務器信息
2xx:正確響應信息
3xx:正常響應,但某操做過程還沒有完成,須要進一步補充完成
4xx:客戶端錯誤,由客戶端引發
5xx:服務器端錯誤,服務器自身故障執行不成
5、vsftpd支持的用戶類型
一、匿名用戶:事實上是服務器端自動映射的一個系統用戶
使用公共的用戶帳號進行登陸,一般用於公共文件的下載。
二、本地用戶:即爲 /etc/passwd中的用戶
默認root和uid<500的用戶禁止訪問ftp,每一個用戶都使用各自宿主目錄
三、虛擬用戶:事實上也是服務器自動映射的系統用戶
多個虛擬用戶同時被映射爲同一個系統用戶,但不一樣的虛擬用戶能夠具備不一樣 的訪問權限。
6、vsftpd的工做特性
vsftp中編輯其主配置文件,鎖定用戶與其家目錄中,有三種實現方式
一、禁錮全部用戶:
# chroot_local_user=YES
二、禁錮指定用戶即黑名單:
# chroot_list_enable=YES # chroot_list_file= /etc/vsftpd/chroot_list
三、不由錮的指定用戶即白名單:
# chroot_local_user=YES # chroot_list_enable=YES # chroot_list_file= /etc/vsftpd/chroot_list
7、vsftpd配置中與安全相關的設定
一、傳輸速率的限定,默認單位爲字節
anon_max_rate=
local_max_rate=
指定用戶的傳輸速率:user_config_dir= /etc/vsftpd/userconfs/
二、鏈接數的限定
max_clients=
max_per_ip=
三、創建FTP的帳號列表
白名單
# userlist_enable=YES # userlist_deny=NO
黑名單
# userlist_enable=YES # userlist_deny=YES
8、vsftpd配置文件中經常使用的配置修改