1. 程式人生 > 實用技巧 >使用Windows Server 2008 R2打造雙線FTP伺服器

使用Windows Server 2008 R2打造雙線FTP伺服器

使用Windows Server 2008 R2打造雙線FTP伺服器

1 FTP的PASV與PORT模式概述

在所有的網路服務中,FTP伺服器的釋出是比較複雜的,這是由FTP的工作原理造成的。FTP伺服器主要有兩種工作模式:PORT模式與PASV模式。

在PORT模式中,FTP 客戶端首先和FTP伺服器的TCP 21埠建立連線,通過這個通道傳送命令,客戶端需要接收資料的時候在這個通道上傳送PORT命令。 PORT命令包含了客戶端用什麼埠接收資料。在傳送資料的時候,伺服器端通過自己的TCP 20埠連線至客戶端的指定埠傳送資料。 FTP server必須和客戶端建立一個新的連線用來傳送資料。

PASV模式在建立控制通道的時候和Port模式類似,但建立連線後傳送的不是Port命令,而是Pasv命令。FTP伺服器收到Pasv命令後,隨機開啟一個高階埠(埠號大於1024)並且通知客戶端在這個埠上傳送資料的請求,客戶端連線FTP伺服器此埠,然後FTP伺服器將通過這個埠進行資料的傳送,這個時候FTP server不再需要建立一個新的和客戶端之間的連線。

很多防火牆在設定的時候都是不允許接受外部發起的連線的,所以許多位於防火牆後或內網的FTP伺服器不支援PASV模式,因為客戶端無法穿過防火牆開啟FTP伺服器的高階埠;

而許多內網的客戶端不能用PORT模式登陸FTP伺服器,因為從伺服器的TCP 20無法和內部網路的客戶端建立一個新的連線,造成無法工作。

2 使用防火牆釋出FTP伺服器通常選擇PASV模式

為了解決這個問題,並且在許多情況下,終端使用者沒有機會配置所屬網路的防火牆。所以,一般情況下,在釋出FTP伺服器時,通過是讓FTP伺服器工作在PASV模式,並且指定PASV對外服務的地址以及PASV服務的埠,讓防火牆釋出指定的埠。

以前我一直使用serv-u做FTP伺服器,因為我的網路中有不止一臺FTP伺服器並且要釋出到Internet供使用者使用。在Windows Server 2008及其以前的版本中,雖然Windows作業系統自帶的FTP伺服器非常安全,但由於其配置較少,並且不能指定PASV埠對外地址、修改PASV埠範圍較複雜等,一直使用serv-u等FTP伺服器軟體。但是,隨著64位Windows作業系統的普及與發展,現在在網路中配置FTP又被提上了日程:支援64位Windows Server作業系統的FTP並不是很多,並且這些FTP伺服器越來越複雜、龐大,偶爾會有漏洞出現。而對於我們大量使用者來說,需要FTP伺服器的功能有限:能釋出到Internet、能上傳、下載,並能分使用者管理就行。現在,Windows Server 2008 R2,升級了IIS中整合的FTP伺服器,除了具有原來的功能外,還增加了指定PASV地址與埠的功能,這足以滿足使用者的需求。在本文中,我們通過一個案例,進行介紹。

3 FTP伺服器實驗案例

clip_p_w_picpath002

圖1 FTP實驗拓撲

在圖1中,由Forefront TMG 2010保護的內網,有兩臺FTP伺服器,這兩臺FTP伺服器,除了供“內網”使用外,還發布到Internet,供Internet使用者使用。並且,該網路外接有電信與聯通線路,可以讓使用者根據自己的網路選擇是使用電信還是聯通線路連線到FTP伺服器。

要解決圖1所描述的網路的功能,我們可以有多種方法解決,在此先解決一個以前在serv-u中採用的辦法:用不同的埠釋出FTP伺服器,我們通過表1對此做出規則。

伺服器

電信服務埠

聯通服務埠

PASV埠

內網服務埠

FTP1

2010

2011

2012

21

FTP2

2020

2021

2022

21







在按照表1規劃後,Internet的使用者,如果是電信線路,則通過ftp://219.x.x.x:2010訪問FTP1,通過ftp://219.x.x.x:2020訪問FTP2;如果是聯通線路,則通過ftp://61.y.y.y:2011訪問FTP1,通過ftp://61.y.y.y:2021訪問FTP2;而內網使用者,則直接通過ftp://192.168.1.11訪問FTP1,通過ftp://192.168.1.12訪問FTP2。

4 實驗步驟

在做好規劃之後,實現起來就比較簡單了。主要步驟如下:

4.1 雙WAN口路由器設定

在雙WAN口路由器中,對映TCP的2010、2011、2012、2020、2021、2022到Forefront TMG 2010的“外網地址”10.10.10.10,如圖2所示。

clip_p_w_picpath004

圖2 配置雙WAN口路由器

