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 #本地用戶的最大傳輸速率