首先需要先簡單介紹一下網絡七大層:
應用層? ? ? ? ????通信類型:E-mail、文件傳輸、客戶端/服務器
表示層? ? ? ? ????加密、數據轉換:ASCII轉換為EBCDIC、BCD轉換為二進制等
會話層? ? ? ? ????開始,停止會話。維持秩序
傳輸層? ? ? ? ????確保傳送整個文件或消息
網絡層? ? ? ? ????根據網絡地址將數據路由到不同的局域網和廣域網
數據鏈路層? ???通過站點地址從節(jié)點發(fā)送數據包
物理層? ? ? ? ????電信號和光纖
網絡七大層,在編程運用最多的是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,主要用于路由發(fā)送錯誤報告)
鏈接層:?
MAC(media access control)
FTP(File Transfer Protocol):是TCP/IP網絡上兩臺計算機傳送文件的協議,FTP是在TCP/IP網絡上最早使用的協議之一,它屬于網絡協議組的應用層。FTP客戶機可以給服務器發(fā)出命令來下載文件,上載文件,創(chuàng)建或改變服務器上的目錄。相比于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)的安全文件傳輸子系統(tǒng),SFTP本身沒有單獨的守護進程,它必須使用sshd守護進程(端口號默認是22)來完成相應的連接操作,所以從某種意義上來說,SFTP并不像一個服務器程序,而更像是一個客戶端程序。SFTP同樣是使用加密傳輸認證信息和傳輸的數據,所以,使用SFTP是非常安全的。但是,由于這種傳輸方式使用了加密/解密技術,所以傳輸效率比普通的FTP要低得多,如果您對網絡安全性要求更高時,可以使用SFTP代替FTP。
SCP(Secure Copy):SCP就是Secure copy,是用來進行遠程文件復制的,并且整個復制過程是加密的。數據傳輸使用ssh,并且和使用和ssh相同的認證方式,提供相同的安全保證。
比較:
FTP 基于TCP來傳輸文件,明文傳輸用戶信息和數據。
SFTP 基于SSH來加密傳輸文件,可靠性高,可斷點續(xù)傳。?
SCP 是基于SSH來加密拷貝文件,但要知道詳細目錄,不可斷點續(xù)傳。?