關於FTP的PORT與PASV模式的理解

前幾天面試被問到爲什麼FTP服務器有PORT模式還需要PASV模式,沒回答上來,很遺憾。

FTP分爲PORT模式和PASV模式,熟知的概念。

首先要知道FTP都是通過一個控制端口發送命令的,即服務器的21端口;

PORT模式:

PORT模式也叫對於服務器的主動模式,由客戶端選擇自己的隨機端口主動連接服務器的21端口,這個時間是有三次握手,四次揮手過程在裏面的,在連接建立之後,即可以開始發送命令,並選擇用什麼模式完成此次連接(不清楚,這句話有待查驗),如果用PORT模式,則需要客戶端發送一個端口號給服務器,服務器來連接客戶端的這個端口完成此次發送文件或者目錄的任務。並且在下一次發送命令時重新選擇端口。

PASV模式:

PASV模式也叫對於客戶端的被動模式,由客戶端選擇隨機端口連接服務器的21端口,這個 過程與PORT模式相同,連接建立以後發送命令給服務器,同時發送端口號給服務器,這個時候服務器查看自己的這個端口是否是可用的,如果可用則返回ACK碼並完成此次任務傳輸,不可用時返回UNACK碼,這時客戶端重新發送PASV命令,選擇另一個新的端口完成任務。

至於爲什麼已經有了PORT模式還要用PASV模式,

約定俗成的端口更容易爲多數人所知,黑客也知道,這樣一來黑客也知道服務器20端口在發送文件,更容易入侵抓取發送的數據

PASV模式的缺點,服務器需要開啓所有的大於1024的端口以供客戶端連接,如果此時有一軟件可以知道哪個ip成功連接了ftp的服務器就只對這個客戶端開放所有的端口,或者檢測到客戶端發來的端口號以後檢測能不能用,能用的話再只對這個客戶端開放這個端口。

全文綜上,菜鳥一個,還請大佬指點。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章