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