使用Windows Server 2008 R2打造双线FTP服务器

时间:2021-03-26 00:26:59

使用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服务器实验案例

使用Windows Server 2008 R2打造双线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所示。

使用Windows Server 2008 R2打造双线FTP服务器

图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协议。

使用Windows Server 2008 R2打造双线FTP服务器

图3 新建协议

使用Windows Server 2008 R2打造双线FTP服务器

图4 指定协议名称

使用Windows Server 2008 R2打造双线FTP服务器

图5 设置连接信息

使用Windows Server 2008 R2打造双线FTP服务器

图6 创建服务器发布规则

使用Windows Server 2008 R2打造双线FTP服务器

图7 设置服务器发布规则名称

使用Windows Server 2008 R2打造双线FTP服务器

图8 指定服务器的地址

使用Windows Server 2008 R2打造双线FTP服务器

图9 选择协议

使用Windows Server 2008 R2打造双线FTP服务器

图10 发布完成

使用Windows Server 2008 R2打造双线FTP服务器

图11 应用设置

4.3 FTP服务器设置

在FTP1服务器中(已经安装好Windows Server 2008 R2协议),安装IIS与FTP服务,指定FTP服务器使用PASV的端口为2012,创建三个FTP服务器中,这三个服务器可以使用同一个“父目录”,并且这三个服务器的服务端口分别为21(内网使用)、2010(电信使用)、2011(网通使用)。相关步骤如下。

(1)在“Internet信息服务管理器”中,在IIS管理的根路径,双击右侧的“FTP防火墙支持”,如图12所示。

使用Windows Server 2008 R2打造双线FTP服务器

图12 FTP防火墙支持

(2)在“FTP防火墙支持”页,在“数据通道端口范围”文本框中,键入前面规则的端口范围,在此为2012-2012,然后单击“应用”,如图13所示。

使用Windows Server 2008 R2打造双线FTP服务器

图13 指定PASV端口范围

(3)返回到图12后,双击“FTP SSL设置”链接,选中“允许SSL连接”,然后单击“应用”,如图14所示。

使用Windows Server 2008 R2打造双线FTP服务器

图14 FTP SSL设置

接下来创建用于内网使用的FTP,该FTP服务器的端口为21。步骤如下。

(4)右击“网站”,在弹出的快捷菜单中选择“添加FTP站点”,如图15所示。也可以单击右侧任务窗格中的“添加FTP站点”链接。

使用Windows Server 2008 R2打造双线FTP服务器

图15 添加FTP站点

(5)设置站点名称为“FTP-21”,并为站点配置物理路径,如图16所示。

使用Windows Server 2008 R2打造双线FTP服务器

图16 指定FTP站点名称

(6)在“绑定和SSL设置”页,设置端口号为21,在“SSL”选项组中,选择“无”,如图17所示。

使用Windows Server 2008 R2打造双线FTP服务器

图17 绑定和SSL设置

(7)在“身份验证和授权信息”页,选择“匿名”用户访问,如图18所示。

使用Windows Server 2008 R2打造双线FTP服务器

图18 匿名访问

然后参照(4)~(7)的步骤,分别创建名为“FTP-DX_2010”、“FTP-WT_2011”的FTP站点,使用同一个目录、端口分别为2010、2011,如图19~图22所示。

使用Windows Server 2008 R2打造双线FTP服务器

图19 电信FTP站点

使用Windows Server 2008 R2打造双线FTP服务器

图20 电信FTP端口

使用Windows Server 2008 R2打造双线FTP服务器

图21 网通FTP站点

使用Windows Server 2008 R2打造双线FTP服务器

图22 网通FTP端口

(8)创建完成三个FTP站点后,返回到IIS管理器。接下来要修改各FTP服务器对外的PASV的IP地址,以“FTP-DX_2010”站点为例。在IIS中,在左侧任务窗格选中“FTP-DX_2010”,双击右侧的“FTP防火墙支持”链接,如图23所示。

使用Windows Server 2008 R2打造双线FTP服务器

图23 FTP防火墙支持

在弹出的“FTP防火墙支持”页,在“防火墙的外部IP地址”文本框中,键入外网的IP地址,在本例中是219.x.x.x,然后单击“应用”按钮,如图24所示。

使用Windows Server 2008 R2打造双线FTP服务器

图24 指定PASV的IP地址

(9)同样,对于发布到网通的“FTP-WT_2011”FTP站点,修改其PASV的IP地址为网通的地址,在本例中为61.y.y.y,如图25所示。

使用Windows Server 2008 R2打造双线FTP服务器

图25 指定网通FTP的PASV的IP地址

(10)而对于用于内网的FTP,则不需要修改其PASV的IP地址,该地址为空即可,如图26所示。

使用Windows Server 2008 R2打造双线FTP服务器

图26 内网FTP不需要修改

经过上述配置,Internet上的用户,以及内网的用户,就可以使用不同的地址与端口、访问同一台FTP服务器中的内容了。

本文出自 “王春海的博客” 博客,谢绝转载!