1:port模式的ftp步驟如下:
1、 客戶端傳送乙個tcp syn(tcp同步)包給伺服器段眾所周知的ftp控制埠21,客戶端使用暫時的埠作為它的源埠;
2、 伺服器端傳送syn ack(同步確認)包給客戶端,源埠為21,目的埠為客戶端上使用的暫時埠;
3、 客戶端傳送乙個ack(確認)包;客戶端使用這個連線來傳送ftp命令,伺服器端使用這個連線來傳送ftp應答;
4、 當使用者請求乙個列表(list)請求或者發起乙個要求傳送或者接受檔案的請求,客戶端軟體使用port命令,這個命令包含了乙個暫時的埠,客戶端希望伺服器在開啟乙個資料連線時候使用這個暫時埠;port命令也包含了乙個ip位址,這個ip位址通常是客戶自己的ip位址,而且ftp也支援第三方(third-party)模式,第三方模式是客戶端告訴伺服器端開啟與另臺主機的連線;
5、 伺服器端傳送乙個syn包給客戶端的暫時埠,源埠為20,暫時埠為客戶端在port命令中傳送給伺服器端的暫時埠號;
6、 客戶端以源埠為暫時埠,目的埠為20傳送乙個syn ack包;
7、 伺服器端傳送乙個ack包;
8、 傳送資料的主機以這個連線來傳送資料,資料以tcp段(注:segment,第4層的pdu)形式傳送(一些命令,如stor表示客戶端要傳送資料,retr表示伺服器段傳送資料),這些tcp段都需要對方進行ack確認(注:因為tcp協議是乙個面向連線的協議)
9、 當資料傳輸完成以後,傳送資料的主機以乙個fin命令來結束資料連線,這個fin命令需要另一台主機以ack確認,另一台主機也傳送乙個fin命令,這個fin命令同樣需要傳送資料的主機以ack確認;
10、 客戶端能在控制連線上傳送更多的命令,這可以開啟和關閉另外的資料連線;有時候客戶端結束後,客戶端以fin命令來關閉乙個控制連線,伺服器端以ack包來確認客戶端的fin,伺服器同樣也傳送它的fin,客戶端用ack來確認。
2:ftp passive模式
下面的列表描述了passive模式的ftp的步驟,步驟1到3和port模式ftp相同,步驟9到11同樣與
port模式ftp最後三步相同。
1、客戶端傳送乙個tcp syn(tcp同步)包給伺服器段眾所周知的ftp控制埠21,客戶端使用暫時的埠作為它的源埠;
2、伺服器端傳送syn ack(同步確認)包給客戶端,源埠為21,目的埠為客戶端上使用的暫時埠;
3、客戶端傳送乙個ack(確認)包;客戶端使用這個連線來傳送ftp命令,伺服器端使用這個連線來傳送ftp應答;
4、當使用者請求乙個列表(list)或者傳送或接收檔案時候,客戶端軟體傳送pasv命令給伺服器端表明客戶端希望進入passive模式;
5、伺服器端進行應答,應答包括伺服器的ip位址和乙個暫時的埠,這個暫時的埠是客戶端在開啟資料傳輸連線時應該使用的埠;
6、客戶端傳送乙個syn包,源埠為客戶端自己選擇的乙個暫時埠,目的埠為伺服器在pasv應答命令中指定的暫時埠號;
7、伺服器端傳送syn ack包給客戶端,目的埠為客戶端自己選擇的暫時埠,源埠為pasv應答中指定的暫時埠號;
8、客戶端傳送乙個ack包;
9、傳送資料的主機以這個連線來傳送資料,資料以tcp段(注:segment,第4層的pdu)形式傳送(一些命令,如stor表示客戶端要傳送資料,retr表示伺服器段傳送資料),這些tcp段都需要對方進行ack確認;
10、當資料傳輸完成以後,傳送資料的主機以乙個fin命令來結束資料連線,這個fin命令需要另一台主機以ack確認,另一台主機也傳送乙個fin命令,這個fin命令同樣需要傳送資料的主機以ack確認;
11、客戶端能在控制連線上傳送更多的命令,這可以開啟和關閉另外的資料連線;有時候客戶端結束後,客戶端以fin命令來關閉乙個控制連線,伺服器端以ack包來確認客戶端的fin,伺服器同樣也傳送它的fin,客戶端用ack來確認。
在port模式黑客可能會利用ftp支援第三方特性這一特點,在port命令中設定ip位址和埠號引數來指定一台目標主機的位址和埠號(有時候稱這種攻擊為ftp**攻擊),例如黑客可以讓一台ftp伺服器不斷地從它的源埠20傳送tcp syn包給一系列目的埠,讓ftp伺服器看起來正在進行埠掃瞄,目的主機不知道攻擊來自黑客的主機,看起來攻擊象是來自ftp伺服器。一些常用的
ftp應用在port命令中設定位址為0.0.0.0,這樣做的意圖是讓ftp伺服器只需要與開啟控制連線的相同客戶進行資料連線,設定位址為0.0.0.0可能會讓防火牆不知所措。例如,cisco pix ios
6.0以上版本的pix(注:cisco硬體防火牆裝置,6.0以上版本為其修正了相關的ftp協議)要求資料連線的ip位址與已經存在的控制連線的ip位址必須相同。這樣做的原因是防止黑客用port命令來攻擊別的機器,雖然一些ftp應用設定ip位址為0.0.0.0不是有意圖的攻擊,但在pix修正協議環境下的確引起了一些問題,同時對其他不允許第三方模式和避免ftp**攻擊的防火牆來說,這也會引起相同的問題。
在passive模式下,客戶端開啟乙個暫時的目的埠連線,一些防火牆或者cisco裝置的訪問列表(acl)可能會阻止這種連線,同樣伺服器的回應也是從乙個暫時的埠到乙個暫時的埠,防火牆或者cisco的訪問列表也會阻止這種連線。在cisco路由器上你可以用訪問列表關鍵字"established"來避免第二個問題,"established"關鍵字告訴路由器允許帶ack字端的包通過,伺服器端的s
yn ack包帶有ack字端。在新版本pix ios中也可以通過fixit關鍵字建立針對ftp協議的深層狀態檢測過濾,其他大多數狀態檢測防火牆例如linuxnetfilters也支援ftp協議的狀態檢測,進行
準確的pasv動態埠過濾。
rfc:www.ietf.org/rfc/rfc959.txt
FTP 工作模式
ftp 工作模式 ftp是 file transfer protocol 檔案傳輸協議 的縮寫,用來在兩台計算機之間互相傳送檔案。相比於 協議要複雜得多。複雜的原因,是因為 ftp協議要用到兩個 tcp連線,乙個是命令鏈路,用來在 ftp ftp協議有兩種工作方式 port 方式和pasv 方式,中...
FTP協議 工作模式和傳輸模式
ftp協議 工作模式和傳輸模式 ftp的工作模式 主動與被動是相對於伺服器來說的。主動模式,伺服器用20號埠主動連線客戶端的某埠建立資料連線 被動模式,伺服器某埠被客戶端的某埠建立資料連線 1.主動模式 active,一般預設的模式 ftp客戶端開啟乙個隨機的tcp埠呼叫ftp伺服器的21號埠,請求...
ftp的兩種工作模式
ftp 是一種資料傳輸協議 file transfer protocol 它的連線模式有兩種 主動模式 active 和被動模式 passive 以下說明ftp的連線是怎樣建立的 在 active 模式下 一般預設的模式 ftp client 開啟乙個隨機選擇的tcp port 呼叫 ftp ser...