關於SFTP和網路分層的理解

戰鬥力只有5的渣發表於2018-02-23

首先需要先簡單介紹一下網路七大層:

應用層 通訊型別:E-mail、檔案傳輸、客戶端/伺服器

表示層 加密、資料轉換:ASCII轉換為EBCDIC、BCD轉換為二進位制等

會話層 開始,停止會話。維持秩序

傳輸層 確保傳送整個檔案或訊息

網路層 根據網路地址將資料路由到不同的區域網和廣域網

資料鏈路層 通過站點地址從節點傳送資料包

物理層 電訊號和光纖

網路七大層,在程式設計運用最多的是TCP/IP四層參考模型:物理鏈路層、網路層、傳輸層、應用層

常見的應用層有:

HTTP(Hypertext Transfer Protocol 超文字傳輸協議,顯示網頁)

DNS(Domain Name System)

FTP(File Transfer Protocol)

SFTP(SSH File Transfer Protocol,和FTP不一樣)

SCP(Secure copy,based on SSH)

SSH (Secure Shell)

傳輸層:

TCP(Transmission Control Protocol 三次握手傳輸協議)

UDP

網路層:

IP(Internet Protocol)

ICMP(Internet Control Message Protocol,主要用於路由傳送錯誤報告)

連結層:

MAC(media access control)

FTP(File Transfer Protocol):是TCP/IP網路上兩臺計算機傳送檔案的協議,FTP是在TCP/IP網路上最早使用的協議之一,它屬於網路協議組的應用層。FTP客戶機可以給伺服器發出命令來下載檔案,上載檔案,建立或改變伺服器上的目錄。相比於HTTP,FTP協議要複雜得多。複雜的原因,是因為FTP協議要用到兩個TCP連線,一個是命令鏈路,用來在FTP客戶端與伺服器之間傳遞命令;另一個是資料鏈路,用來上傳或下載資料。FTP是基於TCP協議的,因此iptables防火牆設定中只需要放開指定埠(21 + PASV埠範圍)的TCP協議即可。

SSH(Secure Shell):由 IETF 的網路工作小組(Network Working Group)所制定;SSH 為建立在應用層和傳輸層基礎上的安全協議。SSH 是目前較可靠,專為遠端登入會話和其他網路服務提供安全性的協議。利用 SSH 協議可以有效防止遠端管理過程中的資訊洩露問題。SSH是由客戶端和服務端的軟體組成的:服務端是一個守護程式(daemon),他在後臺執行並響應來自客戶端的連線請求。服務端一般是sshd程式,提供了對遠端連線的處理,一般包括公共金鑰認證、金鑰交換、對稱金鑰加密和非安全連線; 客戶端包含ssh程式以及像scp(遠端拷貝)、slogin(遠端登陸)、sftp(安全檔案傳輸)等其他的應用程式。

從客戶端來看,SSH提供兩種級別的安全驗證:第一種級別(基於口令的安全驗證); 第二種級別(基於密匙的安全驗證)。SSH 主要有三部分組成: 傳輸層協議 [SSH-TRANS] ;使用者認證協議 [SSH-USERAUTH] ;連線協議 [SSH-CONNECT]。

SFTP(Secure File Transfer Protocol):安全檔案傳送協議。可以為傳輸檔案提供一種安全的加密方法。SFTP與 FTP有著幾乎一樣的語法和功能。SFTP為SSH的一部份,是一種傳輸檔案到伺服器的安全方式。在SSH軟體包中,已經包含了一個叫作SFTP(Secure File Transfer Protocol)的安全檔案傳輸子系統,SFTP本身沒有單獨的守護程式,它必須使用sshd守護程式(埠號預設是22)來完成相應的連線操作,所以從某種意義上來說,SFTP並不像一個伺服器程式,而更像是一個客戶端程式。SFTP同樣是使用加密傳輸認證資訊和傳輸的資料,所以,使用SFTP是非常安全的。但是,由於這種傳輸方式使用了加密/解密技術,所以傳輸效率比普通的FTP要低得多,如果您對網路安全性要求更高時,可以使用SFTP代替FTP。

SCP(Secure Copy):SCP就是Secure copy,是用來進行遠端檔案複製的,並且整個複製過程是加密的。資料傳輸使用ssh,並且和使用和ssh相同的認證方式,提供相同的安全保證。

比較:

FTP 基於TCP來傳輸檔案,明文傳輸使用者資訊和資料。

SFTP 基於SSH來加密傳輸檔案,可靠性高,可斷點續傳。

SCP 是基於SSH來加密拷貝檔案,但要知道詳細目錄,不可斷點續傳。 


相關文章