FTP工作原理與抓包

2021-07-30 10:28:56 字數 2633 閱讀 2533

一 簡介

ftp的傳輸使用的是tcp資料報協議,tcp在建立連線前會先進行三次握手。不過ftp伺服器比較麻煩一些,因為ftp伺服器使用了兩個連線,分別是命令通道與資料通道。因為是tcp資料報,所以這兩個連線都需要經過三次握手。

根據資料連線的建立方式,ftp服務的資料傳輸可以分為主動模式(active)和被動(passive)模式。下面就這兩種模式分別進行介紹。

二 主動模式

1、定義

主動模式是ftp伺服器向ftp客戶端傳輸資料的預設模式。當ftp客戶端請求以主動模式傳輸資料時,由客戶端向伺服器端傳送準備接受資料的ip位址和埠y,該埠應該是大於1024的非特權埠。伺服器端主動發起並建立到指定的ip位址和埠y上的連線。由於y端可以隨機指定,導致這種方案要求客戶端機器必須允許ftp伺服器能夠順利地連線所有的埠,因此可能存在一定的安全隱患。

2、ftp伺服器主動連線示意圖

3、主動模式分析

步驟一:建立命令通道連線

步驟二:通知ftp服務端使用active且告訴連線的埠號

ftp伺服器端的埠 21號主要用在命令的執行,但是當牽涉到資料流時,就不是使用這個連線了。客戶端在需要資料的情況下,會告知伺服器端要用什麼方式連線,如果是主動模式連線,客戶端會隨機啟用乙個埠(port bb),且通過命令通道告知ftp伺服器這兩個資訊,並等待ftp伺服器端的連線。

步驟三:ftp服務端主動向客戶端連線

ftp伺服器由命令通道了解客戶端的需求後,會主動由port 20向客戶端port bb連線,這個連線當然也會經過三次握手。此時ftp的客戶端與伺服器端建立了兩條連線,分別用在命令的執行和資料的傳輸。而預設ftp服務端使用主動連線埠就是port 20。這樣就建立起「命令」與「資料傳輸」兩個通道。

注意:第1點:資料傳輸通道是在有資料傳輸的行為才會建立連線,並不是一開始連線到ftp伺服器就立刻建立的資料通道。

第2點:命令通道的ftp預設為port 21。資料傳輸的ftp-data預設為port 20。

第3點:這兩個埠的工作原理是不一樣的,而且,兩者的連線發起端是不一樣的。首先port 21接受來自客戶端的主動連線,

port 20則是ftp伺服器主動連線到客戶端。

二 被動模式

1.定義

在被動模式下,客戶端通過pasv命令獲得伺服器端ip位址和資料埠,然後向伺服器端發起連線請求,從而建立資料連線。因此伺服器端只是被動地監聽在指定埠上的請求。

當連線某個ftp伺服器失敗時可以試著修改ftp客戶端工具配置,改變傳輸模式,這樣或許能夠連線成功。

2、ftp被動連線示意圖

3、被動模式分析

步驟一:客戶端與伺服器建立命令通道

同樣需要建立命令通道,通過三次握手就可以建立起這個通道了。

步驟二:客戶端發起pasv的連線要求

當使用資料通道命令時,客戶端可通過命令通道發起pasv的被動式連線要求,並等待伺服器的回應。

步驟三:ftp伺服器啟動資料埠,並通知客戶端連線

如果你使用的ftp伺服器是能夠處理被動式連線的,此時ftp伺服器會先啟動乙個監聽埠。這個埠號碼可以是隨機的,也可以自定義某個範圍的埠。然後ftp伺服器會通過命令通道告知客戶端已經啟動的埠(port pasv),並等待客戶端的連線。

步驟四:客戶端隨機取用大於1024的埠進行連線

最後你的客戶端會隨機取用乙個大於1024埠來進行對ftp伺服器port pasv連線。如果一切都順利,那麼ftp資料就可以通過port bb和port pasv來傳送了。

注意:

第1點:被動模式ftp資料通道是由客戶端向伺服器端發起連線的。

4、被動模式抓包分析

通過ftp到ftp.ksu.edu.tw這個ftp伺服器,我們抓一下包,下面是登入過程。

第一步:客戶端發起命令通道的三次握手。

第二步:客戶端發起pasv的連線請求。

第三步:伺服器端啟動資料埠,並告知客戶端該埠號。

第四步:客戶端發起資料通道的三次握手。

大小: 25.5 kb

大小: 27.1 kb

大小: 70.6 kb

大小: 58.1 kb

大小: 54.8 kb

大小: 59.2 kb

大小: 50.2 kb

FTP工作原理

在進行檔案傳輸時,ftp的客戶端和伺服器之間會建立兩個連線 1.控制連線是客戶端和ftp伺服器之間傳送命令的通道。2.資料連線是客戶端和ftp伺服器之間傳輸檔案的通道。ftp會話時,客戶端首先和ftp 伺服器的tcp 21埠建立控制連線,通過這個通道傳送命令。ftp協議中,控制連線均有客戶端發起,而...

FTP工作原理

ftp transfer protocol 件傳輸協議的縮寫,在rfc 959中具體說明。ftp會話時包含了兩個通道,乙個叫控制通道,乙個叫資料通道。控制通道 控制通道是和ftp伺服器進行溝通的通道,連線ftp,傳送ftp指令都是通過控制通道來完成的。資料通道 資料通道是和ftp伺服器進行檔案傳輸或...

抓包原理雜談

抓包原理 目的了解抓包的工作原理,在合適的場景下選取合適的抓包工具 一 抓包抓包,什麼是包?網際網路是一直被喻為資訊高速公路,那高速公路上最小的單位就是小汽車,網路中叫 bit 位元 簡寫b。一輛一輛小汽車匯集成車水馬龍,在網路中又叫位元流,流傳輸。那什麼是包呢?疫情期間,我們的家鄉對湖北同胞們進行...