前两天有个朋友说,在企业内网搭建了一个
Serv-U
服务器,在内网访问没有问题,但通过
ISA
发布出来后,外网用户,不论使用
IP
或是域名都不能访问。在此我就此问题写了一篇博文来把整个过程实现出来:
Serv-U 的搭载我们就已经完成了,下面就来看看怎么通过 ISA 发布出来,供外网用户访问。
我们的拓扑图如下:

此实验用到了三台机器:
Beijing:
在此机器上安装
ISA Server 2006
AnHui:
在此机器上搭建
Serv-U
服务器
Shanghai
:
作为外网机器来进行测试
步骤一:
在
Anhui
安装
Serv-u
并进行相应的配置
我使用的是
Serv-u7.3
,
7.3
与以前的版本相比,操作界面大不一样,不仅界面不同,而且功能也增加了不少,我个人认为更具人性化操作,下面我们开始安装:

此步是不用多说,肯定是接受。

点击是,定义新域:


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




可以看到当前已经存在了两个用户
,
杜飞用户上面有一个黄色的惊叹号是因为他没有相对的权限。也就是说,虽然这里创建了杜飞这个用户,但没有给他分配权限。
下面我们来创建一个允许匿名访问的用户,

有两种特殊用户名:
"Anonymous"
和
"FTP"
。这两个用户名含义相同,可供访客访问文件服务器。这些用户不需要密码,因此密码部分应该留空。虽然无需输入密码,但
Serv-U
会要求使用这些帐户登录的用户提供其
email
地址以完成登录过程。
然后测试一下:

也可以设置使用域名访问,如下图所示:

然后可以通过
DNS
或是
HOSTS
来进行解析操作,解析过程在此不再累述。
然后客户端就可以使用域名来进行连接
FTP
服务器。
测试如下:

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

创建完成后,我们会发现
ISA
上开始侦听
21
端口:

使用
IP
来访问没有问题,但使用域名来访问时就不行了,这是因为解析有问题:我们可以使用
DNS
解析,也可以使用
Hosts
文件,在此我为了操作简单,就直接在
ShangHai
这台机器上使用
Hosts
解析:加入以下一行:
192.168.0.4
ftp.dufei.com
然后测试解析是否正常,如下图


至此,实现结束!
但有朋友说按照上面的方法做了,但一直不成功,我分析原因可能如下:
这主要是因为
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,如需转载请自行联系原作者