基本定義
簡單地說,支持FTP協定的伺服器就是FTP伺服器。
ftp伺服器適用於學校公司等機構,檔案相互的傳遞
軟體使用
在FTP的使用當中,用戶經常遇到兩個概念:"下載"(Download)和"上傳"(Upload)。"下載"檔案就是從遠程主機拷貝檔案至自己的計算機上;"上傳"檔案就是將檔案從自己的計算機中拷貝至遠程主機上。用Internet語言來說,用戶可通過客戶機程式向(從)遠程主機上傳(下載)檔案。
使用FTP時必須首先登錄,在遠程主機上獲得相應的許可權以後,方可上傳或下載檔案。也就是說,要想同哪一台計算機傳送檔案,就必須具有哪一台計算機的適當授權。換言之,除非有用戶ID和口令,否則便無法傳送檔案。這種情況違背了Internet的開放性,Internet上的FTP主機何止千萬,不可能要求每個用戶在每一台主機上都擁有帳號。匿名FTP就是為解決這個問題而產生的。
匿名FTP是這樣一種機制,用戶可通過它連線到遠程主機上,並從其下載檔案,而無需成為其註冊用戶。系統管理員建立了一個特殊的用戶ID,名為anonymous,Internet上的任何人在任何地方都可使用該用戶ID。
通過FTP程式連線匿名FTP主機的方式同連線普通FTP主機的方式差不多,只是在要求提供用戶標識ID時必須輸入anonymous,該用戶ID的口令可以是任意的字元串。習慣上,用自己的E-mail地址作為口令,使系統維護程式能夠記錄下來誰在存取這些檔案。
值得注意的是,匿名FTP不適用於所有Internet主機,它只適用於那些提供了這項服務的主機。
當遠程主機提供匿名FTP服務時,會指定某些目錄向公眾開放,允許匿名存取。系統中的其餘目錄則處於隱匿狀態。作為一種安全措施,大多數匿名FTP主機都允許用戶從其下載檔案,而不允許用戶向其上載檔案,也就是說,用戶可將匿名FTP主機上的所有檔案全部拷貝到自己的機器上,但不能將自己機器上的任何一個檔案拷貝至匿名FTP主機上。即使有些匿名FTP主機確實允許用戶上載檔案,用戶也只能將檔案上載至某一指定上載目錄中。隨後,系統管理員會去檢查這些檔案,他會將這些檔案移至另一個公共下載目錄中,供其他用戶下載,利用這種方式,遠程主機的用戶得到了保護,避免了有人上傳有問題的檔案,如帶病毒的檔案。
作為一個Internet用戶,可通過FTP在任何兩台Internet主機之間拷貝檔案。但是,實際上大多數人只有一個Internet帳戶,FTP主要用於下載公共檔案,例如共享軟體、各公司技術支持檔案等。
Internet上有成千上萬台匿名FTP主機,這些主機上存放著數不清的檔案,供用戶免費拷貝。實際上,幾乎所有類型的信息,所有類型的電腦程式都可以在Internet上找到。這是Internet吸引我們的重要原因之一。
匿名FTP使用戶有機會存取到世界上最大的信息庫,這個信息庫是日積月累起來的,並且還在不斷增長,永不關閉,涉及到幾乎所有主題。而且,這一切是免費的。
匿名FTP是Internet網上發布軟體的常用方法。Internet之所以能延續到今天,是因為人們使用通過標準協定提供標準服務的程式。像這樣的程式,有許多就是通過匿名FTP發布的,任何人都可以存取它們。
Internet中的有數目巨大的匿名FTP主機以及更多的檔案,那么到底怎樣才能知道某一特定檔案位於哪個匿名FTP主機上的那個目錄中呢?這正是 Archie伺服器所要完成的工作。Archie將自動在FTP主機中進行搜尋,構造一個包含全部檔案目錄信息的資料庫,使你可以直接找到所需檔案的位置信息。
軟體種類
Server-U
Serv-U是一種被廣泛運用的FTP伺服器端軟體,
支持3x/9x/ME/NT/2K/2000/xp等全Windows系列。可以設定多個FTP伺服器、限定登錄用戶的許可權、登錄主目錄及空間大小等,功能非常完備。 它具有非常完備的安全特性,支持SSl FTP傳輸,支持在多個Serv-U和FTP客戶端通過SSL加密連線保護您的數據安全等。
Serv-U 是眾多的FTP伺服器軟體之一。通過使用Serv-U,用戶能夠將任何一台PC 設定成一個FTP 伺服器,這樣,用戶或其他使用者就能夠使用FTP 協定,通過在同一網路上的任何一台PC與FTP 伺服器連線,進行檔案或目錄的複製,移動,創建,和刪除等。這裡提到的FTP 協定是專門被用來規定計算機之間進行檔案傳輸的標準和規則,正是因為有了象FTP 這樣的專門協定,才使得人們能夠通過不同類型的計算機,使用不同類型的作業系統,對不同類型的檔案進行相互傳遞。
FileZilla
是一款經典的開源FTP解決方案
,包括FileZilla客戶端和FileZillaServer
。其中,FileZillaServer的功能比起商業軟體FTP Serv-U毫不遜色。無論是傳輸速度還是安全性方面,都是非常優秀的一款。
VsFTP
VSFTP是一個基於GPL發布的類Unix系統上使用的FTP伺服器軟體,它的全稱是Very Secure FTP 從此名稱可以看出來,編制者的初衷是代碼的安全。
安全性是編寫VSFTP的初衷,除了這與生俱來的安全特性以外,高速與高穩定性也是VSFTP的兩個重要特點。
在速度方面,使用ASCII代碼的模式下載數據時,VSFTP的速度是Wu-FTP的兩倍,如果Linux主機使用2.4.*的核心,在千兆乙太網上的下載速度可達86MB/S。
在穩定方面,VSFTP就更加的出色,VSFTP在單機(非集群)上支持4000個以上的並發用戶同時連線,根據Red Hat的Ftp伺服器的數據,VSFTP伺服器可以支持15000個並發用戶.
IISFTP
Windows Server 2003中配置FTP伺服器在Windows Server 2003系統中配置FTP伺服器的方法:
第1步,在開始選單中依次單擊“管理工具”→“Internet信息服務(IIS)管理器”選單項,打開“Internet信息服務(IIS)管理器”視窗。在左窗格中展開“FTP站點”目錄,右鍵單擊“默認FTP站點”選項,並選擇“屬性”命令。
第2步,打開“默認FTP站點 屬性”對話框,在“FTP站點”選項卡中可以設定關於FTP站點的參數。其中在“FTP站點標識”區域中可以更改FTP站點名稱、監聽IP位址以及TCP連線埠號,單擊“IP位址”編輯框右側的下拉三角按鈕,並選中該站點要綁定的IP位址。如果想在同一台物理伺服器中搭建多個FTP站點,那么需要為每一個站點指定一個IP位址,或者使用相同的IP位址且使用不同的連線埠號。在“FTP站點連線”區域可以限制連線到FTP站點的計算機數量,一般在區域網路內部設定為“不受限制”較為合適。用戶還可以單擊“當前會話”按鈕來查看當前連線到FTP站點的IP位址,並且可以斷開惡意用戶的連線。
第3步,切換到“安全賬戶”選項卡,此選項卡用於設定FTP伺服器允許的登錄方式。默認情況下允許匿名登錄,如果取消選中“允許匿名連線”複選框,則用戶在登錄FTP站點時需要輸入合法的用戶名和密碼。本例選中“允許匿名連線”複選框。
第4步,切換到“訊息”選項卡,在“標題”編輯框中輸入能夠反映FTP站點屬性的文字(如“伺服器配置技術務網FTP主站點”),該標題會在用戶登錄之前顯示。接著在“歡迎”編輯框中輸入一段介紹FTP站點詳細信息的文字,這些信息會在用戶成功登錄之後顯示。同理,在“退出”編輯框中輸入用戶在退出FTP站點時顯示的信息。另外,如果該FTP伺服器限制了最大連線數,則可以在“最大連線數”編輯框中輸入具體數值。當用戶連線FTP站點時,如果FTP伺服器已經達到了所允許的最大連線數,則用戶會收到“最大連線數”訊息,且用戶的連線會被斷開。
第5步,切換到“主目錄”選項卡。主目錄是FTP站點的根目錄,當用戶連線到FTP站點時只能訪問主目錄及其子目錄的內容,而主目錄以外的內容是不能被用戶訪問的。主目錄既可以是本地計算機磁碟上的目錄,也可以是網路中的已分享資料夾。單擊“瀏覽”按鈕在本地計算機磁碟中選擇要作為FTP站點主目錄的資料夾,並依次單擊“確定”按鈕。根據實際需要選中或取消選中“寫入”複選框,以確定用戶是否能夠在FTP站點中寫入數據。
第6步,切換到“目錄安全性”選項卡,
在該選項卡中主要用於授權或拒絕特定的IP位址連線到FTP站點。例如只允許某一段IP位址範圍內的計算機連線到FTP站點,則應該選中“拒絕訪問”單選框。然後單擊“添加”按鈕,在打開的“授權訪問”對話框中選中“一組計算機”單選框。然後在“網路標識”編輯框中輸入特定的網段),並在“子網掩碼”編輯框中輸入子網掩碼。最後單擊“確定”按鈕。
第7步,返回“默認FTP站點 屬性”對話框,單擊“確定”按鈕使設定生效。現在用戶已經可以在網路中任意客戶計算機的Web瀏覽器中輸入FTP站點地址來訪問FTP站點的內容了。
工作模式
FTP是僅基於TCP的服務,不支持UDP。與眾不同的是FTP使用2個連線埠,一個數據連線埠和一個命令連線埠(也可叫做控制連線埠)。通常來說這兩個連線埠是21(命令連線埠)和20(數據連線埠)。但FTP 工作方式的不同,數據連線埠並不總是20。這就是主動與被動FTP的最大不同之處。主要有兩種工作模式:
主動FTP
即Port模式,客戶端從一個任意的非特權連線埠N(N>1024)連線到FTP伺服器的命令連線埠,也就是21連線埠。然後客戶端開始監聽連線埠N+1,並傳送FTP命令“port N+1”到FTP伺服器。接著伺服器會從它自己的數據連線埠(20)連線到客戶端指定的數據連線埠(N+1)。
針對FTP伺服器前面的防火牆來說,必須允許以下通訊才能支持主動方式FTP:
1. 任何大於1024的連線埠到FTP伺服器的21連線埠。(客戶端初始化的連線)
2. FTP伺服器的21連線埠到大於1024的連線埠。 (伺服器回響客戶端的控制連線埠)
3. FTP伺服器的20連線埠到大於1024的連線埠。(伺服器端初始化數據連線到客戶端的數據連線埠)
4. 大於1024連線埠到FTP伺服器的20連線埠(客戶端傳送ACK回響到伺服器的數據連線埠)
被動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回響和數據到客戶端的數據連線埠)
總結
在主動模式下:FTP伺服器的控制連線埠是21,數據連線埠是20,所以在做靜態映射的時候只需要開放21連線埠即可,他會用20連線埠和客戶端主動的發起連線。
在被動模式下:FTP伺服器的控制連線埠是21,數據連線埠是隨機的,且是客戶端去連線對應的數據連線埠,所以在做靜態的映射話只開放21連線埠是不可以的。此時需要做DMZ。