0、概要總結:
FTP :文件傳輸協議,對應FTP服務
SFTP:安全文件傳輸協議, 對應SFTP服務
SSH: 一組協議
VSFTP:一個提供SFTP服務功能的軟件
VSFTPD:VSFTP軟件的守護進程
SSHD:SSH服務的守護進程
常見的提供FTP服務的軟件:proftp、tftp
常見的提供SFTP服務的軟件:vsftp、openssh等
一、FTP
FTP,文件傳輸協議(File Transport Protocol),工作在OSI網絡模型的第七層---應用層,使用TCP傳輸。
FTP是基於客戶--服務器(CS)模型設計的,ftp客戶端發起會話,與ftp服務器建立連接。FTP會話期間要建立建立兩個連接:控制連接和數據連接。控制連接一般使用21端口,主要於戶傳送命令和響應等控制信息,在整個交互過程中始終處於連接狀態;數據連接一般使用服務器的20端口,只在每一次文件傳送時打開,數據傳送完成后則會關閉。當控制連接撤銷時,FTP會話結束。
FTP支持的模式:Standard(PORT方式、主動模式)、Passive(PASV、被動模式)。
1、主動模式:
FTP客戶端首先與服務器的TCP21端口建立控制連接,用來發送控令,客戶端需要接收數據的時候在這個通道上發送PORT命令。PORT命令包含了客戶端用什么端口接收數據。在傳送數據的時候,服務器通過自己的TCP20端口連接至客戶端的指定端口發送數據。
2、被動模式:
被動模式下控制連接與主動模式是一致的,不同的是控制連接建立后會發送PASV命令,服務器收到PASV命令后,打開一個臨時端口並且通知客戶端,客戶端連接至ftp的此端口,然后ftp服務器通過這個端口傳送數據。
總結:主動與被動是針對FTP服務器而言的,主動模式下,FTP服務器使用20端口主動連接客戶端的指定端口。被動模式下,FTP服務器告知客戶端自己要使用的端口,然后等待客戶端的連接。
匿名FTP
一般情況下如果想與一台ftp服務器進行文件傳輸,需要有該服務器的授權,即使用該服務器的注冊用戶進行登錄后,才能傳輸文件。而這種情況違背了互聯網的開放性,互聯網上的FTP服務器成千上萬,不可能要求每個用戶在每台FTP服務器上都擁有帳號。
匿名FTP是這樣一種機制,用戶可通過它連接到遠程FTP服務器上,進行文件的上傳或下載,而不需要成為其注冊用戶。系統管理員建立一個特殊的用戶帳號(匿名帳號),一般名為anonymous或ftp,互聯網上的任何人在任何地方都可使用該用戶的帳號。
通過FTP程序連接匿名FTP服務器的方式同連接普通FTP服務器的方式類似,只是在要求提供用戶帳號時必須輸人anonymous或ftp,而該用戶帳號的口令可以是任意的字符。
當遠程服務器提供匿名FTP服務時,會預先指定某些目錄及文件向公眾開放,允許匿名用戶的存取,而系統中的其余目錄則處於隱匿狀態。作為一種安全措施,大多數匿名FTP服務器都只允許用戶下載文件,而不允許用戶上傳文件。
二、SFTP
SFTP(Secure File Transfer Protocol)安全文件傳輸協議, SFTP在linux系統中,傳輸默認的端口為22端口,這種傳輸方式更為安全,傳輸雙方既要進行密碼安全驗證,還要進行基於密鑰的安全驗證,有效的防止了“中間人”的威脅和攻擊。
三、SSH
SSH(Secure Shell)是一組協議,在進行數據傳輸之前,SSH先對聯機數據包通過加密技術處理,加密后在進行數據傳輸,確保了傳遞的數據安全。在默認狀態下,SSH服務主要提供兩個服務功能:一個是提供類似telnet遠程聯機服務器的服務;另一個是類似FTP服務的sftp-server,借助SSH協議來傳輸數據的,提供更安全的SFTP服務。所以SSH服務本身就可以提供SFTP服務。
四、VSFTP
VSFTP(Very Secure FTP)是在類Unix系統上使用的FTP服務軟件,其對應的守護進程是vsftpd(vsftp daemon)。
五、vsftpd
vsftpd是VSFTP服務的守護進程。
六、sshd
sshd是SSH服務的守護進程。
總結:因為ss提供類似ftp的服務,所以不必再安裝vsftp軟件。