1. java 有什麼命令能夠判斷ftp服務的連接方式是主動連接還是被動連接
一.FTP的PORT(主動模式)和PASV(被動模式)
1. PORT(主動模式)
PORT中文稱為主動模式,工作的原理: FTP客戶端連接到FTP伺服器的21埠,發送用戶名和密碼登錄,登錄成功後要list列表或者讀取數據時,客戶端隨機開放一個埠(1024以上),發送 PORT命令到FTP伺服器,告訴伺服器客戶端採用主動模式並開放埠;FTP伺服器收到PORT主動模式命令和埠號後,通過伺服器的20埠和客戶端開放的埠連接,發送數據.
2. PASV(被動模式)
PASV是Passive的縮寫,中文成為被動模式,工作原理:FTP客戶端連接到FTP伺服器的21埠,發送用戶名和密碼登錄,登錄成功後要list列表或者讀取數據時,發送PASV命令到FTP伺服器, 伺服器在本地隨機開放一個埠(1024以上),然後把開放的埠告訴客戶端, 客戶端再連接到伺服器開放的埠進行數據傳輸。
二.兩種模式的比較
從上面的運行原來看到,主動模式和被動模式的不同簡單概述為: 主動模式傳送數據時是「伺服器」連接到「客戶端」的埠;被動模式傳送數據是「客戶端」連接到「伺服器」的埠。
主動模式需要客戶端必須開放埠給伺服器,很多客戶端都是在防火牆內,開放埠給FTP伺服器訪問比較困難。
被動模式只需要伺服器端開放埠給客戶端連接就行了。
三.不同工作模式的網路設置
實際項目中碰到的問題是,FTP的客戶端和伺服器分別在不同網路,兩個網路之間有至少4層的防火牆,伺服器端只開放了21埠, 客戶端機器沒開放任何埠。FTP客戶端連接採用的被動模式,結果客戶端能登錄成功,但是無法LIST列表和讀取數據。很明顯,是因為伺服器端沒開放被動模式下的隨機埠導致。
由於被動模式下,伺服器端開放的埠隨機,但是防火牆要不能全部開放,解決的方案是,在ftp伺服器配置被動模式下開放隨機埠在 50000-60000之間(范圍在ftp伺服器軟體設置,可以設置任意1024上的埠段),然後在防火牆設置規則,開放伺服器端50000-60000之間的埠端。
主動模式下,客戶端的FTP軟體設置主動模式開放的埠段,在客戶端的防火牆開放對應的埠段。
四.如何設置 工作模式
實時上FTP伺服器一般都支持主動和被動模式,連接採用何種模式是有FTP客戶端軟體決定。
2. 埠掃描的最新技術有些什麼
一:TCP/IP相關問題
連接端及標記
IP地址和埠被稱作套接字,它代表一個TCP連接的一個連接端。為了獲得TCP服務,必須在發送機的一個埠上和接收機的一個埠上建立連接。TCP連接用兩個連接端來區別,也就是(連接端1,連接端2)。連接端互相發送數據包。
一個TCP數據包包括一個TCP頭,後面是選項和數據。一個TCP頭包含6個標志位。它們的意義分別為:
SYN: 標志位用來建立連接,讓連接雙方同步序列號。如果SYN=1而ACK=0,則表示該數據包為連接請求,如果SYN=1而ACK=1則表示接受連接。
FIN: 表示發送端已經沒有數據要求傳輸了,希望釋放連接。
RST: 用來復位一個連接。RST標志置位的數據包稱為復位包。一般情況下,如果TCP收到的一個分段明顯不是屬於該主機上的任何一個連接,則向遠端發送一個復位包。
URG: 為緊急數據標志。如果它為1,表示本數據包中包含緊急數據。此時緊急數據指針有效。
ACK: 為確認標志位。如果為1,表示包中的確認號時有效的。否則,包中的確認號無效。
PSH: 如果置位,接收端應盡快把數據傳送給應用層。
TCP連接的建立
TCP是一個面向連接的可靠傳輸協議。面向連接表示兩個應用端在利用TCP傳送數據前必須先建立TCP連接。 TCP的可靠性通過校驗和,定時器,數據序號和應答來提供。通過給每個發送的位元組分配一個序號,接收端接收到數據後發送應答,TCP協議保證了數據的可靠傳輸。數據序號用來保證數據的順序,剔除重復的數據。在一個TCP會話中,有兩個數據流(每個連接端從另外一端接收數據,同時向對方發送數據),因此在建立連接時,必須要為每一個數據流分配ISN(初始序號)。為了了解實現過程,我們假設客戶端C希望跟伺服器端S建立連接,然後分析連接建立的過程(通常稱作三階段握手):
1: C --SYN XXà S
2: C ?-SYN YY/ACK XX+1------- S
3: C ----ACK YY+1--à S
1:C發送一個TCP包(SYN 請求)給S,其中標記SYN(同步序號)要打開。SYN請求指明了客戶端希望連接的伺服器端埠號和客戶端的ISN(XX是一個例子)。
2:伺服器端發回應答,包含自己的SYN信息ISN(YY)和對C的SYN應答,應答時返回下一個希望得到的位元組序號(YY+1)。
3:C 對從S 來的SYN進行應答,數據發送開始。
一些實現細節
大部分TCP/IP實現遵循以下原則:
1:當一個SYN或者FIN數據包到達一個關閉的埠,TCP丟棄數據包同時發送一個RST數據包。
2:當一個RST數據包到達一個監聽埠,RST被丟棄。
3:當一個RST數據包到達一個關閉的埠,RST被丟棄。
4:當一個包含ACK的數據包到達一個監聽埠時,數據包被丟棄,同時發送一個RST數據包。
5:當一個SYN位關閉的數據包到達一個監聽埠時,數據包被丟棄。
6:當一個SYN數據包到達一個監聽埠時,正常的三階段握手繼續,回答一個SYN ACK數據包。
7:當一個FIN數據包到達一個監聽埠時,數據包被丟棄。"FIN行為"(關閉得埠返回RST,監聽埠丟棄包),在URG和PSH標志位置位時同樣要發生。所有的URG,PSH和FIN,或者沒有任何標記的TCP數據包都會引起"FIN行為"。
二:全TCP連接和SYN掃描器
全TCP連接
全TCP連接是長期以來TCP埠掃描的基礎。掃描主機嘗試(使用三次握手)與目的機指定埠建立建立正規的連接。連接由系統調用connect()開始。對於每一個監聽埠,connect()會獲得成功,否則返回-1,表示埠不可訪問。由於通常情況下,這不需要什麼特權,所以幾乎所有的用戶(包括多用戶環境下)都可以通過connect來實現這個技術。
這種掃描方法很容易檢測出來(在日誌文件中會有大量密集的連接和錯誤記錄)。Courtney,Gabriel和TCP Wrapper監測程序通常用來進行監測。另外,TCP Wrapper可以對連接請求進行控制,所以它可以用來阻止來自不明主機的全連接掃描。
TCP SYN掃描
在這種技術中,掃描主機向目標主機的選擇埠發送SYN數據段。如果應答是RST,那麼說明埠是關閉的,按照設定就探聽其它埠;如果應答中包含SYN和ACK,說明目標埠處於監聽狀態。由於所有的掃描主機都需要知道這個信息,傳送一個RST給目標機從而停止建立連接。由於在SYN掃描時,全連接尚未建立,所以這種技術通常被稱為半打開掃描。SYN掃描的優點在於即使日誌中對掃描有所記錄,但是嘗試進行連接的記錄也要比全掃描少得多。缺點是在大部分操作系統下,發送主機需要構造適用於這種掃描的IP包,通常情況下,構造SYN數據包需要超級用戶或者授權用戶訪問專門的系統調用。
三:秘密掃描與間接掃描
秘密掃描技術
由於這種技術不包含標準的TCP三次握手協議的任何部分,所以無法被記錄下來,從而必SYN掃描隱蔽得多。另外,FIN數據包能夠通過只監測SYN包的包過濾器。
秘密掃描技術使用FIN數據包來探聽埠。當一個FIN數據包到達一個關閉的埠,數據包會被丟掉,並且回返回一個RST數據包。否則,當一個FIN數據包到達一個打開的埠,數據包只是簡單的丟掉(不返回RST)。
Xmas和Null掃描是秘密掃描的兩個變種。Xmas掃描打開FIN,URG和PUSH標記,而Null掃描關閉所有標記。這些組合的目的是為了通過所謂的FIN標記監測器的過濾。
秘密掃描通常適用於UNIX目標主機,除過少量的應當丟棄數據包卻發送reset信號的操作系統(包括CISCO,BSDI,HP/UX,MVS和IRIX)。在Windows95/NT環境下,該方法無效,因為不論目標埠是否打開,操作系統都發送RST。
跟SYN掃描類似,秘密掃描也需要自己構造IP 包。
間接掃描
間接掃描的思想是利用第三方的IP(欺騙主機)來隱藏真正掃描者的IP。由於掃描主機會對欺騙主機發送回應信息,所以必須監控欺騙主機的IP行為,從而獲得原始掃描的結果。間接掃描的工作過程如下:
假定參與掃描過程的主機為掃描機,隱藏機,目標機。掃描機和目標記的角色非常明顯。隱藏機是一個非常特殊的角色,在掃描機掃描目的機的時候,它不能發送任何數據包(除了與掃描有關的包)。
四:認證掃描和代理掃描
認證掃描
到目前為止,我們分析的掃描器在設計時都只有一個目的:判斷一個主機中哪個埠上有進程在監聽。然而,最近的幾個新掃描器增加了其它的功能,能夠獲取監聽埠的進程的特徵和行為。
認證掃描是一個非常有趣的例子。利用認證協議,這種掃描器能夠獲取運行在某個埠上進程的用戶名(userid)。認證掃描嘗試與一個TCP埠建立連接,如果連接成功,掃描器發送認證請求到目的主機的113TCP埠。認證掃描同時也被成為反向認證掃描,因為即使最初的RFC建議了一種幫助伺服器認證客戶端的協議,然而在實際的實現中也考慮了反向應用(即客戶端認證伺服器)。
代理掃描
文件傳輸協議(FTP)支持一個非常有意思的選項:代理ftp連接。這個選項最初的目的(RFC959)是允許一個客戶端同時跟兩個FTP伺服器建立連接,然後在伺服器之間直接傳輸數據。然而,在大部分實現中,實際上能夠使得FTP伺服器發送文件到Internet的任何地方。許多攻擊正是利用了這個缺陷。最近的許多掃描器利用這個弱點實現ftp代理掃描。
ftp埠掃描主要使用ftp代理伺服器來掃描tcp埠。掃描步驟如下:
1:假定S是掃描機,T是掃描目標,F是一個ftp伺服器,這個伺服器支持代理選項,能夠跟S和T建立連接。
2:S與F建立一個ftp會話,使用PORT命令聲明一個選擇的埠(稱之為p-T)作為代理傳輸所需要的被動埠。
3:然後S使用一個LIST命令嘗試啟動一個到p-T的數據傳輸。
4:如果埠p-T確實在監聽,傳輸就會成功(返回碼150和226被發送回給S)。否則S回收到"425無法打開數據連接"的應答。
5:S持續使用PORT和LIST命令,直到T上所有的選擇埠掃描完畢。
FTP代理掃描不但難以跟蹤,而且當ftp伺服器在防火牆後面的時候
五:其它掃描方法
Ping掃描
如果需要掃描一個主機上甚至整個子網上的成千上萬個埠,首先判斷一個主機是否開機就非常重要了。這就是Ping掃描器的目的。主要由兩種方法用來實現Ping掃描。
1:真實掃描:例如發送ICMP請求包給目標IP地址,有相應的表示主機開機。
2:TCP Ping:例如發送特殊的TCP包給通常都打開且沒有過濾的埠(例如80埠)。對於沒有root許可權的掃描者,使用標準的connect來實現。否則,ACK數據包發送給每一個需要探測的主機IP。每一個返回的RST表明相應主機開機了。另外,一種類似於SYN掃描埠80(或者類似的)也被經常使用。
安全掃描器
安全掃描器是用來自動檢查一個本地或者遠程主機的安全漏洞的程序。象其它埠掃描器一樣,它們查詢埠並記錄返回結果。但是它們。它們主要要解決以下問題:
1:是否允許匿名登錄。
2:是否某種網路服務需要認證。
3:是否存在已知安全漏洞。
可能SATAN是最著名的安全掃描器。1995年四月SATAN最初發布的時候,人們都認為這就是它的最終版本,認為它不但能夠發現相當多的已知漏洞,而且能夠針對任何很難發現的漏洞提供信息。但是,從它發布以來,安全掃描器一直在不斷地發展,其實現機制也越來越復雜。
棧指紋
絕大部分安全漏洞與缺陷都與操作系統相關,因此遠程操作系統探測是系統管理員關心的一個問題。
遠程操作系統探測不是一個新問題。近年來,TCP/IP實現提供了主機操作系統信息服務。FTP,TELNET,HTTP和DNS伺服器就是很好的例子。然而,實際上提供的信息都是不完整的,甚至有可能是錯誤的。最初的掃描器,依靠檢測不同操作系統對TCP/IP的不同實現來識別操作系統。由於差別的有限性,現在只能最多隻能識別出10餘種操作系統。
最近出現的兩個掃描器,QueSO和NMAP,在指紋掃描中引入了新的技術。 QueSO第一個實現了使用分離的資料庫於指紋。NMAP包含了很多的操作系統探測技術,定義了一個模板數據結構來描述指紋。由於新的指紋可以很容易地以模板的形式加入,NMAP指紋資料庫是不斷增長的,它能識別的操作系統也越來越多。
這種使用掃描器判斷遠程操作系統的技術稱為(TCP/IP)棧指紋技術。
另外有一種技術稱為活動探測。活動探測把TCP的實現看作一個黑盒子。通過研究TCP對探測的回應,就可以發現 TCP實現的特點。TCP/IP 棧指紋技術是活動探測的一個變種,它適用於整個TCP/IP協議的實現和操作系統。棧指紋使用好幾種技術來探測TCP/IP協議棧和操作系統的細微區別。這些信息用來創建一個指紋,然後跟已知的指紋進行比較,就可以判斷出當前被掃描的操作系統。
棧指紋掃描包含了相當多的技術。下面是一個不太完整的清單:
1:FIN探測
2:BOGUS標記探測
3:TCP ISN 取樣
4:TCP 初始窗口
5:ACK值
6:ICMP錯誤信息
7:ICMP信息
8:服務類型
9:TCP選項
3. 請高手介紹一下ftp的主動連接和被動連接
所謂port模式也就是主動模式。在FTP協議剛剛建立的時候,只定義了普通的連接模式,也就是port模式。
Port 模式的連接過程是:在開始一個FTP的連接時,客戶端程序首先會為自己隨機分配一個TCP埠,它使用這個個埠向伺服器的FTP埠(默認為21)發出連接請求,伺服器接受請求之後會建立一條控制鏈路,然後客戶程序發出port命令(通常格式為PORT A, A, A, A, I,I,其中A,A,A,A為客戶端IP地址,I,I為隨機的一個數據連接埠號)告訴伺服器它的數據通道的埠打開了。當需要傳送數據時,伺服器便從隨機選擇的一個埠向客戶端的20埠發送連接請求,請求被接受之後便開始傳輸數據,數據鏈路通道也就打開了。
---------------
所謂pasv模式也就是被動模式。隨著網路的不斷發展,出現了防火牆。老的FTP協議在遇到防火牆的時候就束手無策了,這是因為20埠往往是防火牆的重點封堵對象,因此數據也就不能發送出去了,於是pasv模式就誕生了。
Pasv 模式的連接過程是:在開始一個FTP的連接時,客戶端程序首先為自己隨機分配一個TCP埠,它使用這個埠向伺服器的FTP埠(默認為21)發出連接請求,伺服器接受請求之後會建立一條控制鏈路,然後客戶端程序發出PASV命令,代替原來PORT命令告訴伺服器它的數據連接埠,於是伺服器便為自己隨機分配一個數據通道埠,並將這個埠號告訴客戶端程序。當需要傳送數據時,客戶端程序會向伺服器的數據通道埠發送連接請求,請求被接受之後便開始傳輸數據,數據鏈路通道也就打開了。
---------------
1.所謂主動和被動可以看作是以伺服器端為基準,當伺服器主動向客戶端發送數據連接請求時,為主動模式;當客戶端主動向伺服器發送數據連接請求時,為被動模式。
2.無論客戶端還是伺服器端有防火牆,或是兩邊都有防火牆,只要PASV模式下兩邊數據通道的連接埠在防火牆的攔截之外就可以建立成功。如果防火牆將所有的埠全部堵死,則不能建立數據通道。
---------------
FTP使用中PASV模式的操作方法(註:此方法只有在無法登錄和下載的情況下才可使用!!! )
取消 pasv 模式的方法
有許多朋友的 FTP 伺服器是不支持 PASV 模式的,登入時要取消 PASV 模式才行。現將幾種 FTP 下載工具的取消方法公布如下:
1.把 flashget 的 pasv 模式關掉的方法
點菜單上的「工具」->「選項」->「代理伺服器」->「直接連接」->編輯->把「 pasv 模式」前的勾勾去掉,一路確定回來。
2.把 Cutftp 的 pasv 模式關掉的方法
點菜單上的「文件」->「站點管理」->在「站點管理器」窗口->「新建站點」->填上「域名」->「編輯」->「常規」->把「使用 pasv 模式」前的勾勾去掉。
3.把 FlashFXP 的 pasv 模式關掉的方法
點菜單上的「站點」->「站點管理器」->站點管理器窗口->「新建站點」->填上「域名」->「選項」->把「使用被動模式」前的勾勾去掉->「應用」 即可。
4.把 NetAnts 的 pasv 模式關掉的方法
點菜單上的"選項"->"參數設置"->"代理"->「直接連接」->編輯->把「 pasv 模式」前的勾勾去掉,一路確定回來。
---------------
相信大家都知道FTP是什麼啦,但我相還有很多人不知道什麼是PASV和PORT,或者你知道但不知道他們到底是什麼。
下面介紹一下這兩種模式吧:
PORT其實是Standard模式的另一個名字,又稱為Active模式。中文意思是「主動模式。
PASV也就是Passive的簡寫。中文就是「被動模式。
兩者之間有什麼不同:
不同之處是由於PORT這個方式需要在接上TCP 21埠後,伺服器通過自己的TCP 20來發出數據。並且需要建立一個新的連接來傳送檔案。而PORT的命令包含一些客戶端沒用的資料,所以有了PASv的出現。
而PASV模式就當然擁有PORT模式的優點及去掉一些PORT的缺點。PASV運行方式就是當伺服器接收到PASV命令時,就會自動從埠1024到5000中隨機選擇,而且還會使用同一個埠來傳送數據,不用建立新的連接。
4. 為什麼配置RIP協議的路由器要將區域網埠設置為被動埠
在RIP路由協議中,區域網介面就是連接到一個區域網的路由器介面。由於該網路內部沒有路由器設備,不需要傳播路由更新信息,因此就把該介面設置為被動介面;
RIP路由協議的被動介面是只接收RIP路由更新,而不進行轉發的路由器介面;
由於在區域網內部已經沒有運行RIP路由協議的設備,因此將區域網介面設置為被動介面可以減少RIP路由廣播的數量;
RIP路由協議的被動介面配置命令如下:R2(config-router)#passive-interface fa0/0
5. 被動埠
先說邊緣埠,一般的交換機介面由關閉到轉發需要一個過程,具體步驟就不說了,直白的說就是有一些延遲,而把埠變成邊緣埠,轉換為轉發狀態只需要瞬間,所以在有生成樹的網路裡面一般都開啟邊緣埠;被動埠一般配合動態路由使用,給內網或者默認路由的網路介面配置被動埠,則這些網路不會進行路由更新,節約資源。
滿意請採納。
6. 如何在IIS上設置FTP被動模式的埠范圍
windows2016伺服器,管理員命令行窗口:
比如限制埠范圍3000-3300,一行代碼(numberofports最小值255):
netsh int ipv4 set dynamicport protocol=tcp startport=3000 numberofports=300
7. ftp被動連接埠是怎樣確定的
我給你找了一些希望能有用,我也不是很懂。
被動FTP
為了解決伺服器發起到客戶的連接的問題,人們開發了一種不同的FTP連接方式。這就是所謂的被動方式,或者叫做PASV,當客戶端通知伺服器它處於被動模式時才啟用。
在被動方式FTP中,命令連接和數據連接都由客戶端發起,這樣就可以解決從伺服器到客戶端的數據埠的入方向連接被防火牆過濾掉的問題。
當開啟一個 FTP連接時,客戶端打開兩個任意的非特權本地埠(N > 1024和N+1)。第一個埠連接伺服器的21埠,但與主動方式的FTP不同,客戶端不會提交PORT命令並允許伺服器來回連它的數據埠,而是提交 PASV命令。這樣做的結果是伺服器會開啟一個任意的非特權埠(P > 1024),並發送PORT P命令給客戶端。然後客戶端發起從本地埠N+1到伺服器的埠P的連接用來傳送數據。
對於伺服器端的防火牆來說,必須允許下面的通訊才能支持被動方式的FTP:
1. 從任何大於1024的埠到伺服器的21埠 (客戶端初始化的連接)
2. 伺服器的21埠到任何大於1024的埠 (伺服器響應到客戶端的控制埠的連接)
3. 從任何大於1024埠到伺服器的大於1024埠 (客戶端初始化數據連接到伺服器指定的任意埠)
4. 伺服器的大於1024埠到遠程的大於1024的埠(伺服器發送ACK響應和數據到客戶端的數據埠)