1. 簡述ftp的概念
FTP的概念簡述如下:
文件傳輸協議是用於在網路上進行文件傳輸的一套標准協議,文件傳輸工作在OSI模型的第七層,TCP模型的第四層,即應用層,使用TCP傳輸而不是UDP,客戶在和伺服器建立連接前要經過一個「三次握手」的過程。
保證客戶與伺服器之間的連接是可靠的,而且是面向連接,為數據傳輸提供可靠保證,FTP允許用戶以文件操作的方式,與另一主機相互通信,用戶並豎粗跡不真正登錄到自己想要存取的計算機上面而成為完全用戶,可用FTP程序訪問遠程資源。
實現用戶往返傳輸文件、目錄管理以及訪問電子郵件等等,即使雙方計算機可能配有不同的操作系統和文件存儲方式。
FTP的工作原理:
FTP採用Internet標准文件傳輸協議FTP的用戶界面,向用戶提供了一組用來管理計算機之間文件傳輸的應用程序,FTP是基於客戶—伺服器(C/S)模型而設計的,在客戶端與FTP伺服器之間建立兩個連接,開發任何基於FTP的客戶端軟體都必須遵循FTP的工作原理。
FTP的獨特的優勢同時也是與其它客戶伺服器程序最大的不同點就在於余並它在兩台通信的主機之間使用了兩條TCP連接,一條是數據連接,用於數據傳送,凳跡另一條是控制連接,用於傳送控制信息(命令和響應)這種將命令和數據分開傳送的思想大大提高了FTP的效率。
2. FTP是什麼
FTP就是用來在客戶機和伺服器之間實現文件傳輸的標准協議。它使用客戶/伺服器模式,客戶程序把客戶的請求告訴伺服器,並將伺服器發回的結果顯示出來。而伺服器端執行真正的工作,比如存儲、發送文件等。\x0d\x0a如果用戶要將一個文件從自己的計算機上發送到另一台計算機上,稱為是FTP的上載,而更多的情況是用戶從伺服器上把文件或資源傳送到客戶機上,稱之為FTP的下載。在Internet上有一些計算機稱為FTP伺服器,它存儲了許多允許存取的文件,如:文本文件、圖像文件、程序文件、聲音文件、電影文件等。\x0d\x0aFTP系統是一個通過Internet傳送文件的系統。FTP客戶程序必須與遠程的FTP伺服器建立連接並登錄後,才能進行文件的傳輸。通常,一個用戶必須在FTP伺服器進行注冊,即建立用戶帳號,擁有合法的登錄用戶名和密碼後,才有可能進行有效的FTP連接和登錄。\x0d\x0a大多數站點提供匿名FTP服務,即這些站點允許任何一個用戶免費登錄到它們的機器上,並從其上復制文件。這類伺服器的目的就是想社會公眾提供免費的文件拷貝服務,因此,它不要求用戶事先在該伺服器進行注冊。與這類「匿名」FTP伺服器建立連接時,用戶名一般是anonymous,而口令可以使用任意字元串,一種比較常用的是使用你的電子郵件地址作為口令。但這個口令既不進行校驗,也不是強制的。\x0d\x0aFTP是基於客戶機/伺服器模式的服務系統,它油客戶軟體、伺服器軟體和FTP通信協議三部分組成。FTP客戶軟體作為一種應用程序,運行在客戶計算機上。用戶使用FTP命令與FTP伺服器建設連接或傳送文件,一般操作系統內置標准FTP命令,標准瀏覽器也支持FTP協議,當然也可以使用一些專用的FTP軟體。FTP伺服器軟體運行在遠程主機上,並設置一個名叫anonymous的公共用戶帳號,向用戶開放。
3. FTP的防範與攻擊如何實現
------------------------FTP安全考慮—RFC2577----------------------------------
1.簡介
文件傳輸協議規范(FTP)[PR85]提供了一種允許客戶端建立FTP控制連接並在兩台
FTP伺服器間傳輸文件的機制。這種「代理FTP」機制可以用來減少網路的流量,客戶端命
令一台伺服器傳輸文件給另一台伺服器,而不是從第一台伺服器傳輸文件給客戶端,然後從
客戶端再傳輸給第二台伺服器。當客戶端連接到網路的速度特別慢時,這是非常有用的。但
同時,代理FTP還帶來了一個安全問題——「跳轉攻擊(bounce attack)」[CERT97:27]。除
了「跳轉攻擊」,FTP伺服器還可以被攻擊者通過強力來猜測密碼。
本文檔並不考慮當FTP和一些強壯的安全協議(比如IP安全)聯合使用的情況。雖然
這些安全關注並不在本文檔的考慮范圍內,但是它們也應該被寫成文檔。
本文給FTP伺服器的實現者和系統管理員提供了一些信息,如下所示。第二章描述了
FTP「跳轉攻擊」。第三章提供了減少「跳轉攻擊」的建議。第四章給基於網路地址限制訪
問的伺服器提供了建議。第五章提供了限制客戶端強力「猜測密碼」的建議。接著,第六章
簡單的討論了改善保密性的機制。第七章給出了阻止猜測用戶身份的機制。第八章討論了端
口盜用。最後,第九章討論了其它跟軟體漏洞有關而跟協議本身無關的FTP安全問題。
2.跳轉攻擊(Bounce Attack)
RFC959[PR85]中規定的FTP規范提供了一種攻擊知名網路伺服器的一種方法,並且使
攻擊者很難被跟蹤。攻擊者發送一個FTP"PORT"命令給目標FTP伺服器,其中包含該主機
的網路地址和被攻擊的服務的埠號。這樣,客戶端就能命令FTP伺服器發一個文件給被
攻擊的服務。這個文件可能包括根被攻擊的服務有關的命令(如SMTP,NNTP等)。由於是
命令第三方去連接到一種服務,而不是直接連接,就使得跟蹤攻擊者變得困難,並且還避開
了基於網路地址的訪問限制。
例如,客戶端上載包含SMTP命令的報文到FTP伺服器。然後,使用正確的PORT命
令,客戶端命令伺服器打開一個連接給第三方機器的SMTP埠。最後,客戶端命令服務
器傳輸剛才上載的包含SMTP命令的報文給第三方機器。這就使得客戶端不建立任何直接
的連接而在第三方機器上偽造郵件,並且很難跟蹤到這個攻擊者。
3.避免跳轉攻擊
原來的FTP規范[PR85]假定使用TCP進行數據鏈接,TCP埠號從0到1023時報留給
一些眾所周知的服務的,比如郵件,網路新聞和FTP控制鏈接。FTP規范對數據鏈接沒有
限制TCP埠號。因此,使用代理FTP,客戶端就可以命令伺服器去攻擊任何機器上眾所
周知的服務。
為了避免跳轉攻擊,伺服器最好不要打開數據鏈接到小於1024的TCP埠號。如果服
務器收到一個TCP埠號小於1024的PORT命令,那麼可以返回消息504(對這種參數命
令不能實現)。但要注意這樣遺留下那些不知名服務(埠號大於1023)易受攻擊。
一些建議(例如[AOM98]和[Pis94])提供了允許使用除了TCP以外的其他傳輸協議來
建立數據連接的機制。當使用這些協議時,同樣要注意採用類似的防範措施來保護眾所周知
的服務。
另外,我們注意到跳轉攻擊一般需要攻擊者首先上載一個報文到FTP伺服器然後再下
載到准備攻擊的服務埠上。使用適當的文件保護措施就可以阻止這種情況發生。然而攻擊
者也可能通過從遠程FTP伺服器發送一些能破壞某些服務的數據來攻擊它。
禁止使用PORT命令也是避免跳轉攻擊的一種方法。大多數文件傳輸可以僅通過PASV
命令來實現。但這樣做的缺點就是喪失了使用代理FTP的能力,當然代理FTP並不是在所
有場合都需要的。
4.受限制的訪問
一些FTP伺服器希望有基於網路地址的訪問控制。例如,伺服器可能希望限制來自某
些地點的對某些文件的訪問(例如為了某些文件不被傳送到組織以外)。在這種情況下,服
務器在發送受限制的文件之前應該首先確保遠程主機的網路地址在本組織的范圍內,不管是
控制連接還是數據連接。通過檢查這兩個連接,伺服器就被保護避免了這種情況:控制連接
用一台可信任的主機連接而數據連接不是。同樣的,客戶也應該在接受監聽模式下的開放端
口連接後檢察遠程主機的IP地址,以確保連接是由所期望的伺服器建立的。
注意,基於網路地址的受限訪問留下了FTP伺服器易受「地址盜用(spoof)」攻擊。在
spoof攻擊中,攻擊機器可以冒用在組織內的機器的網路地址,從而將文件下載到在組織之
外的未授權的機器上。只要可能,就應該使用安全鑒別機制,比如在[HL97]中列出的安全鑒
別機制。
5.保護密碼
為了減少通過FTP伺服器進行強力密碼猜測攻擊的風險,建議伺服器限制嘗試發送正
確的密碼的次數。在幾次嘗試(3~5次)後,伺服器應該結束和該客戶的控制連接。在結束
控制連接以前,伺服器必須給客戶端發送一個返回碼421(「服務不可用,關閉控制連接」
[PR85])。另外,伺服器在相應無效的「PASS」命令之前應暫停幾秒來消減強力攻擊的有效
性。若可能的話,目標操作系統提供的機制可以用來完成上述建議。
攻擊者可能通過與伺服器建立多個、並行的控制連接破壞上述的機制。為了搏擊多個並
行控制連接的使用,伺服器可以限制控制連接的最大數目,或探查會話中的可疑行為並在以
後拒絕該站點的連接請求。然而上述兩種措施又引入了「服務否決」攻擊,攻擊者可以故意
的禁止有效用戶的訪問。
標准FTP[PR85]在明文文本中使用「PASS」命令發送密碼。建議FTP客戶端和伺服器
端使用備用的鑒別機制,這種鑒別機制不會遭受竊聽。比如,IETF公共鑒別技術工作組開
發的機制[HL97]。
6.私密性
在FTP標准中[PR85]中,所有在網路上被傳送的數據和控制信息(包括密碼)都未被
加密。為了保障FTP傳輸數據的私密性,應盡可能使用強壯的加密系統。在[HL97]中定義
了一個這樣的機制。
7.保護用戶名
當「USER」命令中的用戶名被拒絕時,在FTP標准中[PR85]中定義了相應的返回碼530。
而當用戶名是有效的但卻需要密碼,FTP將使用返回碼331。為了避免惡意的客戶利用USER
操作返回的碼確定一個用戶名是否有效,建議伺服器對USER命令始終返回331,然後拒絕
對無效用戶名合並用戶名和密碼。
8.埠盜用
許多操作系統以遞增的順序動態的分配埠號。通過合法的傳輸,攻擊者能夠觀察當前
由伺服器端分配的埠號,並「猜」出下一個即將使用的埠號。攻擊者可以與這個埠建
立連接,然後就剝奪了下一個合法用戶進行傳輸的能力。或者,攻擊者可以盜取給合法用戶
的文件。另外,攻擊者還可能在從授權用戶發出的數據流中插入偽造的文件。通過使FTP
客戶和伺服器隨機的給數據連接分配埠號,或者要求操作系統隨機分配埠號,或者使用
與系統無關的機制都可以減少埠盜用的發生。
9.基於軟體的安全問題
本文檔的重點是和協議相關的安全問題。另外還有一些成文的FTP安全問題是由於不
完善的FTP實現造成的。雖然這種類型的問題的細節超出本文檔的范圍,還是有必要指出
以下那些過去曾被誤用,今後的實現應該慎重考慮的FTP特性。
? 匿名FTP
匿名FTP服務使客戶端用最少的證明連接到FTP伺服器分享公共文件。如果這樣的用
戶能夠讀系統上所有的文件或者能建立文件,那麼問題就產生了。[CERT92:09] [CERT93:06]
? 執行遠程命令
FTP擴展命令"SITE EXEC"允許客戶端執行伺服器上任意的命令。這種特性顯然需要非
常小心的實現。已經有幾個成文的例子說明攻擊者利用FTP「SITE EXEC」命令可以破壞服
務器的安全性。[CERT94:08] [CERT95:16]
? 調試代碼
前面的一些跟FTP有關危及安全的問題是由於置入了調試特性的軟體造成的。
[CERT88:01]
本文建議有這些功能的FTP伺服器的實現者在發布軟體之前參閱所有的CERT有關這
些問題的攻擊以及類似機制的忠告。
10.結論
使用以上建議可以減少和FTP伺服器有關的安全問題的發生,而不用刪除其功能。
4. FTP工作原理是什麼怎麼操作
工作原理:以Internet標准文件傳輸FTP用戶界面, 向用戶提供管理計算機的文件傳輸,FTP在兩台通信主機間將兩條TCP連接,分別為用於數據傳送的數據連接,用於傳送控制信息的控制連接搭行。在交互FTP會話中,控制連接處於連接狀態,數據連接在文件傳送先打開後關閉。
FTP允許用戶以文件操作的方式與另一主機相互通信。然而, 用戶並不真正登錄到自己想要存取的計算機上面而成為完全用戶, 可用FTP程枝春序訪問遠程資源, 實現用戶往返傳輸文件、目錄管理以及訪問電子郵件等等, 即使雙方計算機可能配有不同的操作系統和文件存儲方式。
(4)北約標准ftp擴展閱讀:
FTP支持兩種模式,一種方式叫做PORT方式,主動方式,一種是 Passive,被動方式。Passive模式FTP的客戶端發送 PASV命令到 FTP Server。
1、Port
客戶端從一個任意的非特權埠N(N>1024)連接到FTP伺服器的命令埠,也就是21埠。然後客戶端開始監聽埠N+1,並發送FTP命令「port N+1」到FTP伺服器。接著伺服器會從它自己的數據埠(20)連接到客戶端指定的數據埠(N+1)。
2、Passive
命令連接和數據連接都由客戶端發起,可以解決從伺服器到客戶端的數據埠的入方向連接被防火牆過濾的問題。當開啟一個 FTP連接時,客戶端打開兩個任意的非特權本知搭嘩地埠(N > 1024和N+1)。第一個埠連接伺服器的21埠,客戶端提交 PASV命令。
5. 如何保證文件傳輸伺服器FTP的安全
,系統的安全性是非常重要的,這是建立
FTP伺服器
者所考慮的
第一個問題
。其安全性主要包括以下幾個方面:一、
未經授權的用戶禁止在伺服器上進行FTP操作。
二、
FTP用戶不能讀取未經系統所有者允許的文件或目錄。
三、
未經允許,FTP用戶不能在伺服器上建立文件或目錄。
四、
FTP用戶不能刪除伺服器上的文件或目錄。
只有在伺服器的/etc/passwd文件中存在名為"FTP"的用戶時,伺服器才可以接受
匿名FTP
連接,匿名FTP用戶可以使用"
anonymous
"或"FTP"作為用戶名,自己的Internet
電子郵件地址
作為保密字。為了解決上述安全性的另外三個問題,應該對FTP主目錄下的
文件屬性
進行管理,建議對每個目錄及其文件採取以下一些措施:FTP主目錄:將這個目錄的所有者設為"FTP",並且將屬性設為所有的用戶都不可寫,防止不懷好意的用戶刪改文件。
FTP/bin目錄:該目錄主要放置一些
系統文件
,應將這個目錄的所有者設為"root"(即
超級用戶
),並且將屬性設為所有的用戶都不可寫。為保證合法用戶可顯示文件,應將目錄中的ls文件屬性設為可執行。
FTP/etc目錄:將這個目錄的所有者設為"root",並且將屬性設為所有的用戶都不可寫。將目錄下的group文件和passwd文件的屬性設為所有用戶只讀屬性,並用編輯器將passwd文件中用戶加過密的口令刪掉。
###NextPage###FTP/pub目錄:將這個目錄的所有者置為"FTP",並且將它的屬性設為所有用戶均可讀、寫、執行。
這樣經過設置,既保證了系統文件不被刪改,又保證了FTP合法用戶的正常訪問。
作為Internet上的FTP伺服器,系統的安全性是非常重要的,這是建立FTP伺服器者所考慮的第一個問題。其安全性主要包括以下幾個方面:一、
未經授權的用戶禁止在伺服器上進行FTP操作。
二、
FTP用戶不能讀取未經系統所有者允許的文件或目錄。
三、
未經允許,FTP用戶不能在伺服器上建立文件或目錄。
四、
FTP用戶不能刪除伺服器上的文件或目錄。
只有在伺服器的/etc/passwd文件中存在名為"FTP"的用戶時,伺服器才可以接受匿名FTP連接,匿名FTP用戶可以使用"anonymous"或"FTP"作為用戶名,自己的Internet電子郵件地址作為保密字。為了解決上述安全性的另外三個問題,應該對FTP主目錄下的文件屬性進行管理,建議對每個目錄及其文件採取以下一些措施:FTP主目錄:將這個目錄的所有者設為"FTP",並且將屬性設為所有的用戶都不可寫,防止不懷好意的用戶刪改文件。
FTP/bin目錄:該目錄主要放置一些系統文件,應將這個目錄的所有者設為"root"(即超級用戶),並且將屬性設為所有的用戶都不可寫。為保證合法用戶可顯示文件,應將目錄中的ls文件屬性設為可執行。
FTP/etc目錄:將這個目錄的所有者設為"root",並且將屬性設為所有的用戶都不可寫。將目錄下的group文件和passwd文件的屬性設為所有用戶只讀屬性,並用編輯器將passwd文件中用戶加過密的口令刪掉。
FTP/pub目錄:將這個目錄的所有者置為"FTP",並且將它的屬性設為所有用戶均可讀、寫、執行。
這樣經過設置,既保證了系統文件不被刪改,又保證了FTP合法用戶的正常訪問。