使用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服務器的高端端口;
圖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所示。
圖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協議。
圖3 新建協議
圖4 指定協議名稱
圖5 設置連接信息
圖6 創建服務器發布規則
圖7 設置服務器發布規則名稱
圖8 指定服務器的地址
圖9 選擇協議
圖10 發布完成
圖11 應用設置
4.3 FTP服務器設置
在FTP1服務器中(已經安裝好Windows Server 2008 R2協議),安裝IIS與FTP服務,指定FTP服務器使用PASV的端口為2012,創建三個FTP服務器中,這三個服務器可以使用同一個“父目錄”,并且這三個服務器的服務端口分别為21(内網使用)、2010(電信使用)、2011(網通使用)。相關步驟如下。
(1)在“Internet信息服務管理器”中,在IIS管理的根路徑,雙擊右側的“FTP防火牆支持”,如圖12所示。
圖12 FTP防火牆支持
(2)在“FTP防火牆支持”頁,在“數據通道端口範圍”文本框中,鍵入前面規則的端口範圍,在此為2012-2012,然後單擊“應用”,如圖13所示。
圖13 指定PASV端口範圍
(3)返回到圖12後,雙擊“FTP SSL設置”鍊接,選中“允許SSL連接”,然後單擊“應用”,如圖14所示。
圖14 FTP SSL設置
接下來創建用于内網使用的FTP,該FTP服務器的端口為21。步驟如下。
(4)右擊“網站”,在彈出的快捷菜單中選擇“添加FTP站點”,如圖15所示。也可以單擊右側任務窗格中的“添加FTP站點”鍊接。
圖15 添加FTP站點
(5)設置站點名稱為“FTP-21”,并為站點配置物理路徑,如圖16所示。
圖16 指定FTP站點名稱
(6)在“綁定和SSL設置”頁,設置端口号為21,在“SSL”選項組中,選擇“無”,如圖17所示。
圖17 綁定和SSL設置
(7)在“身份驗證和授權信息”頁,選擇“匿名”用戶訪問,如圖18所示。
圖18 匿名訪問
然後參照(4)~(7)的步驟,分别創建名為“FTP-DX_2010”、“FTP-WT_2011”的FTP站點,使用同一個目錄、端口分别為2010、2011,如圖19~圖22所示。
圖19 電信FTP站點
圖20 電信FTP端口
圖21 網通FTP站點
圖22 網通FTP端口
(8)創建完成三個FTP站點後,返回到IIS管理器。接下來要修改各FTP服務器對外的PASV的IP地址,以“FTP-DX_2010”站點為例。在IIS中,在左側任務窗格選中“FTP-DX_2010”,雙擊右側的“FTP防火牆支持”鍊接,如圖23所示。
圖23 FTP防火牆支持
在彈出的“FTP防火牆支持”頁,在“防火牆的外部IP地址”文本框中,鍵入外網的IP地址,在本例中是219.x.x.x,然後單擊“應用”按鈕,如圖24所示。
圖24 指定PASV的IP地址
(9)同樣,對于發布到網通的“FTP-WT_2011”FTP站點,修改其PASV的IP地址為網通的地址,在本例中為61.y.y.y,如圖25所示。
圖25 指定網通FTP的PASV的IP地址
(10)而對于用于内網的FTP,則不需要修改其PASV的IP地址,該地址為空即可,如圖26所示。
圖26 内網FTP不需要修改
經過上述配置,Internet上的用戶,以及内網的用戶,就可以使用不同的地址與端口、訪問同一台FTP服務器中的内容了。
獲取更多更新文章技術,感覺此文章對您有好處,感快動動小手收藏轉發 關注吧!!!
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!