FTP文字傳輸協定

2022-10-25 15:00:21

一、儲存型別

儲存型別分為三種:

  • 直連式儲存: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官網: https://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    #本地使用者的最大傳輸速率