4.2 Forefront TMG設定

在Forefront TMG 2010中,建立兩個自定義協議,其中麼一個協議名稱為FTP_in:2010-2012(也可以是其他名稱)、採用TCP協議、方向為“入站”、協議號為2010~2012(如圖3~圖5所示);另一個協議名稱為FTP_in:2020-2022、協議號為2020~2022的TCY入站協議。然後建立“非Web伺服器釋出規則”,釋出192.168.1.11的伺服器,採用FTP_in:2010-2012協議(如圖6~10所示);釋出192.168.1.12的伺服器,採用FTP_in:2020-2022協議。

clip_p_w_picpath006

圖3 新建協議

clip_p_w_picpath008

圖4 指定協議名稱

clip_p_w_picpath010

圖5 設定連線資訊

clip_p_w_picpath012

圖6 建立伺服器釋出規則

clip_p_w_picpath014

圖7 設定伺服器釋出規則名稱

clip_p_w_picpath016

圖8 指定伺服器的地址

clip_p_w_picpath018

圖9 選擇協議

clip_p_w_picpath020

圖10 釋出完成

clip_p_w_picpath022

圖11 應用設定

4.3 FTP伺服器設定

在FTP1伺服器中(已經安裝好Windows Server 2008 R2協議),安裝IIS與FTP服務,指定FTP伺服器使用PASV的埠為2012,建立三個FTP伺服器中,這三個伺服器可以使用同一個“父目錄”,並且這三個伺服器的服務埠分別為21(內網使用)、2010(電信使用)、2011(網通使用)。相關步驟如下。

(1)在“Internet資訊服務管理器”中,在IIS管理的根路徑,雙擊右側的“FTP防火牆支援”,如圖12所示。

clip_p_w_picpath024

圖12 FTP防火牆支援

(2)在“FTP防火牆支援”頁,在“資料通道埠範圍”文字框中,鍵入前面規則的埠範圍,在此為2012-2012,然後單擊“應用”,如圖13所示。

clip_p_w_picpath026

圖13 指定PASV埠範圍

(3)返回到圖12後,雙擊“FTP SSL設定”連結,選中“允許SSL連線”,然後單擊“應用”,如圖14所示。

clip_p_w_picpath028

圖14 FTP SSL設定

接下來建立用於內網使用的FTP,該FTP伺服器的埠為21。步驟如下。

(4)右擊“網站”,在彈出的快捷選單中選擇“新增FTP站點”,如圖15所示。也可以單擊右側任務窗格中的“新增FTP站點”連結。

clip_p_w_picpath029

圖15 新增FTP站點

(5)設定站點名稱為“FTP-21”,併為站點配置物理路徑,如圖16所示。

clip_p_w_picpath030

圖16 指定FTP站點名稱

(6)在“繫結和SSL設定”頁,設定埠號為21,在“SSL”選項組中,選擇“無”,如圖17所示。

clip_p_w_picpath031

圖17 繫結和SSL設定

(7)在“身份驗證和授權資訊”頁,選擇“匿名”使用者訪問,如圖18所示。

clip_p_w_picpath032

圖18 匿名訪問

然後參照(4)~(7)的步驟,分別建立名為“FTP-DX_2010”、“FTP-WT_2011”的FTP站點,使用同一個目錄、埠分別為2010、2011,如圖19~圖22所示。

clip_p_w_picpath033

圖19 電信FTP站點

clip_p_w_picpath034

圖20 電信FTP埠

clip_p_w_picpath035

圖21 網通FTP站點

clip_p_w_picpath036

圖22 網通FTP埠

(8)建立完成三個FTP站點後,返回到IIS管理器。接下來要修改各FTP伺服器對外的PASV的IP地址,以“FTP-DX_2010”站點為例。在IIS中,在左側任務窗格選中“FTP-DX_2010”,雙擊右側的“FTP防火牆支援”連結,如圖23所示。

clip_p_w_picpath038

圖23 FTP防火牆支援

在彈出的“FTP防火牆支援”頁,在“防火牆的外部IP地址”文字框中,鍵入外網的IP地址,在本例中是219.x.x.x,然後單擊“應用”按鈕,如圖24所示。

clip_p_w_picpath040

圖24 指定PASV的IP地址

(9)同樣,對於釋出到網通的“FTP-WT_2011”FTP站點,修改其PASV的IP地址為網通的地址,在本例中為61.y.y.y,如圖25所示。

clip_p_w_picpath042

圖25 指定網通FTP的PASV的IP地址

(10)而對於用於內網的FTP,則不需要修改其PASV的IP地址,該地址為空即可,如圖26所示。

clip_p_w_picpath044

圖26 內網FTP不需要修改

經過上述配置,Internet上的使用者,以及內網的使用者,就可以使用不同的地址與埠、訪問同一臺FTP伺服器中的內容了。


轉載於:https://blog.51cto.com/dengaosky/1869007