利用ISA Server 2006发布内网的Serv-U服务器

前两天有个朋友说,在企业内网搭建了一个Serv-U服务器,在内网访问没有问题,但通过ISA发布出来后,外网用户,不论使用IP或是域名都不能访问。在此我就此问题写了一篇博文来把整个过程实现出来:
我们的拓扑图如下:
利用ISA Server 2006发布内网的Serv-U服务器
此实验用到了三台机器:
Beijing:  在此机器上安装ISA Server 2006
AnHui:  在此机器上搭建 Serv-U服务器
Shanghai 作为外网机器来进行测试

 

步骤一: Anhui安装Serv-u并进行相应的配置
我使用的是Serv-u7.37.3与以前的版本相比,操作界面大不一样,不仅界面不同,而且功能也增加了不少,我个人认为更具人性化操作,下面我们开始安装:
利用ISA Server 2006发布内网的Serv-U服务器
此步是不用多说,肯定是接受。
利用ISA Server 2006发布内网的Serv-U服务器
点击是,定义新域:
利用ISA Server 2006发布内网的Serv-U服务器
利用ISA Server 2006发布内网的Serv-U服务器

通过相应协议可以访问到FTP服务器。在此只允许21端口,否则可能会因为IIS的存在导致SU启动失败或是影响IIS的正常运行!
利用ISA Server 2006发布内网的Serv-U服务器
利用ISA Server 2006发布内网的Serv-U服务器

利用ISA Server 2006发布内网的Serv-U服务器
利用ISA Server 2006发布内网的Serv-U服务器

可以看到当前已经存在了两个用户,杜飞用户上面有一个黄色的惊叹号是因为他没有相对的权限。也就是说,虽然这里创建了杜飞这个用户,但没有给他分配权限。
下面我们来创建一个允许匿名访问的用户,
利用ISA Server 2006发布内网的Serv-U服务器
有两种特殊用户名:"Anonymous"  "FTP"。这两个用户名含义相同,可供访客访问文件服务器。这些用户不需要密码,因此密码部分应该留空。虽然无需输入密码,但 Serv-U 会要求使用这些帐户登录的用户提供其 email 地址以完成登录过程。
然后测试一下:
利用ISA Server 2006发布内网的Serv-U服务器
也可以设置使用域名访问,如下图所示:
利用ISA Server 2006发布内网的Serv-U服务器
然后可以通过DNS或是HOSTS来进行解析操作,解析过程在此不再累述。
然后客户端就可以使用域名来进行连接FTP服务器。
测试如下:
利用ISA Server 2006发布内网的Serv-U服务器

Serv-U的搭载我们就已经完成了,下面就来看看怎么通过ISA 发布出来,供外网用户访问。
步骤二:通过ISA将内网的Serv-U服务器发布出来

因为这是希望外网用户访问内网的服务器,我们需要使用发布规则
利用ISA Server 2006发布内网的Serv-U服务器

创建完成后,我们会发现ISA上开始侦听21端口:
利用ISA Server 2006发布内网的Serv-U服务器
使用IP来访问没有问题,但使用域名来访问时就不行了,这是因为解析有问题:我们可以使用DNS解析,也可以使用Hosts文件,在此我为了操作简单,就直接在ShangHai这台机器上使用Hosts解析:加入以下一行:
192.168.0.4              ftp.dufei.com
然后测试解析是否正常,如下图
利用ISA Server 2006发布内网的Serv-U服务器

利用ISA Server 2006发布内网的Serv-U服务器

至此,实现结束!
但有朋友说按照上面的方法做了,但一直不成功,我分析原因可能如下:
这主要是因为FTP协议与其他的协议不同之外,一般的协议只使用一个周知端口,也就是说客户端只要去向这个周知端口发出连接,一般就可以通讯了,但是FTP就不同了,它在建立连接时候需要创建控制连接也需要用到数据传输连接,控制连接主要用于传递客户端的命令以及服务器端对命令的响应,这个端口是TCP/21端口。但是数据连接的端口是不固定的,这些端口用于传输具体的数据。而且根据FTP工作模式的不同,这个数据连接可能是客户端也有可能是服务器发起的。
关键问题就在于这个数据连接模式上,这里有两种模式,一种是主动模式(port mod),在通讯过程中,控制连接使用周知端口21/TCP,但是,数据传输时所使用的目的端口无法知道, FTP协议使用一个标准的端口21作为ftp-data端口,但是这个端口只用于连接的源地址是服务器端的情况,在这个端口上根本就没有监听进程。FTP的数据连接和控制连接的方向一般是相反的,也就是说,是服务器向客户端发起一个用于数据传输的连接。连接的端口是由服务器端和客户端协商确定的。所以,FTP协议的这个特征对ISA增加了困难。
因此如果Serv-U工作于被动模式时,需要指定 Serv-U 用于 PASV 模式数据传输的端口包含范围。Serv-U 通常在打开套接字用于 PASV 模式数据传输时,允许操作系统为它指派一个随机的端口号。该属性通过将 Serv-U  PASV 端口范围限定于一个已知的范围,满足了路由器或防火墙预先了解特定端口范围的需求。对最繁忙的文件服务器来说 10 个端口足够了。但如果是通过防火墙来发布内网Serv-U服务器时,需要在防火墙上进行设置允许相应的端口。具体操作在此不再累述,请参考此文自行设置!以上只是个人拙见,如有不同意见,请批评指正!





 本文转自 dufei 51CTO博客,原文链接:http://blog.51cto.com/dufei/123028,如需转载请自行联系原作者

上一篇:Sublime Text3前端必备插件


下一篇:ISA发布内部邮件服务器