FTP文本傳輸協議

一、存儲類型

存儲類型分為三種:

  • 直連式存儲:Direct-Attached Storage,簡稱DAS
  • 網絡附加存儲:Network-Attached Storage,簡稱NAS(存儲和管理空間都在遠程)
  • 存儲區域網絡:Storage Area Network,簡稱SAN(可以使用空間管理,也是你來管理)

三種存儲架構的應用場景

  • DAS雖然比較古老了,但是還是很適用於那些數據量不大,對磁盤訪問速度要求較高的中小企業
  • NAS多適用於文件服務器,用來存儲非結構化數據,雖然受限於以太網的速度,但是部署靈活,成本低
  • SAN則適用於大型應用或數據庫系統,缺點是成本高、較為複雜

二、FTP文件傳輸協議

2.1FTP工作原理

(1)文件傳輸協議:File Transfer Protocol 早期的三個應用級協議之一,基於C/S結構

  • 數據傳輸格式:二進制和文本
  • 雙通道協議:命令和數據連接

(2)兩種模式:從服務器角度出發

  • 主動(PORT style):服務器主動連接客戶端

命令(控制):客戶端:隨機端口 —> 服務器:21/tcp
數據:客戶端:隨機端口 <—服務器:20/tcp

  • 被動(PASV style):服務器被動等待客戶端連接

命令(控制):客戶端:隨機端口 —> 服務器:21/tcp
數據:客戶端:隨機端口 <— 服務器:隨機端口 /tcp

(3)FTP狀態服務碼

1XX:信息         125:數據連接打開
2XX:成功類狀態 200:命令OK              230:登錄成功
3XX:補充類       331:用戶名OK
4XX:客戶端錯誤 425:不能打開數據連接
5XX:服務器錯誤 530:不能登錄

(4)用戶認證:
匿名用戶:ftp,anonymous,對應Linux用戶ftp
系統用戶:Linux用戶,用戶/etc/passwd,密碼/etc/shadow
虛擬用戶:特定服務的專用用戶,獨立的用戶/密碼文件

(5)總結:

  • yum info vsftpd 查看信息
  • FTP(File Transfer Protocol: 文件傳輸協議)作用:Internet 上用來傳送文件的協議。
  • VSFTP全稱 (very secure FTP)
  • VSFTP模式: C/S模式
  • FTP服務器默認使用TCP協議的20、21端口與客戶端進行通信
  • 20端口用於建立數據連接,並傳輸文件數據
  • 21端口用於建立控制連接,並傳輸FTP控制命令
  • FTP數據連接分為主動模式和被動模式
  • 主動模式:服務器主動發起數據連接
  • 被動模式:服務器被動等待數據連接

2.2常見FTP相關軟件

FTP服務器端軟件:
Wu-ftpd,Proftpd,Pureftpd,Filezilla Server,Serv-U,Wing FTP Server,IIS
vsftpd:Very Secure FTP Daemon,CentOS 默認FTP服務器,高速,穩定,下載速度是WU-FTP的兩倍
ftp.redhat.com數據:單機最多可支持15000個並發(vsftpd官網: //security.appspot.com/vsftpd.html)

2.3vsftpd軟件介紹

(1)配置文件位置

  • 用戶認證配置文件:/etc/pam.d/vsftpd
  • 主配置文件:/etc/vsftpd/vsftpd.conf

(2)用戶和其共享目錄

  • 匿名用戶(映射為系統用戶ftp )共享文件位置:/var/ftp
  • 系統用戶共享文件位置:用戶家目錄
  • 虛擬用戶共享文件位置:為其映射的系統用戶的家目錄

2.4vsftpd服務常見配置

(1)匿名用戶登錄

vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES        #支持匿名用戶,CentOS8 默認不允許匿名
no_anon_password=YES        #匿名用戶略過口令檢查 , 默認NO

(2)匿名用戶上傳

vim /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES        #匿名上傳,注意:文件系統權限
anon_mkdir_write_enable=YES    #匿名建目錄
chmod   777   /var/ftp/pub

注意:還需要開啟文件系統訪問的權限,不能給FTP根目錄寫權限,只能級子目錄寫權限,否則報”500 OOPS: vsftpd: refusing to run with writable root inside chroot()”,登錄失敗錯誤。

(3)Linux系統用戶

local_enable=YES    #是否允許linux用戶登錄
write_enable=YES    #允許linux用戶上傳文件
local_umask=022     #指定系統用戶上傳文件的默認權限對應umask 

(4)傳輸速率(單位:位元組/秒)

anon_max_rate=0    #匿名用戶的最大傳輸速率,以位元組為單位,比如:1024000表示1MB/s
local_max_rate=0    #本地用戶的最大傳輸速率

Tags: