① 什麼是FTP下載
HTTP和FTP是兩種網路傳輸協議的縮寫,FTP是File Transportation Protocol(文件傳輸協議)的縮寫,而HTTP則是Hyper Text Transportation Protocol(超文本傳輸協議)的縮寫,它們是計算機之間交換數據的方式,也是兩種最經典的文件下載方式。FTP專門用來下載,而HTTP的主要工作是用來瀏覽網頁,不過也能用來下載。這兩種下載方式的原理並不復雜,就是用戶按照一定的規則(協議)和提供文件的伺服器取得聯系並將文件搬到自己的計算機中來。FTP下載方式最古老,在沒有WWW的日子裡,FTP就已經廣為使用了。HTTP出現的較晚,但現在也應用的相當廣泛。其實,如果你僅僅是為了下載而下載,那麼你完全沒必要把他們分的那麼清,這兩種使用的下載方式、下載工具幾乎是一模一樣的。
在進行FTP或者HTTP下載之前你必須獲得有效的資源鏈接或者伺服器地址。比如,FTP下載鏈接通常是這樣的:
ftp://ftp.ftpserver.com/1/2/3/file.exe或者ftp://20.102.192.34/1/2/3/file.exe
來看一下這個地址的結構,這里有很多斜杠(「 /」),是不是有些似曾相識的感覺?其實他們的作用和Windows中用來表示目錄的反斜杠(「」)的作用是完全一樣的。理解了這一點,這個FTP下載鏈接的含義就很清楚了,它代表某個伺服器(伺服器既可以用域名ftp.ftpserver.com來表示,也可以用IP地址來表示202.102.192.34,他們的作用是完全一樣的)上,子目錄1/2/3(三個斜杠代表三個子目錄)下面的一個名稱文件為file.exe的文件。
有時候,你可能得的FTP地址相識被砍去了尾巴的,比如
ftp://ftp.ftpserver.com/或者ftp://20.102.192.34/
這個地址沒有告訴你具體能夠下載的內容,利用這個地址可以連接上FTP伺服器看他有哪些文件然後由選擇地進行下載。
需要特別提一點,所有的FTP伺服器都是需要帳號和密碼才能登錄的。不過有相當一部分FTP伺服器提供了匿名登錄,對於這些伺服器我們可以使用通用的帳號和密碼登錄(通常是帳號Anonymous密碼anonymous),也許你登錄這些FTP伺服器是沒有提示你輸入帳號和密碼,實際上Windows或者FTP軟體自動幫你完成了匿名登陸操作。
還有一部分FTP伺服器出於各種原因,沒有提供匿名登錄,那麼你就需要手工登錄了。假設我們在FTP伺服器ftp://20.102.192.34/上有一組帳號和密碼是user和password,那麼如何才能夠登錄呢?這里有一個非常簡便的方法,在IE的地址欄中輸入:user:password@ftp://20.102.192.34就可以登錄了。
簡單總結一下,FTP(或者HTTP)下載鏈接無非三種:
帶文件名的
不帶文件名
帶帳號和密碼的
IE直接下載
Http方式
前面說過,Http是超文本傳輸協議,我們平常上網的瀏覽器(比如IE)的「本職工作」就是解讀按照這種協議製作的網頁。Web網頁上的各種資源都有一個URL,比方說某個圖片的URL是http://www.aaa.com/a.jpg,某個頁面的URL是http://www.aaa.com/default.html等等。當IE看到這些URL時,他會將其顯示出來。但是如果碰到http://www.aaa.com/a.exe這種擴展名為exe的文件怎麼辦呢?這種文件可不能「顯示」出來,否則就以一堆亂碼,這時IE會彈出一個對話框�視沒�欠褚��募�4嫻獎鏡兀�略鼐褪欽庋��嫉摹?
1、在頁面上單擊一個提供下載的鏈接
2、設置一個文件名和保存位置然後單擊「保存」按鈕。
3、當顯示「下載完畢」後,你可以直接單擊「打開」按鈕將下載的文件打開,也可以單擊「打開文件夾」打開下載文件所在的文件夾。
很多人都喜歡採用在文件鏈接上單擊滑鼠右鍵選擇「目標另存為」的方式進行下載,如下圖。通常這種方式和直接單擊鏈接效果相同,但是要特別注意一個問題,現在很多提供軟體下載的網站都有防盜鏈功能,因此直接使用「目標另存為」的方法可能無法成功下載。經常是,明明想下載的是一個EXE文件,可是一旦「目標另存為」之後就變成了一個HTML文件。對於這種情況一般沒有特別有效的應付方法,只能使用左鍵單擊的方式進行下載。
FTP方式
在IE中也可以直接訪問FTP網站,假設我們知道了一個匿名FTP站點的地址是redhat.secsup.org,我們可以按照下面的步驟來訪問這個站點。
1、在瀏覽器的地址欄中輸入ftp://redhat.secsup.org來登錄該FTP站點。強調一下,直接輸入這樣的地址的前提是,FTP站點必須是匿名的。如果是非匿名的FTP,必須按照前面在「說點原理」那個小節中說的方式把用戶名和密碼也帶上。
② 如何保證文件傳輸伺服器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合法用戶的正常訪問。
③ 如何保證文件傳輸伺服器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合法用戶的正常訪問。
④ 請問如何保證FTP伺服器的安全
其安全性主要包括以下幾個方面:
一、 未經授權的用戶禁止在伺服器上進行FTP操作。
二、 FTP用戶不能讀取未經系統所有者允許的文件或目錄。
三、 未經允許,FTP用戶不能在伺服器上建立文件或目錄。
四、 FTP用戶不能刪除伺服器上的文件或目錄。
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用戶不能刪除伺服器上的文件或目錄。
FTP伺服器採取了一些驗明用戶身份的辦法來解決上述第一個問題,主要包括以下幾個措施:
FTP主目錄:將這個目錄的所有者設為"FTP",並且將屬性設為所有的用戶都不可寫,防止不懷好意的用戶刪改文件。
FTP/bin目錄:該目錄主要放置一些系統文件,應將這個目錄的所有者設為"root"(即超級用戶),並且將屬性設為所有的用戶都不可寫。為保證合法用戶可顯示文件,應將目錄中的ls文件屬性設為可執行。
FTP/etc目錄:將這個目錄的所有者設為"root",並且將屬性設為所有的用戶都不可寫。將目錄下的group文件和passwd文件的屬性設為所有用戶只讀屬性,並用編輯器將passwd文件中用戶加過密的口令刪掉。
FTP/pub目錄:將這個目錄的所有者置為"FTP",並且將它的屬性設為所有用戶均可讀、寫、執行。
這樣經過設置,既保證了系統文件不被刪改,又保證了FTP合法用戶的正常訪問。
⑤ 如何破解FTP伺服器上防復制
您好:你說破解防復制,其實它就是不讓下載,這是ftp伺服器的許可權設置,
要想有下載許可權,就是黑客問題了,有各種思路:
1.ftp漏洞利用
2.從其他途徑(如網站提權等)得到伺服器操作許可權,就可以做各種事了
不過比較復雜的,沒有一個人說一定可以行的
⑥ 如何提高FTP伺服器安全性
一、禁止系統級別用戶來登錄FTP伺服器。
為了提高FTP伺服器的安全,系統管理員最好能夠為員工設置單獨的FTP帳號,而不要把系統級別的用戶給普通用戶來使用,這會帶來很大的安全隱患。在VSFTP伺服器中,可以通過配置文件vsftpd.ftpusers來管理登陸帳戶。不過這個帳戶是一個黑名單,列入這個帳戶的人員將無法利用其帳戶來登錄FTP伺服器。部署好VSFTP伺服器後,我們可以利用vi命令來查看這個配置文件,發現其已經有了許多默認的帳戶。其中,系統的超級用戶root也在其中。可見出於安全的考慮,VSFTP伺服器默認情況下就是禁止root帳戶登陸FTP伺服器的。如果系統管理員想讓root等系統帳戶登陸到FTP伺服器,則知需要在這個配置文件中將root等相關的用戶名刪除即可。不過允許系統帳戶登錄FTP伺服器,會對其安全造成負面的影響,為此我不建議系統管理員這么做。對於這個文件中相關的系統帳戶管理員最好一個都不要改,保留這些帳號的設置。
如果出於其他的原因,需要把另外一些帳戶也禁用掉,則可以把帳戶名字加入到這個文件中即可。如在伺服器上可能同時部署了FTP伺服器與資料庫伺服器。那麼為了安全起見,把資料庫管理員的帳戶列入到這個黑名單,是一個不錯的做法。
二、加強對匿名用戶的控制。
匿名用戶是指那些在FTP伺服器中沒有定義相關的帳戶,而FTP系統管理員為了便於管理,仍然需要他們進行登陸。但是他們畢竟沒有取得伺服器的授權,為了提高伺服器的安全性,必須要對他們的許可權進行限制。在VSFTP伺服器上也有很多參數可以用來控制匿名用戶的許可權。系統管理員需要根據FTP伺服器的安全級別,來做好相關的配置工作。需要說明的是,匿名用戶的許可權控制的越嚴格,FTP伺服器的安全性越高,但是同時用戶訪問的便利性也會降低。故最終系統管理員還是需要在伺服器安全性與便利性上取得一個均衡。
下面是我推薦的幾個針對匿名用戶的配置,大家若不清楚該如何配置的話,可以參考這些配置。這些配置兼顧了伺服器的安全與用戶的使用便利。
一是參數anon_world_readable_only。這個參數主要用來控制匿名用戶是否可以從FTP伺服器上下載可閱讀的文件。如果FTP伺服器部署在企業內部,主要供企業內部員工使用的話,則最好把這個參數設置為YES。然後把一些企業常用表格等等可以公開的文件放置在上面,讓員工在匿名的情況下也可以下載這些文件。這即不會影響到FTP伺服器的安全,而且也有利於其他員工操作的便利性上。
二是參數anon_upload_enable。這個參數表示匿名用戶能否在匿名訪問的情況下向FTP伺服器上傳文件。通常情況下,應該把這個參數設置為No。即在匿名訪問時不允許用戶上傳文件。否則的話,隨便哪個人都可以上傳文件的話,那對方若上傳一個病毒文件,那企業不是要遭殃了。故應該禁止匿名用戶上傳文件。但是這也有例外。如有些企業通過FTP協議來備份文件。此時如果企業網路的安全性有所保障的話,可以把這個參數設置為YES,即允許操作系統調用FTP命令往FTP伺服器上備份文件。
⑦ FTP伺服器如何設置防盜鏈
防盜鏈,禁止從外部站點下載: <% http=Request.ServerVariables("HTTP_REFERER") http2=Cstr(Request.ServerVariables("SERVER_NAME")) if mid(http,8,len(http2))<>http2 then response.write "本站禁止從外部站點下載!" else response.redirect "download.doc" 'download.doc為下載文件名 end if %>
⑧ 我用FlashFxp上傳文件後(比如EXE文件)。。。。
FTP空間設置了防盜鏈.估計是希望下載者通過網頁形式登陸他們的網站,以此在頁面宣傳他們自己或者做廣告,直接FTP的不允許操作.
技術上可能是先得到訪問者瀏覽特定頁面返回的IP,然後才允許這個IP進行FTP下載.
到他們主頁看看吧,估計有說明的,另外FTP連接完成的時候(客戶端軟體)一般會有說明信息/歡迎信息.
⑨ HTTP FTP
HTTP和FTP是兩種網路傳輸協議的縮寫,FTP是File Transportation Protocol(文件傳輸協議)的縮寫,而HTTP則是Hyper Text Transportation Protocol(超文本傳輸協議)的縮寫,它們是計算機之間交換數據的方式,也是兩種最經典的文件下載方式。FTP專門用來下載,而HTTP的主要工作是用來瀏覽網頁,不過也能用來下載。這兩種下載方式的原理並不復雜,就是用戶按照一定的規則(協議)和提供文件的伺服器取得聯系並將文件搬到自己的計算機中來。FTP下載方式最古老,在沒有WWW的日子裡,FTP就已經廣為使用了。HTTP出現的較晚,但現在也應用的相當廣泛。其實,如果你僅僅是為了下載而下載,那麼你完全沒必要把他們分的那麼清,這兩種使用的下載方式、下載工具幾乎是一模一樣的。
在進行FTP或者HTTP下載之前你必須獲得有效的資源鏈接或者伺服器地址。比如,FTP下載鏈接通常是這樣的:
ftp://ftp.ftpserver.com/1/2/3/file.exe或者ftp://20.102.192.34/1/2/3/file.exe
來看一下這個地址的結構,這里有很多斜杠(「 /」),是不是有些似曾相識的感覺?其實他們的作用和Windows中用來表示目錄的反斜杠(「」)的作用是完全一樣的。理解了這一點,這個FTP下載鏈接的含義就很清楚了,它代表某個伺服器(伺服器既可以用域名ftp.ftpserver.com來表示,也可以用IP地址來表示202.102.192.34,他們的作用是完全一樣的)上,子目錄1/2/3(三個斜杠代表三個子目錄)下面的一個名稱文件為file.exe的文件。
有時候,你可能得的FTP地址相識被砍去了尾巴的,比如
ftp://ftp.ftpserver.com/或者ftp://20.102.192.34/
這個地址沒有告訴你具體能夠下載的內容,利用這個地址可以連接上FTP伺服器看他有哪些文件然後由選擇地進行下載。
需要特別提一點,所有的FTP伺服器都是需要帳號和密碼才能登錄的。不過有相當一部分FTP伺服器提供了匿名登錄,對於這些伺服器我們可以使用通用的帳號和密碼登錄(通常是帳號Anonymous密碼anonymous),也許你登錄這些FTP伺服器是沒有提示你輸入帳號和密碼,實際上Windows或者FTP軟體自動幫你完成了匿名登陸操作。
還有一部分FTP伺服器出於各種原因,沒有提供匿名登錄,那麼你就需要手工登錄了。假設我們在FTP伺服器ftp://20.102.192.34/上有一組帳號和密碼是user和password,那麼如何才能夠登錄呢?這里有一個非常簡便的方法,在IE的地址欄中輸入:user:password@ftp://20.102.192.34就可以登錄了。
簡單總結一下,FTP(或者HTTP)下載鏈接無非三種:
帶文件名的
不帶文件名
帶帳號和密碼的
IE直接下載
Http方式
前面說過,Http是超文本傳輸協議,我們平常上網的瀏覽器(比如IE)的「本職工作」就是解讀按照這種協議製作的網頁。Web網頁上的各種資源都有一個URL,比方說某個圖片的URL是http://www.aaa.com/a.jpg,某個頁面的URL是http://www.aaa.com/default.html等等。當IE看到這些URL時,他會將其顯示出來。但是如果碰到http://www.aaa.com/a.exe這種擴展名為exe的文件怎麼辦呢?這種文件可不能「顯示」出來,否則就以一堆亂碼,這時IE會彈出一個對話框�視沒�欠褚��募�4嫻獎鏡兀�略鼐褪欽庋��嫉摹?
1、在頁面上單擊一個提供下載的鏈接
2、設置一個文件名和保存位置然後單擊「保存」按鈕。
3、當顯示「下載完畢」後,你可以直接單擊「打開」按鈕將下載的文件打開,也可以單擊「打開文件夾」打開下載文件所在的文件夾。
很多人都喜歡採用在文件鏈接上單擊滑鼠右鍵選擇「目標另存為」的方式進行下載,如下圖。通常這種方式和直接單擊鏈接效果相同,但是要特別注意一個問題,現在很多提供軟體下載的網站都有防盜鏈功能,因此直接使用「目標另存為」的方法可能無法成功下載。經常是,明明想下載的是一個EXE文件,可是一旦「目標另存為」之後就變成了一個HTML文件。對於這種情況一般沒有特別有效的應付方法,只能使用左鍵單擊的方式進行下載。
FTP方式
在IE中也可以直接訪問FTP網站,假設我們知道了一個匿名FTP站點的地址是redhat.secsup.org,我們可以按照下面的步驟來訪問這個站點。
1、在瀏覽器的地址欄中輸入ftp://redhat.secsup.org來登錄該FTP站點。強調一下,直接輸入這樣的地址的前提是,FTP站點必須是匿名的。如果是非匿名的FTP,必須按照前面在「說點原理」那個小節中說的方式把用戶名和密碼也帶上。
2、登錄成功之後你會看到和資源管理器幾乎一模一樣的界面,選擇需要的文件或者文件夾,單擊滑鼠右鍵,從彈出的菜單中選擇「復制到文件夾」。
⑩ 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伺服器有關的安全問題的發生,而不用刪除其功能。